Le problème de la surdispersion

Modèles linéaires généralisés en Python

Ita Cirovic Donev

Data Science Consultant

Comprendre les données

Diagramme de la distribution du nombre de satellites (crabe)

# mean of y
y_mean = crab['sat'].mean()
2.919
# variance of y
y_variance = crab['sat'].var()
9.912
Modèles linéaires généralisés en Python

Moyenne différente de la variance

  • $variance > mean$ $\rightarrow$ surdispersion
  • $variance < mean$ $\rightarrow$ sous-dispersion

Conséquences :

  • Petites erreurs-types
  • Petite valeur p
Modèles linéaires généralisés en Python

Comment vérifier la surdispersion ?

Résumé du modèle ajusté avec surlignage des ddl résiduels et du khi carré de Pearson.

Modèles linéaires généralisés en Python

Calculer la surdispersion estimée

ratio = crab_fit.pearson_chi2 / crab_fit.df_resid
print(ratio)
3.134
  • Ratio $ =1$ $\rightarrow$ environ Poisson

  • Ratio $ <1$ $\rightarrow$ sous-dispersion

  • Ratio $ >1$ $\rightarrow$ surdispersion

Modèles linéaires généralisés en Python

Régression binomiale négative

  • $E(y)=\lambda$
  • $Var(y) = \lambda+\alpha\lambda^2$
  • $\alpha$ : paramètre de dispersion
Modèles linéaires généralisés en Python

GLM binomiale négative en Python

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()
Modèles linéaires généralisés en Python

Passons à la pratique !

Modèles linéaires généralisés en Python

Preparing Video For Download...