跳到主要内容

MA 滑动平均模型

一、直观理解:用过去的“冲击”解释现在​

MA(Moving Average)模型不直接回归过去的 yy,而是认为当前值由近期随机冲击(新息)加权而成:

yt=μ+εt+θ1εt−1+⋯+θqεt−qy_t=\mu+\varepsilon_t+\theta_1\varepsilon_{t-1}+\cdots+\theta_q\varepsilon_{t-q}

直观上:系统受到冲击后,影响只会持续 qq 期,之后完全消失。这与 AR 的“无限记忆(指数衰减)”不同——MA(qq) 的理论 ACF 在 qq 阶后截尾。

注意:这里的 “Moving Average” 不是对观测做简单滑动平均滤波,而是对新息的滑动平均。名字容易误导,建模时要分清。

二、适用场景与优缺点​

类型说明
适用场景平稳序列;ACF 在 qq 后截尾、PACF 拖尾;冲击具有短时效;作为 ARMA 的组成部分。
核心优点对短记忆噪声结构刻画直接;可逆 MA 可写成 AR(∞\infty);与 AR 对偶,便于识别。
局限与缺点纯 MA 对强持续性序列吃力;估计需迭代(新息不可直接观测);多步预测在 h>qh>q 后变为均值;同样怕非平稳与季节。

三、核心原理​

1. ACF 截尾​

MA(1):yt=μ+εt+θεt−1y_t=\mu+\varepsilon_t+\theta\varepsilon_{t-1} 的自相关满足

ρ1=θ1+θ2,ρk=0 (k≥2)\rho_1=\frac{\theta}{1+\theta^2},\quad \rho_k=0\ (k\ge 2)

故经验识别:ACF 截尾于 qq,PACF 拖尾 → 试 MA(qq)。

2. 可逆性​

要求 θ(z)=1+θ1z+⋯+θqzq\theta(z)=1+\theta_1 z+\cdots+\theta_q z^q 的根在单位圆外,以保证存在收敛的 AR(∞\infty) 表示,新息可由过去 yy 恢复,预测公式良定义。

3. 预测性质​

对 MA(qq),一步到 qq 步预测会用到最近估计的新息;当 h>qh>q 时,

y^t+h∣t=μ\hat y_{t+h|t}=\mu

即记忆耗尽。这与 AR 的逐渐回均值不同,是有限步后直接回均值。

四、定阶与估计要点​

  1. 看 ACF 截尾位置初选 qq;
  2. 用 AIC/BIC 在小范围网格上精修;
  3. MATLAB 中 arima(0,0,q) + estimate 内部用极大似然;
  4. 检查可逆根、残差白噪声、测试误差;
  5. 若 ACF 截尾不明显而 PACF 截尾,转向 AR;两者都拖尾则 ARMA。

五、MATLAB 示例​

rng(2);
md0 = arima("Constant",0,"MA",{0.8,-0.4},"Variance",1);
y = simulate(md0, 350);
T0 = 280; yTrain = y(1:T0); yTest = y(T0+1:end);

figure;
subplot(2,1,1); autocorr(yTrain); title("ACF");
subplot(2,1,2); parcorr(yTrain); title("PACF");

% 选 q
qMax = 5; aic = nan(qMax,1); ests = cell(qMax,1);
for q = 1:qMax
md = arima(0,0,q);
est = estimate(md, yTrain, "Display","off");
[~,~,logL] = infer(est, yTrain);
k = q + 2;
aic(q) = -2*logL + 2*k;
ests{q} = est;
end
[~,qBest] = min(aic);
est = ests{qBest};
fprintf("AIC 选择 q=%d\n", qBest);
summarize(est);

res = infer(est, yTrain);
[hLB,pLB] = lbqtest(res,"Lags",12);
fprintf("残差 Ljung-Box p=%.4f\n", pLB);

h = numel(yTest);
[yf,yMSE] = forecast(est, h, "Y0", yTrain);
rmse = sqrt(mean((yTest-yf).^2));
fprintf("测试 RMSE=%.4f\n", rmse);

% 与均值基线比较
rmse0 = sqrt(mean((yTest-mean(yTrain)).^2));
fprintf("均值基线 RMSE=%.4f\n", rmse0);

六、如何解释结果​

报告内容:

  1. 平稳性结论;
  2. qq 的识别(ACF 图 + 信息准则 + 测试误差);
  3. θ^j\hat\theta_j 与可逆性;
  4. 残差检验;
  5. 训练期外误差及与基线对比;
  6. 明确写出:当预测步长 >q>q 时预测值等于均值估计。

θ\theta 的含义:θ1>0\theta_1>0 表示上一期正向冲击会使本期观测仍偏高,但到下一期(若 q=1q=1)影响结束。

七、常见误区​

1. 把 MA 当成对 yy 做滑动平均​

平滑滤波与 MA 新息模型是两回事。

2. 在非平稳数据上强行 MA​

先差分;差分后的 MA 对应 ARIMA(0,dd,qq)。

3. 期望 MA 给出长久的趋势外推​

h>qh>q 后只有均值,若存在趋势应改模型。

4. 忽视可逆性​

不可逆参数化会导致估计与预测不稳,需检查根的位置。

5. 只看 R2R^2 不看残差 ACF​

MA 定阶的关键图形证据在 ACF,不是拟合优度。

八、小结​

MA 模型的核心是:

当前观测由有限阶历史冲击线性组合而成,ACF 截尾是其指纹,预测记忆在 qq 步后耗尽。

它与 AR 对偶,是通向 ARMA/ARIMA 的必要一步。实战中纯 MA 不如 ARMA 常见,但当 ACF 明确截尾时,MA 往往是更简约、更稳的选择。

补充记忆点:

  • 识别看 ACF,估计查可逆,预测认清 h>qh>q 后回到均值;
  • 若差分后出现近似 MA(1) 且 θ≈−1\theta\approx -1,可能是过度差分的信号;
  • 与朴素/均值基线比较时,MA 的优势通常集中在前几步。

验收标准依然是:平稳、可逆、残差白噪声、训练期外误差优于基线,而不是训练集 R2R^2。