预测半确定性过程

机器算法验证 时间序列 可能性 贝叶斯 预测 预测模型
2022-03-31 21:06:27

假设我有一个给我 3 个输出的过程:O1O2O3

输出是从半确定性过程生成的,即输出中存在确定性分量以及随机分量。

特别是,随着时间的推移进行次测量,输出至少部分依赖于先前的输出。所以(我对超过 2 或 3 次测量不感兴趣,是随机的零件)。nOjj=1,2,...,nOj=f(Oj1,Oj2,Oj3)+ϵϵ

所以现在我有一组约 150 次连续测量,我如何预测未来可能的输出?

我可以很容易地计算出某个输出之后的值分布,例如,我可以说如果在 50 到 60 之间,我有一定的概率在 30 到 40 之间,通过看着我过去所做的测量。我确实为这些概率的分布构建了一些 pdf,但现在我有点卡住了,特别是因为三个输出之间可能存在交互(例如,更新我之前的语句 )Oj1Oj+11Oj1=f(Ojl1,Ojl2,Ojl3)+ϵl=1,2,3

我一直在阅读有关贝叶斯预测器的信息,我认为它们可以在这里应用,但我对该主题的了解还不够,无法确定这是否是一个好的选择,或者是否有更容易/更合适的东西。我将不胜感激任何建议!

1个回答

如果要预测时间序列数据,首先需要检查它是否是平稳的。基本上这意味着检查数据是否有趋势。例如,如果出现某种时间趋势,您可以只关心它的预测,因为时间趋势通常支配其他一切。对于平稳时间序列,最好使用Box-Jenkins方法。这最终将为您提供某种 ARMA模型(@whuber 建议的自回归模型是该模型的子集)。由于您有三个时间序列,您可以查看VAR模型。

如果您使用 R,那么第一步可以由函数执行stl,它是标准 R 的函数。自回归模型可以通过auto.arima包中的预测自动拟合。此功能可以适合您所需的模型,也可以为某些最佳定义找到最佳规范。您可能会更多地研究该软件包,因为它是专门为预测时间序列而设计的。对于 VAR 模型使用vars包中的VAR函数。这个包有一个很好的小插图来描述它的功能。