Проблема избыточного рассеяния

Обобщённые линейные модели в Python

Ita Cirovic Donev

Data Science Consultant

Анализ данных

График распределения числа спутников (крабы)

# mean of y
y_mean = crab['sat'].mean()
2.919
# variance of y
y_variance = crab['sat'].var()
9.912
Обобщённые линейные модели в Python

Дисперсия не равна среднему

  • $variance > mean$ $\rightarrow$ избыточное рассеяние
  • $variance < mean$ $\rightarrow$ недостаточное рассеяние

Последствия:

  • Малые стандартные ошибки
  • Малое p-значение
Обобщённые линейные модели в Python

Как проверить наличие избыточного рассеяния?

Сводка подогнанной модели с выделенными df остатков и статистикой хи-квадрат Пирсона.

Обобщённые линейные модели в Python

Оценка избыточного рассеяния

ratio = crab_fit.pearson_chi2 / crab_fit.df_resid
print(ratio)
3.134
  • Отношение $ =1$ $\rightarrow$ приближённо соответствует Пуассону

  • Отношение $ <1$ $\rightarrow$ недостаточное рассеяние

  • Отношение $ >1$ $\rightarrow$ избыточное рассеяние

Обобщённые линейные модели в Python

Отрицательная биномиальная регрессия

  • $E(y)=\lambda$
  • $Var(y) = \lambda+\alpha\lambda^2$
  • $\alpha$ — параметр рассеяния
Обобщённые линейные модели в Python

GLM с отрицательным биномиальным распределением в 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()
Обобщённые линейные модели в Python

Давайте потренируемся!

Обобщённые линейные модели в Python

Preparing Video For Download...