我使用原始完整模型从原始完整模型中获得了三个简化模型
- 前向选择
- 向后消除
- L1 惩罚技术 (LASSO)
对于使用前向选择/后向消除获得的模型,我使用 in 中可用的CVlm
包获得了预测误差的交叉验证估计。对于通过 LASSO 选择的模型,我使用了.DAAG
R
cv.glm
LASSO 的预测误差小于其他的预测误差。因此,通过 LASSO 获得的模型在预测能力和可变性方面似乎更好。这是经常发生的普遍现象还是特定问题?如果这是一种普遍现象,那么理论上的推理是什么?
我使用原始完整模型从原始完整模型中获得了三个简化模型
对于使用前向选择/后向消除获得的模型,我使用 in 中可用的CVlm
包获得了预测误差的交叉验证估计。对于通过 LASSO 选择的模型,我使用了.DAAG
R
cv.glm
LASSO 的预测误差小于其他的预测误差。因此,通过 LASSO 获得的模型在预测能力和可变性方面似乎更好。这是经常发生的普遍现象还是特定问题?如果这是一种普遍现象,那么理论上的推理是什么?
LASSO 和前向/后向模型选择都有优点和局限性。无法提出全面的建议。总是可以探索模拟来解决这个问题。
两者都可以从维数的意义上理解:指为模型参数的个数,为观测值的个数。如果您能够使用反向模型选择来拟合模型,那么您可能没有。在这种情况下,“最佳拟合”模型是使用所有参数的模型……在内部验证时!这只是过拟合的问题。
使用拆分样本交叉验证 (CV) 进行模型评估来纠正过度拟合。既然你没有描述这一点,我假设你没有这样做。与逐步模型选择不同,LASSO 使用调整参数来惩罚模型中的参数数量。您可以固定调整参数,或使用复杂的迭代过程来选择此值。默认情况下,LASSO 执行后者。这是用 CV 完成的,以便最小化预测的 MSE。我不知道任何使用这种复杂技术的逐步模型选择的实现,即使将 BIC 作为标准也会受到内部验证偏差的影响。根据我的说法,这会自动使 LASSO 对“开箱即用”的逐步模型选择产生影响。
最后,逐步模型选择可以有不同的标准来包含/排除不同的回归器。如果您使用特定模型参数的 Wald 检验或结果模型 R^2 的 p 值,您将不会做得很好,主要是因为内部验证偏差(同样,可以使用 CV 来纠正)。我发现这仍然是此类模型倾向于实施的方式令人惊讶。AIC 或 BIC 是更好的模型选择标准。
每种方法都有很多问题。逐步模型选择的问题更容易理解,但比 LASSO 的问题要糟糕得多。我看到你的问题的主要问题是你正在使用特征选择工具来评估预测。它们是不同的任务。LASSO 更适合特征选择或稀疏模型选择。岭回归可能会提供更好的预测,因为它使用所有变量。
LASSO 的强大之处在于它可以估计其中的模型,可以是向前(但不是向后)逐步回归的情况。在这两种情况下,只有当有少数非常强大的预测器时,这些模型才能有效地进行预测。如果许多弱预测器能更好地预测结果,那么岭回归或 bagging/boosting 将远远优于前向逐步回归和 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