我拟合了两个回归模型,一个只有1个预测因子,另一个有3个预测因子。现在我想比较这两个模型。我该怎么做?我知道如何在R中实现,但不知道如何在python中实现。以下是R中用于比较两个模型的代码-
anova(albumSales.2, albumSales.3)
结果-
Model 1: sales ~ adverts
Model 2: sales ~ adverts + airplay + attract
Res.Df RSS Df Sum of Sq F Pr(>F)
1 198 862264
2 196 434575 2 427690 96.447 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
基于上述结果,我们可以看到albumSales.3与albumSales.2相比,显著提高了模型与数据的拟合度。F(2196)=96.44,p<。001.
我如何用python实现它
我不知道有哪一个函数可以像R中的示例那样直接比较两个模型,但是Scikit-Learn包是数据科学和机器学习中非常常用的Python包。它支持与回归模型相关的各种度量,这将允许您创建自己的比较
例如,它支持R2度量。以下示例来自Scikit的documentation on R2:
通过对两个模型进行此操作,您可以得到与从R
在方差分析中,您基本上计算RSS中的差异。 您可以在vignette for ANOVA in statsmodels下查看更多信息:
我们运行两个模型并进行方差分析:
它抛出了一些警告(你可以在我上面链接的网站上看到),因为对于第一行,它无法计算F等
注意,这与另一个答案中建议的Rsquare计算不同。需要注意的一个重要问题是,如果包含更多的项,理论上的R平方会增加,你想看看这些项是否能显著解释额外的方差,这就是为什么你要使用方差分析
相关问题 更多 >
编程相关推荐