Il problema della sovradispersione

Modelli lineari generalizzati in Python

Ita Cirovic Donev

Data Science Consultant

Capire i dati

Grafico della distribuzione del numero di satelliti (granchio)

# mean of y
y_mean = crab['sat'].mean()
2.919
# variance of y
y_variance = crab['sat'].var()
9.912
Modelli lineari generalizzati in Python

Media diversa dalla varianza

  • $variance > mean$ $\rightarrow$ sovradispersione
  • $variance < mean$ $\rightarrow$ sottodispersione

Conseguenze:

  • Errori standard piccoli
  • p-value piccolo
Modelli lineari generalizzati in Python

Come verificare la sovradispersione?

Riepilogo del modello adattato con evidenza su df residui e statistica Chi quadrato di Pearson.

Modelli lineari generalizzati in Python

Calcola la sovradispersione stimata

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

  • Rapporto $ <1$ $\rightarrow$ sottodispersione

  • Rapporto $ >1$ $\rightarrow$ sovradispersione

Modelli lineari generalizzati in Python

Regressione binomiale negativa

  • $E(y)=\lambda$
  • $Var(y) = \lambda+\alpha\lambda^2$
  • $\alpha$ - parametro di dispersione
Modelli lineari generalizzati in Python

GLM binomiale negativo in 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()
Modelli lineari generalizzati in Python

Passiamo alla pratica !

Modelli lineari generalizzati in Python

Preparing Video For Download...