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

机器算法验证 回归 主成分分析 特征选择 逐步回归 下定决心
2022-01-31 01:48:42

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

  • 据我了解,不建议逐步包含或排除预测变量

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

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

  • 还有其他建议吗?

4个回答

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

您应该使用交叉验证来选择惩罚参数的值。如果你有 R,我建议使用glmnet 包用于alpha=1套索回归和alpha=0岭回归。将值设置在 0 和 1 之间将使用 lasso 和 ridge 惩罚的组合,也称为弹性网络。

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

minβ(YXβ)T(YXβ)+i|βi|

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

最小值位于相交曲线上,这里用二次和方形曲线的等高线绘制:

LASSO的轮廓曲线

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

您可以查看我关于使用惩罚进行回归和变量选择(也称为 Lasso 正则化) 的博客文章。L1

您对有多少预测变量可能很重要的先前信念是什么?它们中的大多数是否可能具有完全为零的影响,或者一切都会影响结果,某些变量只比其他变量少?

健康状况与预测任务有何关系?

如果您认为只有少数变量是重要的,您可以先尝试使用尖峰和平板(例如在 R 的尖峰SlabGAM 包中)或 L1。如果您认为所有的预测因素都会影响结果,那么您可能就不走运了。

一般来说,所有与观察数据因果推断相关的警告都适用。

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