我有一个问题我想在Python中解决,我找到了多个解决方案(我认为),但我想弄清楚哪个是最好的。我希望将来能够选择完全支持的库,所以我不必重新编写这项服务。
我想用分类和连续因变量进行普通的多变量最小二乘回归。代码必须用Python编写,因为它被集成到Web服务中。我一直在关注Pandas,但从未使用它,所以这似乎是一种方法:
解决方案1. https://github.com/pydata/pandas/blob/master/examples/regressions.py
显然,numpy / scipy是理想的,但我找不到一个使用虚拟变量的例子(有没有人有一个???)。我确实找到了这个,
解决方案2. http://www.scipy.org/Cookbook/OLS
我可以修改以支持虚拟变量,但我不想这样做,如果其他人已经完成它+我希望数字与R非常相似,因为我已经完成离线的大部分分析而且我可以将这些结果用于单元测试。
在上面的示例(2)中,我看到我可以在技术上使用rpy / rpy2,尽管这不是最佳的,因为我的Web服务需要另一项技术(R)。使用界面的好处是数字与我的结果相同。
解决方案3. http://www.scipy.org/Cookbook/OLS(但使用Rpy / Rpy2)
无论如何,我感兴趣的是这三种解决方案中的每个人的方法是什么,如果有任何我遗失的......如果Panda已经足够成熟,可以开始在生产网络服务中使用。这里的关键是我不想支持/修补错误修复或尽可能从头开始编写任何东西。我太忙了,可能还不够聪明:)。
感谢。
答案 0 :(得分:6)
您可以使用statsmodels,它提供了许多不同的模型和结果统计信息
如果你想使用类似R的公式界面,这里有一些例子,你可以查看相应的文档:
http://statsmodels.sourceforge.net/devel/examples/notebooks/generated/contrasts.html http://statsmodels.sourceforge.net/devel/examples/notebooks/generated/example_formulas.html
如果你想要一个纯粹的numpy版本,那么这是一个从头开始做所有事情的旧例子 http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html#ols-with-dummy-variables
模型与pandas集成,可以使用pandas DataFrame作为依赖变量和自变量的数据结构(statsmodels命名约定中的endog和exog)。