如何处理LASSO中的分类预测变量


17

我运行的LASSO具有一些分类变量预测变量和一些连续变量预测变量。我对分类变量有疑问。我了解的第一步是将它们分成假人,对它们进行标准化以进行公平的惩罚,然后回归。处理虚拟变量有几种选择:

  1. 包括每个因素中除一个假人以外的所有假人,将其作为参考水平。虚拟系数的解释是相对于排除的“参考”类别而言的。截距现在是参考类别的平均响应。

  2. 将每个因素中的变量分组,以便将它们全部排除或全部排除。我相信这就是@Glen_b 在这里建议的内容:

    通常,是的,您将所有因素放在一起。有几个R软件包可以做到这一点,包括glmnet

  3. 包括各个层面,如经@Andrew中号建议在这里

    您可能还需要更改默认的对比功能,默认情况下,该功能不使用每个因子的一个级别(处理编码)。但是由于套索罚分,对于可识别性而言,这不再是必需的,并且实际上使所选变量的解释更加复杂。为此,请设置

    contr.Dummy <- function(contrasts, ...){
       conT <- contr.treatment(contrasts=FALSE, ...)
       conT
    }
    options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy'))
    

    现在,无论选择了哪个因子水平,您都可以认为它暗示着这些特定水平相对于所有省略的水平都很重要。在机器学习中,我已经看到这种编码称为“单热编码”。

问题:

  1. 在每种方法下,截距系数的解释是什么?
  2. 选择其中之一需要考虑哪些因素?
  3. 我们是否要对虚拟系数进行缩放,然后将其解释为从关到开的变化?

Answers:


6

在LASSO回归中处理分类变量时,通常使用分组的LASSO,它将与特定分类变量相对应的虚拟变量保持在一起(即,您不能仅从模型中排除一些虚拟变量)。一种有用的方法是Choi,Park和Seo(2012)中描述的Modified Group LASSO(MGL 。在这种方法中,惩罚与虚拟变量集的向量的范数成正比。您仍然在此方法中保留参考类别,因此仍包含拦截项。这使您可以处理多个类别变量,而不会出现可识别性问题。β

在回答您的特定问题时:

(1)LASSO是系数的估计方法,但是系数本身是由初始模型方程式定义的,以便进行回归。因此,系数的解释与标准线性回归中的解释相同。它们代表由于解释变量的变化而引起的预期响应的变化率。

(2)以上文献建议对变量进行分组,但要保留参考类别。隐式地假定您正在将分类变量的存在与删除该变量但仍具有截取项的模型进行比较。

(3)如上所述,估计方法不影响由模型陈述设置的系数的解释。


1
哈特谢普苏特:如果您认为此答案有帮助,请考虑投票和/或 接受。如果没有,也许您可​​以指出还缺少什么?
S. Kolassa-恢复莫妮卡

@StephanKolassa完成
Hatshepsut
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.