带有交互项的 LASSO - 如果主效应缩小到零可以吗?

机器算法验证 机器学习 套索 网络 正则化
2022-02-10 23:27:29

LASSO 回归将系数缩小到零,从而提供有效的模型选择。我相信在我的数据中,名义协变量和连续协变量之间存在有意义的相互作用。然而,真实模型的“主效应”不一定有意义(非零)。当然我不知道这一点,因为真正的模型是未知的。我的目标是找到真正的模型并尽可能准确地预测结果。

我了解到,经典的模型构建方法总是会在包含交互之前包含主效应。的交互作用,则不可能存在没有两个协变量的主效应的模型。因此,函数会 仔细选择遵守此规则的模型项(例如,基于后向或前向 AIC)。XZXZstepR

LASSO 的工作方式似乎有所不同。由于所有参数都受到惩罚,因此毫无疑问可能会发生主效应缩小到零,而最佳(例如交叉验证)模型的交互作用是非零的。我在使用R'sglmnet包时特别发现了我的数据。

我收到了基于上面引用的第一条规则的批评,即我最终的交叉验证 Lasso 模型不包括一些非零交互的相应主效应项。然而,在这种情况下,这条规则似乎有些奇怪。归结为真实模型中的参数是否为零的问题。让我们假设它是但交互是非零的,那么 LASSO 可能会识别它,从而找到正确的模型。事实上,该模型的预测似乎会更精确,因为该模型不包含真正的零主效应,这实际上是一个噪声变量。

我可以基于这个理由驳斥批评,还是我应该以某种方式采取预防措施,即 LASSO 确实在交互项之前包含了主效应?

4个回答

我参加聚会迟到了,但这里是我对你的问题的一些想法。

  1. 套索选择信息丰富的内容。让我们将 lasso 视为一种以最少的特征获得最高预测性能的方法。在某些情况下,套索选择交互而不是主效应是完全可以的。这只是意味着主要影响不是信息性的,但相互作用是信息性的。

  2. 你只是在报告,你发现了什么。你使用了一些方法,它产生了一些结果。您以允许可重复性的透明方式报告它。在我看来,你的工作已经完成。结果是客观的,你找到了你发现的东西,证明你为什么没有找到其他东西不是你的工作。

  3. 所有单位都是任意的。交互只是单位。 假设您学习颜色。颜色可以作为波长或对数波长,或作为 3 个 RGB 变量,或作为色调和色调的交互等包含在您的模型中。没有本质上正确或不正确的颜色表示。您将选择对您的问题最有意义的一种。交互也只是您可以任意使用的单位。窗口的面积,只是它的高度和宽度的交互,你应该在模型中包含窗口的高度和宽度吗?速度只是质量和速度的相互作用。而速度只是时间和距离的相互作用。工时只是时间和工作人数的相互作用。数学上治疗剂量 * 年龄与高度 * 宽度相同。“你必须始终包括主要影响”这句话被高估了。

  4. 套索不逼近真实模型,它不用于推理并且所选变量不稳定。如果您有相关的信息预测变量,套索倾向于选择一个并将其他变量推为 0,因此您的模型将忽略大量信息变量。此外,正如评论中所指出的,如果您在交叉验证中找到最佳 lambda,则套索将选择比真实模型更多的变量。另一个问题是,套索的选择是不稳定的。因此,如果您再次对来自总体的不同样本运行套索,您将以一组不同的选定变量结束。因此,不要太看重选择了哪些变量。此外,beta 是有偏差的,因此不能用于经典的参数假设检验。但是,有一些方法可以解决(下一点)

  5. 用套索推理。Lasso 可用于对预测变量进行推断。最简单的方法是引导它并计算每个变量被选择的次数,除以重新采样的数量,你就有了你的 p 值。在这种情况下,P 是 lasso 选择变量的概率。您仍然可能最终得到显着的交互效应和微不足道的主效应,但这不是问题,正常假设检验也可能发生这种情况。Hastie et 中对这个主题的很好处理。人。免费书籍:稀疏的统计学习,第 6 章http://web.stanford.edu/~hastie/StatLearnSparsity/可以对整个范围的 lambda 值执行引导程序,这将为所有变量生成一条稳定路径。这可以通过稳定性选择方法进行扩展,以找到一组针对家庭错误进行校正的重要变量。http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9868.2010.00740.x/abstract还有其他一些用套索推理的方法,这可能很有用。即自适应套索或稀疏套索。在这里查看 R 实现 DOI:10.1214/15-STS527 或 IMO 在 Buhlmanm, van de Geer 书中更易于理解的解释:高维数据统计http://www.springer.com/la/book/9783642201912

  6. 其他与套索相关的事情要注意。据我所知,脊或弹性网往往优于套索。如果有关于变量的领域知识,可以使用组套索或稀疏组套索来强制套索保留或丢弃整个预测变量组,而不是单独处理它们(例如基因路径,虚拟编码因子变量)。对于空间或有序数据,可以使用融合套索。上面提到的稳定性选择论文中介绍的随机 lasso 倾向于生成与标准 lasso 具有相同性能的稀疏模型。

回答这个问题的一个困难是,在大多数实际应用中很难将 LASSO 与“真实”模型的想法相协调,这些应用通常在预测变量之间具有不可忽略的相关性。在这种情况下,与任何变量选择技术一样,LASSO 以非零系数返回的特定预测变量将取决于来自基础总体的抽样的变幻莫测。您可以通过对来自同一数据集的多个引导样本执行 LASSO 并比较返回的预测变量集来检查这一点。

此外,正如@AndrewM 在评论中指出的那样,LASSO 提供的估计偏差意味着您不会“尽可能地”预测结果。相反,您正在预测基于不可避免的偏差-方差权衡的特定选择的结果。

因此,考虑到这些困难,我希望你自己想知道,而不仅仅是为了满足批评者,对交互作用有贡献的变量的主要影响的大小。R 中有一个可用的软件包glinternet,它似乎可以完全满足您的需求(尽管我对此没有经验):

组套索交互网络。拟合满足强层次结构的线性成对交互模型:如果交互系数估计为非零,则其两个相关的主效应也具有非零估计系数。容纳具有任意数量的水平、连续变量及其组合的分类变量(因子)。

或者,如果您没有太多的预测变量,则可以考虑使用岭回归,这将返回所有变量的系数,这些变量可能不太依赖于特定数据样本的变幻莫测。

对于 Lasso,如果您在预测环境中使用它,那么唯一重要的是交叉验证结果的好坏。如果您试图围绕您的效果进行推断,请阅读有关“双套索”的论文。

我有一个应用程序,我特别希望少量的主效应不会受到惩罚。设 Y = X.main beta + X.inter beta.inter + eps

a) fit.Y = OLS(X.main,Y)。假设 tilde.Y = Y - predict(fit.Y,X.main) b) fit[,j] = OLS(X.main, X.inter[,j]) for j = 1...k。让 tilde.X.inter[,j] = X.inter[,j] - predict(fit.j,X.main) c) fit = Lasso (tilde.X.inter,tilde.y) 。主效应系数等于 fit.Y - coef(fit)*fit[,1:dim(X.inter)[2]]。交互作用的系数等于 coef(fit)

在步骤 a 和 b 中,不需要进行样本拆分。这对我行得通!