R中的LASSO用于变量选择:如何选择调整参数

机器算法验证 r 回归 预测模型 套索
2022-03-27 17:47:21

如果这个问题是基本的,我提前道歉。

我正在尝试使用 LASSO 进行变量选择,并在 R 中实现。我目前有 15 个预测变量,并希望减少变量空间并仅选择最佳预测变量,以包含在我的最终因子模型中。

有些人建议我为此目的使用 LASSO。但是,在阅读了一些有关该主题的文档后,我仍然不确定如何选择调整参数 λ. 至于 R 中的实现,我尝试使用该glmnet包:

获取调整参数的值λ

library(glmnet)
ans <- cv.glmnet(data, return[,1], standardize = TRUE)
par(mfrow=c(1, 2))
plot(ans$glmnet.fit, "norm", label=TRUE)
plot(ans$glmnet.fit, "lambda", label=TRUE)
dev.new()
plot(ans)

但是,我不确定如何解释结果。然后我运行以下命令:

model <- cv.glmnet(data, return[,1], standardize = TRUE)
coef(model)

任何人都可以澄清 R 中 LASSO 的结果吗?

谢谢,

1个回答

通过使用默认参数调用 cv.glmnet,您可以在 k = 10 的情况下对 lambda 进行 k 倍交叉验证。默认情况下,拟合模型将使用 lambda 的 1-standard-error-from-min 值,您可以获得通过调用 cv.glmnet.object$lambda.1se 获取值。请参阅小插图的第 5 页:http: //cran.r-project.org/web/packages/glmnet/glmnet.pdf