R語言實現嶺回歸的示例代碼
嶺參數的一般選擇原則
- 選擇k(或lambda)值,使得:
- 各回歸系數的嶺估計基本穩定
- 用最小二乘估計時符號不合理的回歸系數,其嶺回歸的符號變得合理
- 回歸系數沒有不合乎實際意義的絕對值
- 殘差平方和增大的不多
用R語言進行嶺回歸
這裡使用MASS包中的longley數據集,進行嶺回歸分析(longley數據集中的變量具有顯著的多重共線性)。從而分析使用嶺回歸進行多重共線性的解決。
首相將longley數據集中的第一列數據命名為“y”,並使用嶺回歸創建線性模型:
顯示當y為因變量,其餘各個變量為自變量時,直接構建線性模型的統計結果如下:
可見,雖然線性回歸的Multiple R-squared: 0.9926是一個很高的值。但各個變量的顯著性檢驗卻很差,同樣說明直接使用線性模型的擬合效果並不是很理想。
制定嶺參數lamdba從0-0.1,每次變化的長度為0.001,並繪制嶺跡圖,如下:
詳細嶺回歸的嶺跡圖如下:
從嶺跡圖中可以看出,當lambda=0時,圖像不穩定。因此,可以說明這裡的變量存在多重共線性。
現在需要對嶺參數lambda進行選擇:
可以看出,這裡由於使用瞭不同的估計方法,從而可以得到幾個不同的嶺參數的估計。通常取GCV估計,或者結合幾個結果進行取值。這裡取lambda=0.006。
使用R的ridge包的時候,出現如下問題:
嶺回歸的問題
- 嶺參數計算方法太多,差異太大
- 根據嶺跡圖進行變量篩選,隨意性太大
- 嶺回歸返回的模型(如果沒喲經過變量篩選)包含所有的變量
- 而且,對於使用嶺回歸進行變量的篩選,目前隻能作為一個擴展計算視野的方法,而在實際使用中,會出現很多問題。
到此這篇關於R語言實現嶺回歸的示例代碼的文章就介紹到這瞭,更多相關R語言 嶺回歸內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!