Problem nadmiernego rozproszenia

Uogólnione modele liniowe w Pythonie

Ita Cirovic Donev

Data Science Consultant

Analiza danych

Wykres rozkładu liczby satelitów (krab)

# mean of y
y_mean = crab['sat'].mean()
2.919
# variance of y
y_variance = crab['sat'].var()
9.912
Uogólnione modele liniowe w Pythonie

Wariancja nierówna średniej

  • $variance > mean$ $\rightarrow$ nadmierne rozproszenie
  • $variance < mean$ $\rightarrow$ niedostateczne rozproszenie

Konsekwencje:

  • Małe błędy standardowe
  • Małe wartości p
Uogólnione modele liniowe w Pythonie

Jak sprawdzić nadmierne rozproszenie?

Podsumowanie dopasowanego modelu z zaznaczonymi df reszt i statystyką Chi-kwadrat Pearsona.

Uogólnione modele liniowe w Pythonie

Obliczanie szacowanego nadmiernego rozproszenia

ratio = crab_fit.pearson_chi2 / crab_fit.df_resid
print(ratio)
3.134
  • Iloraz $ =1$ $\rightarrow$ zbliżony do rozkładu Poissona

  • Iloraz $ <1$ $\rightarrow$ niedostateczne rozproszenie

  • Iloraz $ >1$ $\rightarrow$ nadmierne rozproszenie

Uogólnione modele liniowe w Pythonie

Regresja ujemna dwumianowa

  • $E(y)=\lambda$
  • $Var(y) = \lambda+\alpha\lambda^2$
  • $\alpha$ - parametr rozproszenia
Uogólnione modele liniowe w Pythonie

GLM ujemny dwumianowy w Pythonie

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()
Uogólnione modele liniowe w Pythonie

Czas na ćwiczenia!

Uogólnione modele liniowe w Pythonie

Preparing Video For Download...