係数パス–リッジ、なげなわおよびエラスティックネット回帰の比較


13

リッジ、なげなわ、エラスティックネットで選択したモデルを比較したいと思います。以下の図は、3つの方法すべてを使用した係数パスを示しています。リッジ(図A、アルファ= 0)、投げ縄(図B、アルファ= 1)、弾性ネット(図C、アルファ= 0.5)。最適なソリューションは、クロス検証に基づいて選択されたラムダの選択値に依存します。

リッジ(A、アルファ= 0)、投げ縄(B、アルファ= 1)および弾性ネット(C、アルファ= 0.5)回帰の係数のプロファイル。 プロットの上部の数字は、モデルのサイズを表します。最適なソリューションは、選択したラムダの値によって異なります。 ラムダの選択は、相互検証に基づいています。

これらのプロットを見ると、エラスティックネット(図C)がグループ化効果を示すことが予想されます。ただし、提示されたケースでは明確ではありません。投げ縄とエラスティックネットの係数パスは非常に似ています。この理由は何でしょうか?それは単なるコーディングミスですか?Rで次のコードを使用しました。

library(glmnet)
X<- as.matrix(mydata[,2:22])
Y<- mydata[,23]
par(mfrow=c(1,3))
ans1<-cv.glmnet(X, Y, alpha=0) # ridge
plot(ans1$glmnet.fit, "lambda", label=FALSE)
text (6, 0.4, "A", cex=1.8, font=1)
ans2<-cv.glmnet(X, Y, alpha=1) # lasso
plot(ans2$glmnet.fit, "lambda", label=FALSE)
text (-0.8, 0.48, "B", cex=1.8, font=1)
ans3<-cv.glmnet(X, Y, alpha=0.5) # elastic net 
plot(ans3$glmnet.fit, "lambda", label=FALSE)
text (0, 0.62, "C", cex=1.8, font=1)

エラスティックネット係数のパスをプロットするために使用されるコードは、ridgeおよびlassoの場合とまったく同じです。唯一の違いはアルファの値です。エラスティックネット回帰のアルファパラメーターは、対応するラムダ値の最小MSE(平均二乗誤差)に基づいて選択されました。

ご協力ありがとうございました !

回答:


5

p<npn

元の機能があまり相関していない場合、係数パスの観点からLassoがElastic Netと同様に機能することは合理的であると言えます。glmnetパッケージのドキュメントを見ると、コードにエラーも表示されません。


コメントありがとうございます。私は自分の変数間で重度の多重共線性を観察したため、最適なモデルを選択するための正則化アプローチについて考え始めました(VIF >> 10)。それらの多くは> 0.8のレベルで相関していたため、エラスティックネットは投げ縄とは異なるパフォーマンスを示し、グループ化効果を示します(相関変数の場合)。
初心者

より強力な尾根ペナルティを使用する必要がありますか?
dcl

df調整された多重共線性をチェックしましたか?因子変数は相互排他的であるため、通常は多重共線性を持ちます。この種の多重共線性が投げ縄で問題を引き起こすかどうかはわかりません。
バカバーグ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.