R語言實現嶺回歸的示例代碼

嶺參數的一般選擇原則

  • 選擇k(或lambda)值,使得:
  • 各回歸系數的嶺估計基本穩定
  • 用最小二乘估計時符號不合理的回歸系數,其嶺回歸的符號變得合理
  • 回歸系數沒有不合乎實際意義的絕對值
  • 殘差平方和增大的不多

image

用R語言進行嶺回歸

這裡使用MASS包中的longley數據集,進行嶺回歸分析(longley數據集中的變量具有顯著的多重共線性)。從而分析使用嶺回歸進行多重共線性的解決。

image

首相將longley數據集中的第一列數據命名為“y”,並使用嶺回歸創建線性模型

image

顯示當y為因變量,其餘各個變量為自變量時,直接構建線性模型的統計結果如下:

image

可見,雖然線性回歸的Multiple R-squared: 0.9926是一個很高的值。但各個變量的顯著性檢驗卻很差,同樣說明直接使用線性模型的擬合效果並不是很理想。

制定嶺參數lamdba從0-0.1,每次變化的長度為0.001,並繪制嶺跡圖,如下:

image

詳細嶺回歸的嶺跡圖如下:

image

從嶺跡圖中可以看出,當lambda=0時,圖像不穩定。因此,可以說明這裡的變量存在多重共線性。

現在需要對嶺參數lambda進行選擇:

image

可以看出,這裡由於使用瞭不同的估計方法,從而可以得到幾個不同的嶺參數的估計。通常取GCV估計,或者結合幾個結果進行取值。這裡取lambda=0.006。

使用R的ridge包的時候,出現如下問題:

image

嶺回歸的問題

  • 嶺參數計算方法太多,差異太大
  • 根據嶺跡圖進行變量篩選,隨意性太大
  • 嶺回歸返回的模型(如果沒喲經過變量篩選)包含所有的變量
  • 而且,對於使用嶺回歸進行變量的篩選,目前隻能作為一個擴展計算視野的方法,而在實際使用中,會出現很多問題。

到此這篇關於R語言實現嶺回歸的示例代碼的文章就介紹到這瞭,更多相關R語言 嶺回歸內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: