如何获得 LASSO 回归的置信区间?

机器算法验证 回归 置信区间 套索 网络
2022-04-07 03:41:35

我是 R 的新手。我有这个 LASSO 回归代码:

X <- X <- as.matrix(read.csv2("DB_LASSO_ERP.csv"))
y <- read.csv2("OUTCOME_LASSO_ERP.csv",header=F)$V1
fit <- glmnet(x = X, y = y, family = "binomial", alpha = 1)
crossval <- cv.glmnet(x = X, y = y, family = "binomial")
penalty <- crossval$lambda.min
fit1 <- glmnet(x = X, y = y, family = "binomial", alpha = 1, lambda = penalty)

我想获得这个系数的置信区间。我能怎么做?你能帮我写剧本吗?我对 R 的经验很少。谢谢!

1个回答

请仔细考虑为什么需要 LASSO 系数的置信区间以及如何解释它们。这不是一个容易的问题。

LASSO 选择的预测变量(对于任何特征选择方法)可能高度依赖于手头的数据样本。您可以通过在数据的多个引导样本上重复您的 LASSO 模型构建过程,在您自己的数据中检查这一点。如果您有相互关联的预测变量,则 LASSO 选择的特定预测变量可能会在基于不同引导样本的模型之间有所不同。那么,预测变量的系数的置信区间是什么意思,比如说预测变量x1, 如果x1如果您使用来自同一人群的不同样本,甚至不会被 LASSO 选择?

LASSO 模型的预测质量通常比单个系数的置信区间更受关注。尽管特征选择不稳定,但基于 LASSO 的模型可用于预测。从几个相关的预测变量中选择 1 可能有点武断,但选择的 1 可以作为其他变量的粗略代理,因此可以导致有效的预测。您可以通过查看基于多个自举样本的模型在完整原始数据集上的工作情况来测试 LASSO 方法的性能。

也就是说,最近有关于获得置信区间的原则方法以及 LASSO 之后推理中的相关问题的工作。此页面及其链接是一个很好的起点。这些问题在Statistical Learning with Sparsity的第 6.3 节中有更详细的讨论。R 中还有一个包selectiveInference实现了这些方法。但这些是基于可能不包含在您的数据中的特定假设。如果您确实选择使用这种方法,请确保了解该方法有效的条件以及这些置信区间的真正含义。这个统计问题,而不是 R 编码问题,才是这里的关键。