在 R 中执行“所有可能的回归”

机器算法验证 r 回归 模型选择 因子分析
2022-04-13 10:08:23

我正在尝试实施所有可能的回归,以便从详尽的潜在经济/基本变量列表中选择股票收益的最佳预测因子。

我的响应变量y(即股票收益)是一个由 3000 只证券(横截面)组成的面板,每个都有 384 个观察值(时间序列)。

在面板数据的上下文中,有人可以建议在 R 中处理此过程的最佳方法吗?我遇到了这个包leaps,但它解决了y作为响应向量而不是响应矩阵的情况。

非常感谢,

2个回答

重新阅读您的问题后,我相信您的意思是询问候选预测变量中的模型选择,而不是实际运行所有可能的回归。从给定的一组预测变量中拟合所有可能的模型会受到高度的数据挖掘偏差的影响。由于许多这样的子模型将相互高度相关(因为它们包含几乎完全相同的一组因素),您需要调整您的 t 统计量以考虑在整个相关模型组中,一些模型只是随机地在您拥有的特定样本数据中看起来成功。调整这么多模型意味着您需要一个不切实际的高 t 统计量才能对最终选择的模型的系数有任何信心。

一些更好的方法可能是贝叶斯线性回归,您可以在其中指定您认为对于每个预测变量的系数而言哪些先验分布是现实的,或者像LassoRidge这样的正则化回归,您可以对估计的集合的密集程度或大小施加一些惩罚项系数是(例如,拟合过程将尝试在适当的意义上支持具有较少项的模型)。

如果您从这些角度之一开始,那么测试您认为具有强有力的先验证据的几个模型的风险较小。

但一般来说,如果你简单地查看所有 n-choose-k 因子子集,对于 k = 1 到 n,那么通过简单的随机机会,某些模型会显得非常强大,但不是由于实际预测效果。你应该避免这种情况。

我建议你使用通常的面板数据分析方法[在 R 这涉及使用plm包裹)。这种方法考虑了三类解释变量(观察到的或未观察到的)。第一,每只股票相同但随时间变化的变量(经济基本面),第二是每只股票不同但不随时间变化的变量(例如,管理风格),第三包括变化的变量随着时间的推移和股票(公司的收益)。如果前两个变量未被观察到,则通过使用双向固定效应(存量效应和年份效应)将它们考虑在内,从而使用面板数据避免了由于排除这两类变量而引起的遗漏变量偏差。因此,排除产生的唯一偏差是由于遗漏了最后一类变量。如果您确定您的模型包含属于最后一个类别的所有内容,则没有遗漏变量偏差。这些变量的重要性表明它们可能对影响股票收益很重要。话虽如此,使用哪种方法取决于您的研究目的。