首页 > 解决方案 > 运行 1000 次模拟,并存储 LASSO 的输出

问题描述

glmnet使用以下命令使用包运行 LASSO:

x_ss <- model.matrix(y_variable ~ X_variables, data="data")
y_ss <- c(y_variable)
cv.output_ss <- cv.glmnet(x_ss,y_ss, alpha=1, family="gaussian", type.measure="mse")

lambda.min_ss <- cv.output_ss$lambda.min

coef(cv.output_ss,s=lambda.min_ss)

根据我对 LASSO 回归的理解,每次运行时生成的估计值都会略有不同。因此,我正在考虑可能生成 1000 个模拟,并收集我的 X 变量的估计值,以便我可以报告更有意义的东西,例如均值和方差。有什么方法可以多次运行并“保存”输出,以便获得估计的均值和方差?

标签: rsimulationglmnet

解决方案


当然,您可以使用sapplylapply甚至replicate.

例如

xy <- replicate(1000, {
  # ...
  coef(...)
}, simplify = FALSE)

将运行相同的代码 1000 次并在列表中输出 coef 的结果。函数完成后,您可以xy以任何方式进行操作,例如提取所需的统计数据,将其绑定到 data.frame 或矩阵中,并报告均值、方差、分布...


推荐阅读