据我所知,使用套索进行变量选择可以解决相关输入的问题。而且,由于它等效于最小角度回归,因此在计算上并不慢。但是,许多人(例如,我认识的从事生物统计学的人)似乎仍然倾向于逐步或阶段性变量选择。使用套索有任何实际的不利之处吗?
据我所知,使用套索进行变量选择可以解决相关输入的问题。而且,由于它等效于最小角度回归,因此在计算上并不慢。但是,许多人(例如,我认识的从事生物统计学的人)似乎仍然倾向于逐步或阶段性变量选择。使用套索有任何实际的不利之处吗?
Answers:
没有理由进行逐步选择。只是错了
LASSO / LAR是最好的自动方法。但是它们是自动方法。他们让分析师不要思考。
在许多分析中,无论任何有意义的量度,模型中都应包含一些变量。有时它们是必要的控制变量。在其他时候,发现很小的影响可能非常重要。
LASSO鼓励将系数缩小到0,即从模型中删除那些变量。相比之下,其他正则化技术(如脊)往往会保留所有变量。
因此,我建议考虑这种删除是否对您的数据有意义。例如,考虑对基因芯片数据或振动光谱数据进行临床诊断测试。
您可能希望某些基因携带相关信息,但其他许多基因只是杂音。你的申请。删除这些变量是一个非常明智的想法。
相比之下,振动光谱数据集(虽然通常具有与微阵列数据相比相似的尺寸)往往会在光谱的大部分区域(相关性)上“涂抹”相关信息。在这种情况下,要求正则化删除变量不是特别明智的方法。更是如此,因为像PLS这样的其他正则化技术更适合这种类型的数据。
统计学习的要素对 LASSO进行了很好的讨论,并将其与其他正则化技术进行了对比。
如果两个预测变量高度相关,则LASSO最终可能会任意放弃一个。当您要为这两个预测变量之间没有高度相关性的人群做出预测时,这并不是很好,这也许是在这种情况下更倾向于使用岭回归的原因。
您可能还认为预测变量的标准化(比如说系数是“大”还是“小”)相当武断,并且(像我一样)对标准化分类预测变量的明智方法感到困惑。
仅当您限制自己考虑要估计的参数呈线性的模型时,套索才有用。换句话说,套索不会评估您是否选择了自变量和因变量之间关系的正确形式。
在任意数据集中可能存在非线性,交互作用或多项式的影响是非常合理的。但是,仅当用户进行分析时,才会评估这些替代模型规格;套索不能代替它。
对于如何解决这个问题的简单示例,请考虑一个数据集,其中独立变量的不相交间隔将预测因变量的高值和低值交替出现。使用常规的线性模型来进行分类将是一个挑战,因为要进行分析的清单变量没有线性影响(但是清单变量的某些转换可能会有所帮助)。套索保留其清单形式时,会错误地得出结论:此功能是无关的,并且由于没有线性关系,因此将其系数归零。另一方面,由于数据中存在轴对齐的拆分,因此基于树的模型(例如随机森林)可能会做得很好。
套索和其他正则化技术的实际缺点之一是找到最佳正则化系数λ。使用交叉验证来找到此值可能与逐步选择技术一样昂贵。
我不是LASSO专家,但我是时间序列专家。如果您有时间序列数据或空间数据,那么我会避免使用基于独立观测值的解决方案。此外,如果存在未知的确定性影响,破坏了您的数据(电平变化/时间趋势等),那么LASSO甚至不会成为一个好锤子。在关闭时,如果您有时间序列数据,当面对随时间变化的参数或误差方差时,通常需要对数据进行细分。
这已经是一个很老的问题,但是我觉得与此同时,这里的大多数答案都已经过时了(而被检查为正确答案的答案显然是错误的恕我直言)。
首先,就获得良好的预测性能而言,LASSO总是比逐步改进更好,这并不普遍。Hastie等人(2017)的论文“最佳子集选择,正向逐步选择和套索的扩展比较”提供了正向逐步,LASSO和一些LASSO变体(如宽松LASSO和最佳子集)的广泛比较,它们表明分步有时比LASSO更好。不过,LASSO的一种变体-松弛LASSO-是在最广泛的环境下产生最高模型预测精度的模型。关于哪个最佳的结论很大程度上取决于您的最佳考虑,例如,这将是最高的预测准确性还是选择最少的误报变量。
尽管整个学习方法都很稀疏,但大多数方法都比LASSO好。例如,在软件包中实施了Meinhausen的宽松LASSO,自适应LASSO和SCAD以及MCP惩罚性回归ncvreg
,它们的偏差都小于标准LASSO,因此是可取的。此外,如果您对具有最佳预测性能的绝对最稀疏解决方案感兴趣,那么可以对L0进行惩罚回归(也称为最佳子集,即基于对非零系数nr的惩罚,而不是LASSO中系数绝对值的和)比LASSO更好,请参见例如使用迭代自适应脊线程序近似L0惩罚GLM 的l0ara
软件包,并且与LASSO不同,它在高度共线性的变量上也能很好地工作,并且该L0Learn
软件包可以使用坐标下降法拟合L0罚回归模型,并可能与L2罚则结合使用以规范共线性。
现在回到您的原始问题:为什么不使用LASSO进行变量选择?:
(1)因为系数将高度偏向,这在宽松的LASSO,MCP和SCAD惩罚回归中得到了改善,而在L0惩罚回归中得到了完全解决(具有完全的oracle属性,即它既可以选择因果变量,也可以重新调整)无偏系数,也适用于p> n情况)
(2),因为与L0惩罚回归相比,它倾向于产生更多的假阳性(在我的测试中,l0ara
执行效果最好,即迭代自适应脊,其次是L0Learn
)
(3)因为它不能很好地处理共线性变量(实际上只能随机选择一个共线性变量)-迭代适应性ridge / l0ara
和L0L2罚分在L0Learn
处理上要好得多。
当然,一般而言,您仍然必须使用交叉验证来调整正则化参数以获得最佳的预测性能,但这不是问题。如果您愿意通过非参数自举,甚至可以对参数进行高维推论,并计算系数的95%置信区间(即使对每个自举数据集进行交叉验证,也要考虑最优正则化选择的不确定性) ,尽管那样会变得很慢)。
计算上来说,LASSO的适应性并不比逐步方法慢,如果使用高度优化的代码并使用热启动来优化LASSO正则化的话,肯定不会慢(您可以使用fs
命令进行逐步向前和软件包中的lasso
LASSO进行比较bestsubset
)。逐步方法仍然很流行的事实可能与许多人的错误信念有关,即人们可能只是保留您的最终模型并报告与之相关的p值-实际上这不是正确的做法,因为这并不正确。考虑到模型选择带来的不确定性,导致p值过于乐观。
希望这可以帮助?
一个大问题是进行假设检验的难度。使用套索您不容易找出哪些变量在统计上是重要的。通过逐步回归,如果您对多重测试的处理谨慎,则可以在某种程度上进行假设检验。