
在之前的代码
lasso1.cv = cv.glmnet (X, Y, alpha = 1, nfolds = 10)
中,alpha = 1为lasso,alpha=0为岭回归,介于0和1之间时表示模型介于岭回归和lasso之间,统称为Elastic Net,对其进行循环,找到最小的lambda值
final = c()
for (i in 1:100){
set.seed(1)
fit4.cv = cv.glmnet (X, Y, alpha = (i/100), nfolds = 10)
this_fit = c (i/100, fit4.cv$lambda.min, min(fit4.cv$cvm))
final = rbind (final, this_fit)
}
final [which.min (final[, 3]), ]
由于lasso和岭回归对自变量的单位敏感,在之前先对数据进行标准化,运用robustHD程序包里standardize()函数