在Python中对ALM进行Anova测试


问题内容

我正在尝试获取GLM中每个协变量的F统计量和p值。在Python中,我使用stats mode.formula.api进行GLM。

formula = 'PropNo_Pred ~ Geography + log10BMI + Cat_OpCavity + CatLes_neles + CatRural_urban + \
        CatPred_Control + CatNative_Intro + Midpoint_of_study'

mod1 = smf.glm(formula=formula, data=A2, family=sm.families.Binomial()).fit()
mod1.summary()

之后,我尝试使用statsmodels.stats中的方差分析对此模型进行ANOVA测试

table1 = anova_lm(mod3)
print table1

但是我收到一个错误消息:’GLMResults’对象没有属性’ssr’

看起来这个anova_lm函数仅适用于线性模型,python中是否有一个模块可以对GLM进行anova测试?


问题答案:

不幸的是,没有。但是,您可以通过在每个术语上使用模型的假设检验方法来滚动自己的模型。实际上,他们的一些ANOVA方法甚至都没有使用属性ssr(这是模型的残差平方和,因此对于二项式GLM显然是不确定的)。您可能可以修改此代码以执行GLM
ANOVA。