線性模型如何解決變數相關性問題?
在線性回歸,邏輯回歸等線性模型中,變數相關性會使模型的穩定性下降,當變數較多時,通常都會使用主成份分析等降維方法,但是當變數較少時,如10個變數左右,有沒有更加好的方法?
直接去掉相關性強的指標肯定不好吧,如果考慮相關性指標合併,有沒有比較推薦的合併方式?
謝 @朱晉玄邀請。
這個問題已經是知乎上的老大難問題了。為什麼成為老大難問題?因為不同的人做回歸目的不一樣,處理方法是完全不一樣的。所以看到這個問題分在機器學習這個類別下,我不是很願意回答,因為不了解他們究竟做回歸為了做什麼。不過我願意從統計學的角度給一點思路。
首先要明確一點:變數之間的相關性(只要不是完全相關)是不會影響參數的一致性的。
那麼會影響什麼呢?影響的是參數估計的方差。
所以,如果你的樣本足夠大,變數間的相關性不是什麼大問題,甚至壓根就不是問題。
那麼如果你的樣本沒那麼大,該怎麼處理呢?這個時候就要看你做模型的目的了。簡單的區分的話,你究竟關注相關,還是因果,甚至只是想預測?
如果你是關注因果,那麼不好意思,這個問題沒有辦法。比如如果在經濟學裡面,像 @朱晉玄說的,你如果刪掉任何一個變數,都會導致遺漏變數而產生偏誤,這個時候你的係數估計是不一致的。
如果僅僅是關注相關,那麼主成分分析等是個好的方法。此外如果你覺著有一些係數應該為0,甚至還可以LASSO。
如果你是想預測,那麼雖然多重共線性導致係數估計方差變大,但是預測能力不會有所降低,所以我覺著這個問題沒有那麼值得去處理。
一種思路是regularization (正則化)
| Coursera
不需要指標合併,用ridge regression(L2-penalization)就可以了。如果學過ridge regression和PCA,應該知道兩者間的聯繫吧?
謝喵
有(物理)模型時不要去變數。其他的...我去喵一下@慧航
確實應該從統計學角度加深理解。大家沒提到,所以在這裡補充一下~
有一本書:An Introduction to Statistical Learning (with Applications in R) 對這個問題在第三章 Linear Regression有描述: Interaction terms。可以看一下,大概是這個樣子:
推薦閱讀:
※談談你對大規模機器學習這個領域的理解和認識?
※如何成為一個年薪 50 萬以上的數據分析師?
※微軟大數據專家對於第 86 屆奧斯卡金像獎進行預測並有高準確率,從技術角度看是如何做的?
※如何系統地學習數據挖掘?
※用機器學習的方法來處理大數據,是直接學 Spark,還是重點學習 Hadoop,了解 Spark?