我在具有多个分类变量的数据集上运行了LASSO算法。当我在自变量上使用model.matrix()函数时,它会自动为每个因子级别创建虚拟值。
例如,我有一个变量“ worker_type”,它具有三个值:FTE,contr和其他。在此,参考模式为“ FTE”。
某些其他类别变量具有更多或更少的因子水平。
当我输出LASSO的系数结果时,我注意到worker_typecontr和worker_typeother的系数均为零。我应该如何解释结果?在这种情况下,FTE的系数是多少?我应该把这个变量从公式中删除吗?
答案 0 :(得分:0)
也许这个问题更适合交叉验证。
里奇回归和套索都是“收缩”方法,通常用于处理高维预测变量空间。您的套索回归将某些beta系数降低为零的事实表明,套索正在完全按照其设计的目的运行!根据其数学定义,套索假定许多系数确实等于零。系数为零的解释是,与非零预测变量相比,这些预测变量无法解释响应中的任何方差。
为什么套索会将某些系数缩小为零?我们需要研究如何选择系数。 Lasso本质上是一个多元线性回归问题,可以通过最小化平方和的残差来解决,再加上一个特殊的L1惩罚项,该项将系数缩小为0。这是一个最小化的项:
其中 p 是预测变量的数量,而 lambda 是非负调整参数。当 lambda = 0 时,惩罚项消失,并且您具有多元线性回归。随着 lambda 变大,您的模型拟合将具有较小的偏差,但方差较大(即-可能会过度拟合)。
应采用交叉验证方法来选择适当的调整参数 lambda 。取一个 lambda 值的网格,并为每个 lambda 值计算交叉验证误差,然后选择交叉验证误差最低的调整参数值。
套索在某些情况下很有用,并有助于生成简单的模型,但是应特别考虑数据本身的性质,并且考虑到如何使用其他方法(例如Ridge回归或OLS回归)更合适许多预测因素应该与响应真正相关。
注意:请参阅“统计学习简介”中第221页的等式6.7,您可以免费下载here。