过度离散问题

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 中的广义线性模型

如何检验过度离散?

拟合模型摘要,突出剩余自由度与皮尔逊卡方统计量。

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 中的广义线性模型

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 中的广义线性模型

Vamos praticar!

Python 中的广义线性模型

Preparing Video For Download...