我使用以下方法从原始完整模型中获得了三个简化模型
- 前向选择
- 向后淘汰
- L1惩罚技术(LASSO)
对于使用前向选择/后向消除得到的模型,我使用获得的预测误差的横验证估计CVlm
在包DAAG
提供R
。对于通过LASSO选择的模型,我使用cv.glm
。
LASSO的预测误差小于其他方法的预测误差。因此,通过LASSO获得的模型在预测能力和可变性方面似乎更好。这是一种经常发生的普遍现象,还是特定于问题的?如果这是普遍现象,那么理论上的依据是什么?
我使用以下方法从原始完整模型中获得了三个简化模型
对于使用前向选择/后向消除得到的模型,我使用获得的预测误差的横验证估计CVlm
在包DAAG
提供R
。对于通过LASSO选择的模型,我使用cv.glm
。
LASSO的预测误差小于其他方法的预测误差。因此,通过LASSO获得的模型在预测能力和可变性方面似乎更好。这是一种经常发生的普遍现象,还是特定于问题的?如果这是普遍现象,那么理论上的依据是什么?
Answers:
LASSO和前进/后退模型选择均具有优势和局限性。无法提出详尽建议。始终可以探索仿真来解决这个问题。
可以从维度的角度理解这两者:将模型参数的数量称为将观测值的数量称为。如果您能够使用向后模型选择来拟合模型,则可能没有。在这种情况下,“最佳拟合”模型是使用所有参数的模型……经过内部验证!这完全是过度拟合的问题。
使用拆分样本交叉验证(CV)进行模型评估,以解决过度拟合问题。既然您没有描述,我假设您没有这样做。与逐步模型选择不同,LASSO使用调整参数来惩罚模型中的参数数量。您可以固定调整参数,或使用复杂的迭代过程来选择此值。默认情况下,LASSO执行后者。这是用CV完成的,以便最小化预测的MSE。我不知道使用这种复杂技术的逐步模型选择的任何实现方式,即使将BIC作为标准也会遭受内部验证偏差的困扰。以我的说法,这自动为LASSO提供了“现成”逐步选择模型的能力。
最后,逐步模型选择可以具有不同的准则来包括/排除不同的回归变量。如果将p值用于特定模型参数的Wald检验或所得模型R ^ 2,则效果不佳,主要是因为内部验证偏差(同样可以使用CV进行补救)。我感到惊讶的是,这仍然是这种模型倾向于实现的方式。AIC或BIC是更好的模型选择标准。
每种方法都有很多问题。逐步模型选择的问题要好得多,而且远比LASSO的问题差。我对您的问题的主要疑问是,您正在使用特征选择工具来评估预测。它们是不同的任务。LASSO更适合特征选择或稀疏模型选择。岭回归可以使用所有变量,因此可以提供更好的预测。
LASSO的强大优势在于,它可以估计模型,正向(但不能向后)逐步回归就是这种情况。在这两种情况下,只有在少数几个非常强大的预测变量时,这些模型才对预测有效。如果结果是更好的许多薄弱预测,然后岭回归或装袋/提升的表现将优于预测都由一个长镜头向前逐步回归和套索。LASSO比前进逐步回归快得多。
在特征选择和预测之间显然存在很多重叠,但我从未告诉过您扳手如何充当锤子。通常,对于稀疏模型系数和预测,与前向逐步模型选择相比,我更喜欢LASSO。
您想根据一些标准选择预测变量的子集。可能是样本AIC或调整后的R ^ 2或交叉验证,都没有关系。
您可以测试每个预测变量子集组合并选择最佳子集。然而
您可以使用逐步选择
您可以使用向后消除
您可以使用LASSO
关于您的问题,为什么LASSO在CV中的数据表现更好
最重要的是,LASSO为您提供正则化和有效的子集选择,尤其是当您有很多预测变量时。
顺便说一句,您可以进行LASSO并使用CV(最常用)以及AIC或其他标准来选择模型。使用没有约束的L1正则化运行模型,然后逐渐收紧约束,直到AIC达到最小值或CV误差或您选择的标准。参见http://scikit-learn.org/stable/auto_examples/linear_model/plot_lasso_model_selection.html