如何为正则化回归选择调整参数进行解释?

机器算法验证 回归 交叉验证 模型选择 正则化 弹性网
2022-03-21 13:44:16

我正在使用线性回归来预测使用大量(~200)二元指标变量的连续变量。我有大约 2,500 个数据行。这里有几个问题:

  • 当我进行单变量回归时,大多数指标与因变量有显着关联(根据设计——我收集了我认为与因变量相关的数据)
  • 一些指标的发生率非常低(约 1% 或更少)(但我试图将这些变量排除在分析之外)
  • 一些指标同时出现

我正在寻找一个稳定、简约的模型。我一直在使用 AIC 或 BIC 选择。我知道这可能会令人不悦,但我对此很满意,主要是因为我只是在输入我希望有一些关联的变量。由于 IDV(自变量)共现,我不想使用标准 Enter 回归。

不幸的是,如果我使用从原始数据集中随机抽取的案例构建一个新数据集,并重新调整我的 BIC 模型,我发现在 20 个这样的循环之后,每个单独的 BIC 模型保留的大部分术语都不会在所有 20 个模型中保留。我想我应该使用某种正则化回归——比如岭(因为它能够处理 IDV 相关性)、套索(因为它能够将参数设置为 0)或弹性网(结合这些优势)。我的理解是,这类似于使用比逐步 AIC 或 BIC 更软的阈值标准,可以产生更多可重复的结果。我以前从未使用过这些技术,但在做了一些研究之后,我

我的主要问题:我实际上对解释我的模型比使用它进行预测更感兴趣。我读过选择用于解释的调整参数比预测更难,但没有找到更多信息。有人可以指出我正确的方向吗?如果有人好奇,我正在使用 R。

第二个问题: R 为套索模型中的模型提供(我猜是 Wald)显着性估计。我相信他们吗?我可以在紧要关头解释它们吗?

我有工程背景,所以如果可能的话,我特别喜欢参考答案(网络资源很好),只要提供解释/直觉,数学是受欢迎的。

谢谢!

2个回答

我想尝试回答您的主要问题,这里有两种选择:

  1. 使用单一标准错误 (1SE) 规则

    • 在为选择目的进行交叉验证时,使用 1SE 规则会有所帮助。计算每个折叠的 CV 估计值的标准误差。不要选择与最小 CV 误差相对应的模型,而是使用最简约的模型,其中 CV 误差在最小值的一个标准误差范围内。

    • R 包glmnet自动执行此操作 - 选择lambda.1se而不是lambda.min.

    • 1SE 规则可以帮助使用 LASSO 选择正确的模型,但估计可能会受到很大的偏差。通常需要一个大的调整参数来将系数设置为零(特别是如果有很多为零)。LASSO 同等地收缩系数,因此大的调整参数会过度收缩大的系数,这会导致大的偏差。收缩应该会引入轻微的偏差,但方差会大幅降低,从而导致预测误差降低。在这种情况下,偏差很大!

    • 编辑:一些作者建议通过使用 LASSO 进行变量选择来克服偏差,然后使用最小二乘法估计所选子集的参数 - 例如参见LARS-OLS HybridBühlmann 和 van de Geer 讨论的 LASSO 阈值化(2011 )
  2. 使用自适应 LASSO 或松弛 LASSO

    • 在选择用于预测的调整参数(最小 CV 误差)时,LASSO 通常包含太多变量。但是,真正的模型很有可能是这些变量的一个子集。这建议使用第二阶段的估计。自适应 LASSO松弛 LASSO都实现了这一点并控制了 LASSO 估计的偏差。使用任何一种方法,预测最优调整参数都会导致一致的选择。
    • R 包relaxo实现了轻松LASSO。
    • 对于自适应 LASSO,您需要一个初始估计(最小二乘、岭甚至 LASSO 估计)来计算权重。然后,您可以使用与 LASSO 相同的函数来实现它,方法是缩放 X 矩阵:

      w  <- abs(beta.init)  
      x2 <- scale(x, center=FALSE, scale=1/w)  
      

      选择调整参数和估计系数 ( coef) 使用x2

      coef <- coef*w
      
  3. 编辑:我遇到了一些其他标准,可用于使用 LASSO 进行变量选择:

    • Wang, et al (2009)提出了一个修改后的 BIC 标准,并表明它是一致的。基本上,因子乘以 BIC 惩罚。变化时,他们选择了对于固定Chand (2012)显示出一致性Fan and Tang (2013)时使用的通用版本CnCn=log(log(p))pnpCn=n/pp>n

    • Roberts 和 Nowak (2014)提出使用百分位 CV,重复执行交叉验证以产生一个调整参数估计的向量,然后选择最佳的一个作为该向量的 95% 百分位。

    • Sun, et al (2013)提出使用 Cohen 的 kappa 系数来衡量两组之间的一致性。Fang, et al (2013)取平均 kappa 系数和平均 CV 误差的比值,他们称之为 PASS。这两种方法可以使用 R 包pass来实现。

我的会议论文中,我进行了模拟研究,以比较 LASSO 调整参数选择方法的性能,用于预测和变量选择目的。对于变量选择,我使用 5 倍和 10 倍 CV、百分位 CV、kappa、PASS、BIC 和修改后的 BIC 实现了 1SE 规则。结果表明,这些方法中的大多数确实比 k 倍 CV、LOOCV、GCV、Cp 和 AIC 等预测方法执行了更好的变量选择。

不确定这是否有帮助,但可能您可以创建(使用例如 caret 包)类似于如何解释套索选择图的图,然后选择一个交叉验证的调整值,该调整值充分限制参数空间以允许可解释性?