如何解决同时在R中进行多个LASSO回归
我正在尝试在R中执行多个 LASSO回归。为计算模型的系数,我使用以下代码
rowplot<-function(x,y,z) {par(mfrow=c(1,3)) (layout(matrix(c(1,1,2,3,0),ncol = 4,byrow = TRUE)))}
rowplot(bp.1,bp.2,boxplot.1)
(除其他外)结果
library(glmnet)
A <- as.matrix(data)
fit_lasso <- glmnet(A[,-1],A[,1],standardize = TRUE,alpha = 0.9) #LASSO model
print(fit_lasso) #LASSO model for different lambdas
cvfit <- cv.glmnet( A[,type.measure = "mse",nfolds = 5,alpha = 0.9)
cvfit
cvfit$lambda.min
coef(cvfit,s = "lambda.min")
在> coef(cvfit,s = "lambda.min")
15 x 1 sparse Matrix of class "dgCMatrix"
1
(Intercept) -4.455556e+02
X2 .
X3 2.869015e-05
X4 2.325949e-10
X5 .
X6 5.955569e+00
X7 .
X8 1.043362e+01
X9 .
X10 3.313007e-01
X11 .
X12 .
X13 .
X14 2.129794e-01
X15 .
语句中,glmnet(A[,...)
表示所有解释性 X 变量,而A[,-1]
表示响应 Y 变量。我想创建一个循环,为所有可能的变量组合计算并显示与上述相同的结果(例如,第一列为响应变量,所有其他列为解释变量,第二列为响应变量,所有其他列为解释变量)说明性的)。使用A[,1]
,我设法创建了以下内容,但似乎不起作用。有人可以帮我弄清楚吗?
for statement
解决方法
尝试以下方法:
var color = [
"AntiqueWhite","CadetBlue","BurlyWood","Crimson","DarkSlateBlue","LightGoldenRodYellow","LightCyan",];
var randomNumber = Math.round(Math.random() * 6);
document.getElementById("btn").addEventListener("click",function () {
changeBackground();
});
function changeBackground() {
console.log(color[randomNumber]);
document.body.style.backgroundColor = color[randomNumber];
}
要获得一组结果:
results <- lapply(seq_len(ncol(A)),function(i) {
list(
fit_lasso = glmnet(A[,-i],A[,i],standardize = T,alpha = 0.9),cvfit = cv.glmnet(A[,standardize = TRUE,type.measure = "mse",nfolds = 5,alpha = 0.9)
)
})
输出
# Must use "[[" and "]]" here.
results[[3L]]$cvfit$lambda.min
coef(results[[3L]]$cvfit,s = "lambda.min")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。