ARIMA 模型中随机游走的预测

机器算法验证 时间序列 有马 信号处理
2022-03-28 20:26:23

下面我只展示了一个更大的过程测量值的一小部分,我用它来预测其他东西。作为我感兴趣的信号的过程部分是随机游走。我已经为那些特别感兴趣的人发布了csv 格式的数据,但是没有必要看这个来回答我的问题。

我已经为我的信号安装了一个 ARIMA(1,1,2) 模型(在对其进行对数转换之后)。它是 AIC/SBC 模型选择中最好的,并且预测覆盖在下面的原始(对数变换后)上:

预测叠加实际

残差对我来说看起来像白噪声(尽管尚未对此进行测试): 在此处输入图像描述

  • 一般来说,我如何获得 ARIMA 模型随机游走部分在每个时间步的预测?
  • 值在 -5 左右的异常值是一个错误的数据点,我想排除它。如果它没有过多地扩大问题,我想知道如何在在线预测期间排除超出预定限制的数据点。
  • 我确实注意到我的残差显示出方差的变化,所以如果这违反了某种 ARIMA 模型假设或某些事情,请告诉我。
2个回答

感谢这个论坛上的帮助,我还能够向我大学的一位教授提出这个原始问题的综合形式,他本学期正在教授时间序列课程......我应该采取的:-)

我认为他的回答非常好,并且也有针对这个问题发布的其他评论的一些回声。

我不太确定我应该正式接受这个答案......但至少想在这里分享。

教授回答:

您的数据中有一些奇怪的模式……看起来存在某种类型的“结构中断”(时间过程的形式或模式在时间点 3000 左右发生变化)。如果其他一切都没有那么好,将时间序列分成两部分并分别分析可能是有意义的。

如果协方差确实随时间变化,那么您将违反 Box-Jenkins 模型。

我会尝试一些中间步骤。首先只是区分你的时间序列:计算 Y_t= X_t - X_{t-1} (在对数转换之后),看看它是否看起来有一些类似的模式。如果是这样,那么您可以尝试将 ARMA 模型拟合到差异。您是否正在使用计算 ARMA 模型的软件包?你能把这些模型拟合到差异 Y_t 上吗?

有时软件包会计算未来的 k 步预测……如果你有这些,那么你可以撤消差异以使你的预测在线。例如,你得到 Y_{n+1},…,Y_{n+k} 的未来预测,你知道 Y_{n+i} = X_{n+i}- X_{n+i-1 } 所以你可以找到 X_{n+i} = Y_{n+i}+X_{n+i-1} for i=1,…,k 通过对差异 Y_{n+i} 的预测和观察你有 X_n。否则,您可能不得不求助于卡尔曼滤波,这也可以。

如果您有任何异常值,您可以在拟合模型时删除它们。从本质上讲,您在那个时间点不会有任何信息,但这比误导性信息要好。

我想我只是想知道(基于您的初始图表)如果您考虑将时间序列分成两部分,时间序列模型的拟合会如何改善。也许您会在本系列的第二部分中更好地捕捉极端情况。

“确实注意到我的残差显示出方差的变化,所以如果这违反了某种 ARIMA 模型假设或某些事情,请告诉我。”

您的残差表明误差方差不恒定,因此您应该采用http://www.unc.edu/~jbhill/tsay.pdf建议的广义最小二乘 (GLS0) 模型您选择的对数转换可能是没有根据的。我帮助开发的 AUTOBOX 软件可以无缝地组合一个解决方案,其中包括您显然需要的最低限度的 ARIMA 模型、电平转换/本地时间趋势、异常值和 GLS。第二个想法是,也许您的 ARIMA 系数是随时间变化的,这也可能导致/产生非常量错误的出现。该设施/功能也可用

如果你把这个分享给你的教授,他可能会对 Tsay 有话要说。