Problém předimenzované disperze

Zobecněné lineární modely v Pythonu

Ita Cirovic Donev

Data Science Consultant

Porozumění datům

Graf rozdělení počtu satelitů (krab)

# mean of y
y_mean = crab['sat'].mean()
2.919
# variance of y
y_variance = crab['sat'].var()
9.912
Zobecněné lineární modely v Pythonu

Rozptyl se nerovná střední hodnotě

  • $variance > mean$ $\rightarrow$ overdispersion
  • $variance < mean$ $\rightarrow$ underdispersion

Důsledky:

  • Malé směrodatné chyby
  • Malá p-hodnota
Zobecněné lineární modely v Pythonu

Jak zkontrolovat overdispersion?

Souhrn modelu se zvýrazněnými stupni volnosti reziduí a statistikou Pearsonova chí-kvadrátu.

Zobecněné lineární modely v Pythonu

Výpočet odhadované overdispersion

ratio = crab_fit.pearson_chi2 / crab_fit.df_resid
print(ratio)
3.134
  • Poměr $ =1$ $\rightarrow$ přibližně Poissonovo rozdělení

  • Poměr $ <1$ $\rightarrow$ underdispersion

  • Poměr $ >1$ $\rightarrow$ overdispersion

Zobecněné lineární modely v Pythonu

Negativní binomická regrese

  • $E(y)=\lambda$
  • $Var(y) = \lambda+\alpha\lambda^2$
  • $\alpha$ - parametr disperze
Zobecněné lineární modely v Pythonu

GLM negativní binomické rozdělení v Pythonu

import statsmodels.api as sm
from statsmodels.formula.api import glm
model = glm('y ~ x', data = my_data, 
            family = sm.families.NegativeBinomial(alpha = 1)).fit()
Zobecněné lineární modely v Pythonu

Lass uns üben!

Zobecněné lineární modely v Pythonu

Preparing Video For Download...