web-dev-qa-db-ja.com

Rでglmnetを使用してラッソ回帰の決定係数を計算する方法

Glmnetパッケージを使用してRでラッソ回帰を実行しています。

fit.lasso <- glmnet(x,y)
plot(fit.lasso,xvar="lambda",label=TRUE)

fit.lasso plot

次に、相互検証を使用します。

cv.lasso=cv.glmnet(x,y)
plot(cv.lasso)

lambda VS MSE

1つのチュートリアル (最後のスライド)は、R ^ 2について次のことを提案します。

R_Squared =  1 - cv.lasso$cvm/var(y)

しかし、それは機能しませんでした。

データをフィッティングする際のモデルの効率/パフォーマンスを理解したいと思います。通常、rでlm()関数を実行すると、R ^ 2が取得され、R ^ 2が調整されます。

5
AKD

サンプルデータを使用してそれを示します

ライブラリ(glmnet)

データを読み込む

data(BinomialExample)
head(x) 
head(y)

相互検証用

cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "class")
rsq = 1 - cvfit$cvm/var(y)
plot(cvfit$lambda,rsq)

enter image description here

3
Yi Xiong

「ガウス」ファミリを使用している場合は、次の方法で決定係数にアクセスできます。

fit.lasso $ glmnet.fit $ dev.ratio

3
woodstck