Box-Jenkins 方法是一种构建时间序列预测模型的结构化方法,主要使用 ARIMA(自回归积分滑动平均模型)。它由三个迭代阶段组成:**模型识别**,**参数估计**和**诊断检查**。目标是找到一个简约模型,该模型可以捕获数据中的模式,同时避免过度拟合。此方法假设时间序列是平稳的(均值和方差随时间恒定),或者可以通过差分使其平稳。
第一阶段,**模型识别**,涉及确定 ARIMA 模型的适当阶数(表示为 (p, d, q))。其中,(d) 是实现平稳性所需的差分步数。开发人员分析诸如自相关函数 (ACF) 和偏自相关函数 (PACF) 之类的图,以识别潜在的 AR (p) 和 MA (q) 项。例如,如果 ACF 逐渐衰减并且 PACF 在滞后 2 之后截止,则表明 AR(2) 模型。如果数据表现出趋势,则应用差分——例如,通过计算 (y_t’ = y_t - y_{t-1}) 将具有线性增长的序列转换为平稳序列。
接下来,**参数估计**使用最大似然估计 (MLE) 等优化算法来拟合 ARIMA 模型系数。开发人员通常依赖 Python 中的 statsmodels
或 R 中的 forecast
等库来自动化此步骤。例如,将 ARIMA(1,1,1) 模型拟合到股票价格数据将估计自回归项(捕获过去的值)和移动平均项(捕获过去的误差)的参数。这些估计的质量取决于数据的结构和识别阶段的初始模型选择。
最后,**诊断检查**通过测试残差(预测误差)是否类似于白噪声来验证模型。开发人员使用诸如 Ljung-Box 检验之类的统计检验来检查残差自相关。如果残差显示模式(例如,ACF 图中的显着峰值),则修改模型——可能通过调整 p 或 q。例如,如果 ARIMA(1,1,0) 模型留下相关的残差,则添加 MA 项 (ARIMA(1,1,1)) 可能会解决该问题。此迭代过程会一直持续到残差随机,从而确保模型充分解释数据,而无需不必要的复杂性。