과분산 문제

Python으로 배우는 Generalized Linear Models

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으로 배우는 Generalized Linear Models

평균 ≠ 분산

  • $variance > mean$ $\rightarrow$ 과분산
  • $variance < mean$ $\rightarrow$ 저분산

결과:

  • 표준 오차 과소추정
  • p-값 과소추정
Python으로 배우는 Generalized Linear Models

과분산 점검 방법

적합 모형 요약(잔차 df와 피어슨 카이제곱 통계량 강조).

Python으로 배우는 Generalized Linear Models

추정 과분산 계산

ratio = crab_fit.pearson_chi2 / crab_fit.df_resid
print(ratio)
3.134
  • Ratio $ =1$ $\rightarrow$ 대략 포아송

  • Ratio $ <1$ $\rightarrow$ 저분산

  • Ratio $ >1$ $\rightarrow$ 과분산

Python으로 배우는 Generalized Linear Models

음이항 회귀

  • $E(y)=\lambda$
  • $Var(y) = \lambda+\alpha\lambda^2$
  • $\alpha$ - 분산 매개변수
Python으로 배우는 Generalized Linear Models

Python의 GLM 음이항

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으로 배우는 Generalized Linear Models

연습해 봅시다!

Python으로 배우는 Generalized Linear Models

Preparing Video For Download...