UA MATH571A QE练习 R语言 多重共线性与岭回归
UA MATH571A QE練習 R語言 多重共線性與嶺回歸
QE回歸2017年1月的第4題目的是通過高中成績排名(X1X_1X1?)與ACT分數(shù)(X2X_2X2?)預測大學第一年的GPA(YYY)。初始模型是
Y=β0+β1X1+β2X2+β12X1X2+?Y= \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_{12}X_1X_2 + \epsilonY=β0?+β1?X1?+β2?X2?+β12?X1?X2?+?
然而高中成績排名與ACT分數(shù)很有可能是正相關的,因此這個模型有潛在的多重共線性,我們先來檢查一下樣本數(shù)據(jù)有沒有多重共線性。首先讀取數(shù)據(jù),畫出相關性圖,并計算相關性矩陣
college.df = read.csv( file.choose() ) attach( college.df ) X1 = class.rank; X2 = ACT; X3=X1*X2 Y = GPA pairs( Y~X1+X2+X3, pch=19 ) > cor( cbind(X1,X2,X3) ) X1 X2 X3 X1 1.0000000 0.4425075 0.8883073 X2 0.4425075 1.0000000 0.7890032 X3 0.8883073 0.7890032 1.0000000
其中X1與X3,X2與X3都具有比較明顯的線性關系,基本可以定性地判斷初始模型是存在多重共線性的。接下來用variance inflation factor(VIF)定量判斷一下是否存在多重共線性:
VIF的判斷準則是,如果最大的VIF數(shù)值超過10,所有的VIF的均值超過6,那么模型就是有多重共線性的,顯然這個題中這兩個標準都滿足,因此存在多重共線性。
當模型存在多重共線性時,我們可以用嶺回歸(ridge regression)代替OLS,降低模型的MSE。在做嶺回歸之前,先對解釋變量做中心化
U = scale( Y, scale=F ) Z1 = scale( X1 ) Z2 = scale( X2 ) Z3 = scale( X3 )做嶺回歸需要genridge包,如果沒有的話可以當場下載
install.packages("genridge")下好之后就要用這個包里的ridgeplot()函數(shù)來調參了
require( genridge ) c = seq( from=.01,to=10,by=.01 ) traceplot( ridge(U~Z1+Z2+Z3, lambda=c) )
嶺回歸的目標函數(shù)是Quadratic Loss + L2L_2L2? penalty,這里的變量c,也即是圖中的ridge constant,表示L2L_2L2? penalty前的系數(shù),c越大,penalty就會越嚴格,系數(shù)就會被限制在更小的范圍內。圖中兩條豎線代表了嶺回歸的HKB估計量與LW估計量,注意到LW估計量附近嶺回歸系數(shù)關于c的曲線更平緩,說明LW估計量比HKB估計量更stable,LW估計量是較好的選擇。估計ridge regression,獲得它的模型對象并查看
會發(fā)現(xiàn)這個模型對象是一個有十三個元素的list,ridge()實際上做的運算是對1000個c的取值都估計了一遍模型,然后把結果存了下來。其中kHKB和kLW分別就是HKB估計量與LW估計量對應的L2L_2L2? penalty系數(shù)。可以簡單查看一下
基本還是符合他們在圖中的位置的。接下來我們對嶺回歸的LW估計量進行簡單診斷
cLW = ri$kLW college.ridge = ridge( U~Z1+Z2+Z3, lambda=cLW ) Zmtx = as.matrix( cbind(Z1,Z2,Z3) ) Uhat = Zmtx %*% college.ridge$coef[,1:3] RawResid = U - Uhat plot( RawResid ~ Uhat, pch=19 ); abline( h=0 )
畫出LW估計量下嶺回歸殘差關于擬合值的散點圖,非常明顯這個模型還有異方差性。后續(xù)的操作就是對殘差做一下Brown-Forsythe檢驗:
結果是顯著的,說明的確是存在異方差性的。要同時解決異方差與多重共線性的問題,我們需要用WLS Loss function + L2L_2L2? penalty,那么做到這里這個題就算完成了。
總結
以上是生活随笔為你收集整理的UA MATH571A QE练习 R语言 多重共线性与岭回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA MATH571B 试验设计 QE练
- 下一篇: UA MATH564 概率论 QE练习题