R中随机森林时间序列的变量重要性



我在R中使用带有滚动窗口的randomForest包来预测财务时间序列(股票)的回报。我为此开发了一篮子功能,我的目标是了解它们的相对预测能力。

我的挑战是,我不能使用随机森林的可变重要性特征,因为我的大多数特征与它们最近的过去有高度的相关性。例如,移动平均值跨越几天的窗口,这意味着它包含我的数据集中几个观测值的信息。

这意味着随机森林生成的袋外样本将与随机森林用于训练我的模型的样本内特征相关联。因此,我从中得到的变量重要性将是高度乐观和过度拟合的。

我看到的解决方案是以某种方式计算样本外测试集的变量重要性,而不是使用OOB交叉验证。目标是确保与训练集完全没有相关性。

我的问题是:R中是否存在用于从测试集而不是标准OOB交叉验证集计算和提取变量重要性的包?如果没有,你能提出实现这一目标的方法吗?谢谢你的帮助。

哇,你想到这些与样本内特性的相关性真是太好了。

事实上,在测试集上运行可变重要性是一个更好的主意。我认为你可以很容易地自己编程。这是一些伪代码

check baseline performance metric
for variable in variables:
    random shuffle variable
    check performance metric
    save performance metric to disk
barplot(performance metrics)

你的性能指标可以是任何东西:交叉熵、准确度、ROC-AUC等等

最新更新