2014-02-26 59 views
1

是否有一种简单的方法可以在Python中执行多元强健的多项式回归?例如。Python中的强大的多元多项式回归

y = a + bx_1 + cx_2 + dx_1x_2 + ex_1^2 + fx_2^2 

和可能更高程度的术语,其中a,b,c,d,e,f是常数和x_i是从属变量(可能有多于2)。

我有一组被异常值困扰的数据,所以正常假设不成立。我对回归没有太多的了解,但是我发现有一些“强大的”方法可以解决这个问题。不幸的是,我还没有找到一种简单的方法来在Python中完成此操作,而无需编写整个方法。我忽略了什么?或者我应该使用另一种更适合的语言,比如R? (因为我不知道R的任何内容,而这是我用Python编写的一个更大的问题的一部分,我宁愿用Python做它,但也许学习R比试图做这种东西更有效率在Python中)。

在此先感谢。

+0

稳健线性模型是statsmodels可用,参见[这里](http://statsmodels.sourceforge.net/stable/examples/generated/example_rlm.html) –

+0

我已经看到了那一个,但它那对我来说,它只能回归类型y = a + bx_1 + cx_2 + dx_3 + ...。或者有没有办法包括更高学位和混合条款? – user1162809

+0

numpy.polyfit怎么样? http://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html – joel3000

回答

2

R是非常适合这一点,有一些让你跟在Python [R库,像RPy2

http://rpy.sourceforge.net/rpy2.html

这里是在稳健回归的教程与R:

http://www.ats.ucla.edu/stat/r/dae/rreg.htm

+0

我应该注意什么样的函数做Rpy中的多项式回归(而不是仅仅是一个常数和1次项)?和Rpy和R有一对一的对应关系吗? – user1162809

+0

您可能会使用MASS包中的rlm(健壮线性模型)。如果我回想一下线性回归,多项式回归就是预测时间本身,我相信多元函数就是R中预测变量的用法。 RPy2为R提供了一个更高层次和更低的杠杆接口,它基本上是R的包装,下面是一个简介:http://rpy.sourceforge.net/rpy2/doc-dev/html/introduction.html –

+0

如果我这个(使用RLM并且仅仅乘以预测变量)我得到了数值问题。 “警告: [1]条件数很大,2.41e + 10。这可能表明存在较强的多重共线性或其他数值问题。” 即使我通过减去平均值来确定预测因子,我仍然会得到这个结果。奇怪的是,当我使用polyfit时,它确实工作.... argh! – user1162809