从许多自变量中检测出重要的预测变量


31

在两个非重叠人群(患者和健康人群,总计n=60)的数据集中,我想(从300独立变量中)找到连续因变量的重要预测因子。存在预测变量之间的相关性。我有兴趣了解是否有任何预测变量与“现实中”的因变量相关(而不是尽可能准确地预测因变量)。当我对众多可能的方法不知所措时,我想问一问最推荐哪种方法。

  • 根据我的理解,不建议逐步加入或排除预测变量

  • 例如,对每个预测变量分别运行线性回归,并使用FDR校正p值以进行多次比较(可能非常保守?)

  • 主成分回归:难以解释,因为我无法讲述单个预测变量的预测能力,而只能讲述成分。

  • 还有其他建议吗?


我听说有人使用L1正则化回归来执行此类操作。但是我不知道该怎么写一个正确的答案……
2012年

2
为了提供最佳建议,这将有助于我们在确定“重要的预测因素”后知道您将如何进行。您是否正在尝试尽可能准确地预测结果?找到一种简约的方法进行预测(例如,使用最多k个预测变量进行有效的预测;解释导致结果“现实”的原因;或者其他原因?此外,您的数据集有多大?
rolando2

@rolando:感谢您的评论!我更新了问题:我的观察总数为n = 60个主题。我的目的不是尽可能准确地预测因变量,而是解释导致结果“现实”的原因(=希望找到可以在以后的研究/数据集中确认的变量之间的关系)
jokel,2012年

我还发布了一个后续问题,其中包括一些虚拟数据。我将非常感谢所有提示。stats.stackexchange.com/questions/34859/…– jokel
2012年

Answers:


30

我建议使用套索正则化来尝试一下。这会给模型增加变量数量的惩罚,并且随着惩罚的增加,模型中变量的数量也会减少。

您应该使用交叉验证来选择惩罚参数的值。如果您有R,建议您使用glmnet软件包。使用alpha=1了套索回归,以及alpha=0对岭回归。设置0到1之间的值将使用套索和山脊惩罚的组合,也称为弹性网。


4
我同意扎克。我和David Cassell撰写了一篇有关此的论文,主要关注SAS,但并不完全。它正在逐步停止
彼得·弗洛姆

1
我认为山脊0和套索1
国王

1
@Zach:感谢您的提示。有没有一种方法可以获取一些检验统计量,从而使我能够判断单个预测变量的重要性。最后,我想说“预测变量X与因变量Y显着相关”。
2012年

2
关于CI,从另一个实施LASSO的R软件包的手册中(cran.r-project.org/web/packages/penalized/vignettes/…,第18页):“要求回归的标准误差是非常自然的问题系数或其他估计数量。原则上,此类标准误差很容易计算出来,例如使用引导程序;但是,此软件包故意不提供它们,原因是标准误差对于诸如来自惩罚性估算方法。”
miura 2012年

2
@miura最近介绍的也是原始Lasso作者的测试统计数据:幻灯片(更易于阅读)
Cam.Davidson.Pilon 2013年

23

为了扩展Zach的答案(+1),如果在线性回归中使用LASSO方法,则尝试最小化二次函数和绝对值函数的和,即:

βÿ-XβŤÿ-Xβ+一世|β一世|

第一部分是平方(下面的金),第二部分是方形曲线(下面的绿色)。黑线是相交线。 βLASSO目标函数

最小值位于相交曲线上,此处与二次曲线和方形曲线的轮廓曲线一起绘制:

LASSO的轮廓曲线

您可以看到最小值位于其中一个轴上,因此已从回归中消除了该变量。

您可以查看我的博客文章,关于使用罚分进行回归和变量选择(也称为套索正则化)。 大号1个


8
(+1),但对于博客文章而言,这确实不错。不过,如果您在此处将答案扩展一些,那就太好了,因为这将增加信息保持可用的可能性。
richiemorrisroe 2012年

2

您对多少个预测变量可能很重要的先前看法是什么?它们中的大多数可能会产生完全为零的影响,还是一切都会影响结果,某些变量仅比其他变量少?

健康状况如何与预测任务相关?

如果您认为只有几个变量很重要,则可以先尝试使用尖峰和台阶(例如,在R的spinSlabGAM软件包中)或L1。如果您认为所有预测因素都会影响结果,那么您可能不走运。

通常,与观察数据的因果推断有关的所有警告均适用。


2

无论您做什么,都值得在预测变量的重要性等级上获得引导置信区间,以表明您可以使用数据集真正做到这一点。我怀疑任何一种方法都能可靠地找到“真实的”预测因子。


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.