如何在时间序列应用程序中进行统计测试

How to Make statistical tests in time series applications

我收到了关于使用机器学习预测股票市场的论文的反馈,审稿人提出了以下问题:

I would like you to statistically test the out-of-sample performance of your methods. Hence 'differ significantly' in the original wording. I agree that some of the figures look awesome visually, but visually, random noise seems to contain patterns. I believe Sortino Ratio is the appropriate statistic to test, and it can be tested by using bootstrap. I.e., a distribution is obtained for both BH and your strategy, and the overlap of these distributions is calculated.

我的问题是我从来没有对时间序列数据这样做过。我的验证程序使用一种称为向前走的策略,我在其中及时移动数据 11 次,生成 11 种不同的训练和测试组合,没有重叠。所以,这是我的问题:

1- 鉴于审稿人的要求,最好(或更合适)的统计检验是什么?

2- 如果我没记错的话,统计检验需要向量作为输入,对吗?我可以生成一个包含 11 个 sortino 比率值的向量(每次行走 1 个),然后将它们与基线进行比较吗?或者我应该 运行 我的代码不止一次?考虑到审核的时间,恐怕最后的选择是不可行的。

那么,在这个时间序列场景中统计比较机器学习方法的正确操作是什么?

指出 random noise seems to contain patterns,这意味着您的图有很好的模式,但它可能是遵循 [x] 分布 的随机噪声(即 random均匀噪声),这使得事情不太准确。将数据随机分成 k 组可能是个好主意,然后应用 Z-Test 或 T-test,pairwise compare the k-groups .

审稿人指出Sortino ratio似乎模棱两可,因为您目标有一个机器学习模型,对于预测任务,这意味着,你真正关心的是预测准确性可靠性 如果您使用 Cross-Vaildation,在凸优化中,这相当于使用 灵敏度分析


更新

时间序列数据的序列依赖问题,在我们有非平稳时间序列数据(低模式),这似乎不是你数据的问题,即使是这样,也可以通过去除趋势来解决,即将非文具时间序列转换为文具,使用ADF Test 例如,也可以考虑使用 ARIMA 模型.

时移,有时可能有用,但不认为是噪声的良好测量,但它可能有助于通过移动数据和提取一些特征(例如均值、window 大小的方差等 )提高模型准确性。

没有什么可以阻止您尝试时移方法,但您不能依赖它作为一种准确的测量方法,而且您仍然需要证明您的统计分析,使用更多可靠的技术