嶺迴歸用於處理下面兩類問題:
1.資料點少於變數個數
2.變數間存在共線性
變數間存在共線性是,最小二乘迴歸得到的係數不穩定,方差很大,這是因為係數矩陣x與它的轉置矩陣相乘得到的矩陣不能求逆,而ridge regression通過引入lamda參數,使得該問題得到解決。在R語言中,MASS包中的函數lm.ridge()可以很方便地完成。它的輸入矩陣x始終為n*p維,不管是否包含常數項。
當包含常數項時,該函數對y進行中心化,以y的均值作為因子,對x進行中心化和歸一化,以x中各個變數的均值和標準差作為因子。這樣對x和y處理後,x和y的均值為0,這使得迴歸平面經過原點,即常數項為0.因此,雖然指定了包含常數項,它給出的係數lmrige coef裡也沒有常數項的值。在使用該模型進行預測的時候,也需要首先對x和y進行中心化和歸一化,因子是使用訓練時候進行中心化和歸一化的因子,然後再與係數相乘得到的預測結果,這裡需要指出的是,如果建立模型後在命令列視窗直接輸入lmridge,也會出現一整套係數,該係數會包含常數項,這個係數和模型給出的係數lmridge coef不一樣,因為它是針對沒有歸一化和中心化資料的,在預測的時候可以直接使用該係數,不需要對資料進行歸一化和中心化。
當指定模型不包含常數項時,因為要強調通過原點,該模型假設各個變數的均值為0,因此不對x和y進行中心化。但是對x進行歸一化,而且歸一化因子也是假設變數均值為0計算出的該變數的標準差。在進行預測的時候,如果使用lmridge$coef的係數,那麼需要對資料進行歸一化。如果使用lmridge直接給出的係數,只需要直接相乘。
ridge regression中lamda的選擇:可以使用select(lmridge)進行自動化佈建,一般使用GCV最小值,lamda的範圍是大於0即可。
嶺迴歸的原理
嶺迴歸是一種專用於共線性資料分析的有偏估計迴歸方法,實質上是一種改良的最小二乘估計法,通過放棄最小二乘法的無偏性,以損失部分資訊、降低精度為代價,獲得迴歸係數更為符合實際、更可靠的迴歸方法,對病態資料的耐受性遠遠強於最小二乘法。
嶺迴歸的原理較為複雜。根據高斯馬爾科夫定力,多重相關性並不影響最小二乘法估計量的無偏性和最小方差性,但是,雖然最小二乘估計量在所有線性估計量中是方差最小的,但是這個方差都不一定小,而實際上可以找到一個有偏估計量,這個估計量雖然有較小的偏差,但它的精度卻能夠大大高於無偏的估計量。嶺迴歸分析就是根據這個原理,通過在正規方程中引入有偏常熟二求的迴歸估計量的。
缺點:通常嶺迴歸方程的R平方值會稍低於普通迴歸分析,但迴歸係數的顯著性往往明顯高於普通迴歸,在存在共線性問題和病態資料偏多的研究中有較大的實用價值。
高斯-馬爾科夫定理
在統計學中,高斯-馬爾科夫定理陳述的是:
在誤差零均值,同方差,且互不相關的線性迴歸模型中,迴歸係數的最佳無偏線性估計BLUE就是最小方差估計。
一般而言,任何迴歸係數的線性組合之BLUE就是它的最小方差估計。
在這個線性迴歸模型中,誤差既不需要假定常態分佈,也不需要假定獨立(但需要不相關這個更弱的條件),更不需要假定同分布。
具體而言,假設