线性时间序列模型:自回归移动平均(ARMA)模型的参数估计与预测过程
字数 3869 2025-12-07 04:07:48
线性时间序列模型:自回归移动平均(ARMA)模型的参数估计与预测过程
题目描述
自回归移动平均模型是一种经典的线性时间序列分析与预测方法。它结合了自回归模型和移动平均模型,用于描述平稳时间序列的内在结构和动态特性。核心问题在于:给定一个观测到的时间序列数据,如何估计ARMA模型的参数(自回归系数和移动平均系数),并基于估计的模型对未来值进行预测?我们将逐步拆解模型的原理、参数估计的常用方法(如矩估计、最小二乘估计、最大似然估计)以及预测的具体计算步骤。
循序渐进讲解
第一步:ARMA模型的基本形式与平稳性要求
ARMA模型描述当前值与自身历史值以及历史随机扰动之间的关系。
-
模型定义:
- 对于一个时间序列观测值 {X_t}, ARMA(p, q) 模型的数学表达式为:
\(X_t = c + \phi_1 X_{t-1} + \phi_2 X_{t-2} + ... + \phi_p X_{t-p} + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + ... + \theta_q \epsilon_{t-q}\) - 其中:
- \(p\) 是自回归阶数, \(\phi_1, ..., \phi_p\) 是自回归系数。
- \(q\) 是移动平均阶数, \(\theta_1, ..., \theta_q\) 是移动平均系数。
- \(c\) 是常数项。
- \(\{\epsilon_t\}\) 是白噪声序列,通常假设其均值为0,方差为 \(\sigma^2\),且各时刻的 \(\epsilon_t\) 互不相关。
- 对于一个时间序列观测值 {X_t}, ARMA(p, q) 模型的数学表达式为:
-
平稳性前提:
- ARMA模型要求序列是弱平稳的,即序列的均值、方差为常数,且任意两时刻的协方差只与时间间隔有关,与具体时间起点无关。
- 特别地,AR部分的平稳性条件由其特征方程决定:方程 \(1 - \phi_1 z - ... - \phi_p z^p = 0\) 的所有根(在复数域内)的模必须大于1,即根在单位圆外。这是模型能被合理估计和预测的基础。
第二步:模型参数估计方法
给定观测数据 \(X_1, X_2, ..., X_T\), 以及预先设定的阶数 \(p, q\), 我们需要估计参数 \(\phi_1,...,\phi_p, \theta_1,...,\theta_q, c, \sigma^2\)。
-
矩估计法:
- 这是一种简单但通常效率不高的估计方法。基本步骤是利用样本自相关函数与理论自相关函数(由Yule-Walker方程给出)相等来求解参数。
- 对于纯AR(p)模型, Yule-Walker方程建立了自回归系数与序列自相关系数之间的关系。可以通过求解线性方程组得到系数的矩估计。
- 对于包含MA部分的ARMA模型, 矩估计会更复杂, 因为需要解非线性方程组, 通常作为更精细方法的初始值。
-
最小二乘估计:
- 思想是将模型改写, 使误差平方和最小。
- 将ARMA模型视为带有滞后因变量和滞后误差项的回归方程。但由于滞后误差 \(\epsilon_{t-1}, ..., \epsilon_{t-q}\) 不可观测, 需要先给定初始值(如设为0), 然后通过迭代求解。
- 具体操作: 将模型写为 \(\epsilon_t = X_t - c - \sum_{i=1}^{p} \phi_i X_{t-i} - \sum_{j=1}^{q} \theta_j \epsilon_{t-j}\)。
- 从时刻 \(t = \max(p, q)+1\) 开始, 给定初始参数值和初始误差(例如设为0), 可以递归地计算出每个时刻的“估计残差” \(\hat{\epsilon}_t\)。
- 然后最小化残差平方和 \(\sum_{t} \hat{\epsilon}_t^2\)。 由于 \(\hat{\epsilon}_t\) 依赖于参数本身, 这是一个非线性最小二乘问题, 通常使用数值优化算法(如高斯-牛顿法、 拟牛顿法)求解。
-
最大似然估计:
- 这是最常用且统计性质优良的方法。 它假设白噪声 \(\epsilon_t\) 服从独立同分布的正态分布 \(N(0, \sigma^2)\)。
- 思路是找到能使观测数据出现的“可能性”(似然函数)最大化的参数值。
- 由于 \(X_t\) 之间存在相关性, 其联合概率密度(即似然函数)的构建相对复杂。 常用方法有:
- 精确似然法: 利用序列的平稳性, 可以推导出 \((X_1, ..., X_T)\) 的联合分布是一个多元正态分布。 其协方差矩阵的元素可以由模型参数(通过自协方差函数)表示。 直接最大化这个多元正态的密度函数, 计算量很大, 但更精确。
- 条件似然法: 一种更实用的近似。 它“条件于”前 \(p\) 个观测值 \(X_1, ..., X_p\) 以及前 \(q\) 个不可观测的误差(设为0)。 此时, 对于 \(t > \max(p, q)\), 在给定历史信息的条件下, \(X_t\) 的分布是正态的, 其条件均值和条件方差可以计算。 最大化这个条件似然函数, 同样转化为一个非线性优化问题。
- 在实践中, 软件(如
statsmodelsin Python,arimain R)通常采用条件似然法或更高效的算法(如状态空间模型结合卡尔曼滤波计算精确似然)来得到参数的最大似然估计值。
第三步:模型预测
在得到参数估计 \(\hat{\phi}_i, \hat{\theta}_j, \hat{c}, \hat{\sigma}^2\) 后, 可以进行预测。
-
预测原理:
- 预测是基于到当前时刻 \(T\) 为止的所有已知信息 \(X_1, ..., X_T\) 以及模型结构, 对未来时刻 \(T+l\) 的值 \(X_{T+l}\) 给出一个最优(在均方误差最小意义下)的估计 \(\hat{X}_T(l)\), 称为 l步超前预测。
-
预测公式递推:
- 预测是基于条件期望。 对于一个已经估计好的ARMA(p, q)模型, 其最优预测是给定历史信息下的条件期望: \(\hat{X}_T(l) = E[X_{T+l} | X_T, X_{T-1}, ...]\)。
- 递推规则如下:
- 对于未来的白噪声, 其条件期望为0(因为未来白噪声与历史信息独立且均值为0)。
- 对于未来的序列值, 如果预测时刻超前 \(l\) 步, 当 \(l \le 0\) 时, 它已经是历史观测值, 其条件期望就是它自身。
- 利用这两条规则, 我们可以从 \(l=1\) 开始, 逐步向前递推计算预测值。
- 示例(ARMA(1,1)模型):
模型: \(X_t = c + \phi X_{t-1} + \epsilon_t + \theta \epsilon_{t-1}\)。- 1步预测: \(\hat{X}_T(1) = E[c + \phi X_T + \epsilon_{T+1} + \theta \epsilon_T | 历史] = c + \phi X_T + \theta \hat{\epsilon}_T\)。 其中 \(\hat{\epsilon}_T = X_T - \hat{X}_{T-1}(1)\) 是时刻T的残差, 可从模型拟合中获得。
- 2步预测: \(\hat{X}_T(2) = E[c + \phi X_{T+1} + \epsilon_{T+2} + \theta \epsilon_{T+1} | 历史] = c + \phi \hat{X}_T(1)\)。
- 随着预测步数 \(l\) 增大, ARMA预测值会收敛到序列的无条件均值。
-
预测区间:
- 除了点预测 \(\hat{X}_T(l)\), 我们还可以给出预测区间(例如95%置信区间), 以量化预测的不确定性。
- 预测误差的方差 \(v_l = \text{Var}(X_{T+l} - \hat{X}_T(l))\) 可以推导出来, 它是模型参数 \((\phi, \theta, \sigma^2)\) 的函数。
- 在正态性假设下, \(X_{T+l}\) 的 \(100(1-\alpha) \%\) 预测区间为: \(\hat{X}_T(l) \pm z_{\alpha/2} \sqrt{v_l}\), 其中 \(z_{\alpha/2}\) 是标准正态分布的分位数。
总结
ARMA模型的建模与应用是一个系统的过程:首先确认时间序列的平稳性;其次根据自相关图和偏自相关图等工具初步识别模型的阶数 \(p\) 和 \(q\);然后采用最大似然估计等方法高效、准确地估计模型参数;最后利用条件期望递推得到未来序列的最优点预测和预测区间。它为理解和预测线性平稳时间序列提供了一个强大而严谨的数学框架。