【问题标题】:How to Make statistical tests in time series applications如何在时间序列应用程序中进行统计测试
【发布时间】:2020-07-06 19:01:14
【问题描述】:

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

我希望您对样本外的表现进行统计测试 你的方法。因此,在原始措辞中“显着不同”。 我同意有些数字在视觉上看起来很棒,但在视觉上, 随机噪声似乎包含模式。我相信索提诺比率是 适当的统计量来测试,它可以通过使用 引导程序。即,为 BH 和您的 策略,并计算这些分布的重叠。

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

1- 考虑到审稿人的要求,最好(或更合适)的统计测试是什么?

2- 如果我没记错的话,统计测试需要向量作为输入,对吗?我可以生成一个包含 11 个 sortino 比率值(每次步行 1 个)的向量,然后将它们与基线进行比较?还是我应该多次运行我的代码?考虑到审查的排序时间,我担心最后的选择是不可行的。

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

【问题讨论】:

    标签: python machine-learning time-series statistical-test


    【解决方案1】:

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

    审阅者指出Sortino ratio 似乎模棱两可,因为您瞄准拥有一个机器学习模型,用于预测任务,这意味着,您真正关心的是预测准确性可靠性,如果您使用Cross-Vaildation,则可以授予它们,在凸优化中相当于使用敏感性分析


    更新

    时间序列数据的序列依赖性问题,如果我们有非平稳时间序列数据(低模式) ,这似乎不是您的数据的问题,即使是这种情况,也可以通过去除趋势来解决,即将非固定时间序列转换为固定,例如使用 ADF 测试,并且还可以考虑使用 ARIMA 模型

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

    没有什么可以阻止您尝试时移方法,但您不能依靠它作为准确的衡量标准,您仍然需要证明您的统计数据分析,使用更稳健的技术

    【讨论】:

    • 感谢您的回答!对于时间序列数据,我使用过去来预测未来,如果我随机拆分数据,我将在测试数据中混合过去和未来,并且可能在训练数据中混合过去和未来,这会使在时间序列中没有意义。我正在做的是有不同的训练和测试数据,但在时间上有细微的变化,没有重叠,所以这些变化中的每一个都可以被认为是算法的不同运行。你相信我可以使用这些转变中的每一个来提取指标,然后使用你建议的测试来比较它们吗?再次感谢。
    • 再次感谢,如果我选择使用时移方法,您推荐哪种更可靠的技术?
    • 使用统计检验、ADF 检验ARIMA 模型,提取残差,对于你真正需要使用的机器学习模型交叉验证,因为它是解决方案稳定性的可靠测量
    猜你喜欢
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多