套索回归系数值

机器算法验证 回归 多重回归 模型选择 套索
2022-04-03 12:51:00

我应用 lasso 回归进行变量选择,并在 10 个变量中选择了 4 个变量。

fit.lasso=glmnet(x,y,alpha=1)

plot(fit.lasso,xvar="lambda",label=TRUE)

cv.lasso=cv.glmnet(x,y)

coef(cv.lasso)

假设在这个命令之后,我们得到了 4 个具有非零系数值的变量,即:x1、x2、x3、x4。

然后,我使用了这个命令:

fit = lm( y~x1+x2+x3+x4)

并检查 x1, x2, x3, x4 对应的 p 值。那么如果 x3 的 p 值 > 0.05,我是否需要在最终模型中将其移除?

或者,使用 Coef(CV.lasso) 我们得到用于预测 y 的系数值?

和提示?

我正在使用 R

1个回答

完成 LASSO 后,通常不应在单独的线性回归中使用所选变量。

有几种方法可以为模型选择预测变量的子集。例如,您可以使用逐步回归,或者在预测变量足够少的情况下,您可以检查所有可能的预测变量子集。在这些情况下,使用 AIC 之类的标准来权衡拟合与包含的变量数量。

但在常用的情况下,然后将所选变量简单地合并到标准线性回归中。该线性回归中的p值无效,因为它们没有包含您已经执行基于结果的变量选择的事实。此外,如果预测变量之间存在相关性,则您选择的特定变量可能在很大程度上取决于您分析的特定数据样本。更糟糕的是,从一组相关预测变量中选择的回归系数的幅度往往大于它们在总体中的真实值。因此,这些类型的线性模型的结果在总体中的新样本上可能表现不佳。您可以通过分析数据集中的多个引导样本来检查这些行为。

尽管 LASSO 也可以在不同的数据样本上选择不同的变量集,但它与其他方法相比具有主要优势。它还惩罚所选变量的回归系数,降低它们在标准线性回归中的大小。这种惩罚通常会提高预测新数据样本结果的能力。

因此,如果您只是简单地将 LASSO 选择的变量放入一个新的线性回归中,那么您不仅会遇到所有变量选择方法所带来的问题,而且您也会失去 LASSO 通过惩罚所选变量的系数来改进预测的优势. 该线性回归的p值不会比逐步或最佳子集选择更有效。(在基于p值截止的多元回归中删除“无关紧要的”预测变量无论如何都不是一个好主意)。

因此,您提出的方法将抵消您通过选择像 LASSO 这样的原则方法所做的好处,首先是惩罚。正如 Richard Hardy 在评论中指出的那样,可以使用 LASSO 进行变量选择以合并到线性回归中的方法,但这些是针对特定情况的专用多步方法,它们似乎glmnet()在您的应用程序中没有任何优势.

所以坚持使用 LASSO 提供的预测变量和系数。