嶺回歸:嶺回歸分析是在構建多重線性回歸模型時, 對基於「最小二乘原理」推導出的估計回歸係數的計算公式作一下校正,使回歸係數更穩定。
當自變量之間存在較強的多重共線性時,求得的多重線性回歸模型很不穩定; 尤其是某些自變量回歸係數的正負號與實際問題的專業背景不吻合時,嶺回歸分析可以很好地解決這一問題。
(●)
嶺回歸分析通常要先對 X 變量作中心化和標準化處理, 以使不同自變量處於同樣數量級上而便於比較。(●●)
確定 k 值
① 嶺跡圖
嶺跡法主要是通過將 β( k) 的分量 βi( k) 的嶺跡畫在同一幅圖上, 從圖中選擇儘可能小的 k 值, 使得各回歸係數的嶺估計大體穩定, 即各分量在圖上的嶺跡曲線趨於平行於X 軸。選擇 k 值的一般原則主要有: ①各回歸係數的嶺估計基本穩定; ②用最小二乘估計時符號不合理的回歸係數, 其嶺估計的符號將變得合理; ③回歸係數的大小要與實際相符, 即從專業上講對因變量影響較大的自變量其係數的絕對值也較大; ④均方誤差增大不太多。
方差膨脹因子 cjj 度量了多重共線性的嚴重程度, 一般當 cjj > 10 時, 模型就有嚴重的多重共線性。(●●●)
根據嶺跡圖進行變量篩選及重新確定k值
把嶺跡應用於回歸分析中自變量的選擇,其基本原則為:
( 1) 去掉嶺回歸係數比較穩定且絕對值比較小的自變量。這裡嶺回歸係數可以直接比較大小,因為設計陣 X 是假定已經中心標準化了的。
( 2) 去掉嶺回歸係數不穩定但隨著 k 值的增加迅速趨於零的自變量。
( 3) 去掉一個或若干個具有不穩定嶺回歸係數的自變量。如果不穩定的嶺回歸係數很多,究竟去掉幾個, 去掉哪幾個, 並無一般原則可遵循。這要結合已找出的復共線性關係以及去掉後重新進行嶺回歸分析的效果來決定。
(●●●●)
對模型進行表達及作出專業結論
在進行嶺估計後, 應根據所估計的參數寫出回歸方程, 並結合專業知識判斷方程中各自變量的係數及正負號是否符合實際情況。最後根據回歸係數的大小來判斷各自變量對因變量影響的大小及根據所求得的回歸方程進行預測。
以下為11名兒童的智力測試數據,試以IQ為因變量擬合多重線性回歸模型。其中,變量常識(X1)、算數(X2)、理解(X3)、拼圖(X4)、積木(X5)、解碼(X6),IQ(Y)。具體步驟 ☞☞☞☞【多重線性回歸分析】
(Ⅱ)輸出結果
在SPSS中沒有專門的菜單模塊來做嶺回歸分析,但可以通過額外編寫了 一個程序文件: ridge regression.sps, 用戶可以編寫一段代碼來調用該程序做嶺回歸分析。
其中,
INCLUDE ' 文件 Ridge regression.sps 所在路徑 ' .
RIGDEREG ENTER = 自變量
/DEP = 因變量
/START = k值起始值
/STOP = k值終末值
/INC = k值步長
嶺回歸:嶺跡圖,從圖中大致看出k≧0.1 時,嶺跡曲線趨於穩定 。驗證當k=0.1時的模型,
驗證結果:
本結果擬合得不太理想,僅供參考~~~
因此可以寫出嶺回歸方程式:y= ~~~~
(Ⅰ)讀取數據,
data test.multiple_reg;input x1 x2 x3 x4 x5 x6 y @@;cards;14 13 28 14 22 39 5410 14 15 14 34 35 37 12 12 19 13 24 39 287 8 7 9 20 24 19 13 12 24 12 26 38 3619 15 23 16 24 38 2819 16 26 21 38 69 539 10 14 9 31 46 40 10 8 15 13 15 43 51 9 8 12 10 22 43 55 12 10 20 14 12 28 42;run;(Ⅱ)使用原始數據做回歸分析
/**** 多重線性回歸模型,自變量篩選方法為stpewise*****/proc reg data = test.multiple_reg ;stepwise : model y = x1-x6 / selection = stepwise vif collin ;run;quit ;
/***** 嶺回歸 ridge regression **********/proc reg data = test.multiple_reg outest = out_2 outvif ; model y = x1-x6 / ridge = 0.0 to 1 by 0.01 ; plot / ridgeplot ;run;quit ;/*** 列印輸出結果******/proc print data = out_2 ;run;(Ⅲ)原始數據標準化
/**** 數據標準化處理********/proc standard data = test.multiple_reg m=0 s=1 out =test.multiple_reg_standard ;run;(Ⅳ)標準化後的數據 進行嶺回歸
/** 使用標準化後的數據 ***/proc reg data = test.multiple_reg_standard outest = out_3 outvif ;model y = x1-x6 / ridge = 0.0 to 1 by 0.01 ;plot / ridgeplot ;run;quit ;
proc print data = out_3 ;run;【輸出結果】此結果為原始數據標準化後的結果
下圖為嶺跡圖,大致發現,當k≧0.1 時,嶺跡曲線趨於穩定 。
obs = 22,k=0.1,各回歸係數的VIF 均小於2 ;
obs=23,給出了變量x1~x6的回歸係數;
在SAS中, 嶺跡圖描繪的是原始係數估計值隨嶺參數 k 的變化軌跡,原始係數描繪嶺跡圖會存在1個問題: 回歸方程中係數數量級別差異較大;因此,對原數據標準化處理可以很好地避免這一問題。
參考來源:
[1]胡良平,嶺回歸分析.科研方法專題
[2] 尹 康 , 常用統計軟體關於嶺回歸計算原理的比較分析 . 統計研究