2014-02-26 57 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