ปัญหา Overdispersion

Generalized Linear Models ใน 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
Generalized Linear Models ใน Python

ค่าเฉลี่ยและความแปรปรวนไม่เท่ากัน

  • $variance > mean$ $\rightarrow$ overdispersion
  • $variance < mean$ $\rightarrow$ underdispersion

ผลที่ตามมา:

  • ค่า standard error ต่ำ
  • ค่า p-value ต่ำ
Generalized Linear Models ใน Python

ตรวจสอบ Overdispersion อย่างไร?

สรุปผลโมเดลที่ fit แล้ว โดยไฮไลต์ df residuals และค่าสถิติ Pearson Chi square

Generalized Linear Models ใน Python

คำนวณค่า Overdispersion

ratio = crab_fit.pearson_chi2 / crab_fit.df_resid
print(ratio)
3.134
  • Ratio $ =1$ $\rightarrow$ ใกล้เคียง Poisson

  • Ratio $ <1$ $\rightarrow$ underdispersion

  • Ratio $ >1$ $\rightarrow$ overdispersion

Generalized Linear Models ใน Python

Negative Binomial Regression

  • $E(y)=\lambda$
  • $Var(y) = \lambda+\alpha\lambda^2$
  • $\alpha$ - พารามิเตอร์การกระจาย
Generalized Linear Models ใน Python

GLM Negative Binomial ใน 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()
Generalized Linear Models ใน Python

มาฝึกกันเถอะ!

Generalized Linear Models ใน Python

Preparing Video For Download...