使用涉及分类变量的 LASSO 进行子集选择

Subset selection with LASSO involving categorical variables

我 运行 具有多个分类变量的数据集上的 LASSO 算法。当我对自变量使用 model.matrix() 函数时,它会自动为每个因子水平创建虚拟值。

例如,我有一个变量 "worker_type",它具有三个值:FTE、contr、other。在这里,参考是模态 "FTE"。

其他一些分类变量具有更多或更少的因子水平。

当我从 LASSO 输出系数结果时,我注意到 worker_typecontr 和 worker_typeother 的系数均为零。我应该如何解释结果?在这种情况下,FTE 的系数是多少?我应该把这个变量从公式中去掉吗?

也许这个问题更适合交叉验证

岭回归和 Lasso 都是 "shrinkage" 方法,通常用于处理高维预测变量 space。

您的 Lasso 回归将一些 beta 系数降低为零这一事实表明 Lasso 正在按照其设计的目的进行操作!根据其数学定义,Lasso 假定许多系数确实为零。对变为零的系数的解释是,与非零预测变量相比,这些预测变量无法解释响应中的任何方差。

为什么 Lasso 会将一些系数缩小为零?我们需要研究如何选择系数。 Lasso本质上是一个多元线性回归问题,通过最小化残差平方和,加上一个特殊的L1惩罚项将系数收缩为0来解决。这是最小化的项:

其中 p 是预测变量的数量,lambda 是一个非负调整参数。当 lambda = 0 时,惩罚项消失,并且您有一个多元线性回归。随着 lambda 变大,您的模型拟合将具有更小的偏差,但方差更高(即 - 它会过度拟合)。

应采用交叉验证方法select调整适当的调整参数 lambda。获取 lambda 值的网格,并计算每个 lambda 值的交叉验证误差和 select 的调整参数值其中交叉验证误差最低。

套索在某些情况下很有用,有助于生成简单的模型,但应特别考虑数据本身的性质,以及另一种方法(如岭回归或 OLS 回归)是否更合适给定多少预测变量应该与响应真正相关。

注意:请参阅 "An Introduction to Statistical Learning" 中第 221 页的等式 6.7,您可以免费下载 here