anova_lm()python:哪种模型类型有效?

时间:2014-11-05 19:17:10

标签: python r glm anova

我是Python的新手,并尝试从Matlab + R平台过渡到一个独特的平台Python。

我需要对数据进行回归。

在阅读了网上可用的内容之后 - 遗憾的是没有像R一样多 - 我意识到我需要使用以下选项:

import statsmodels.api as sm
import statsmodels.formula.api as smf

mod1 = smf.glm(formula=formula_new, data=dta_new, family=sm.families.Gaussian())
mod2 = smf.ols(formula=formula_new, data=dta_new, family=sm.families.Gaussian())
mod3 = sm.OLS.from_formula(formula=formula_new, data=dta_new)
这三个人给了我类似的结果。 我真正想知道的是,是否存在类似于R的anova()的函数(有一个很好的表总结了不同模型的比较,或者在不同变量的模型中,如此处所示http://www.r-bloggers.com/r-tutorial-series-anova-tables/)对于任何这些模型选项。

我试图运行

table = sm.stats.anova_lm(modX)
print table

X = 1,2,3,基本上适用于所有模型(那些来自smf。或sm。)但我总是得到同样的错误:

AttributeError: 'OLS'/'GLM' object has no attribute 'model'

使用OLS或GLM,具体取决于型号的类型。

感谢任何输入。我没有正确导入模块吗?我很困惑。

欢迎链接到python的应用程序/示例/教程。

rpy2不是我服务器上的选项,我正在努力安装R3.0,但可能需要一段时间。

1 个答案:

答案 0 :(得分:0)

我想为什么它不适用于所有型号。

anova_lm()需要fit()属性:

table = sm.stats.anova_lm(modX.fit())
print table

但是,它仅适用于mod2和mod3,因此它不适用于GLM模型。

我在网上发现了一些与此问题相关的信息。希望它很快会扩展到GLM模型。 http://comments.gmane.org/gmane.comp.python.pystatsmodels/11000