Task:
1.序列数据的处理:
a.处理非平稳性:n阶差分
b.处理季节性:季节性差分
c.自回归性无需处理
2.模型的选择
a.AR§ 自回归模型:当前值受到过去p个值的影响
b.MA(q) 移动平均模型:当前值收到短期冲击的影响,且冲击影响随时间衰减
c.ARMA(p,q) 自回归滑动平均模型:同时存在自回归和冲击影响
时间序列分析:ARIMA/SARIMA 模型构建流程
时间序列分析的核心目标是理解序列的过去行为,并利用这些信息预测未来。ARIMA (AutoRegressive Integrated Moving Average) 和 SARIMA (Seasonal ARIMA) 模型是这类分析的强大工具。
1. 序列数据的预处理 (使序列平稳化)
目标:将非平稳序列转化为平稳序列。
为什么需要平稳?因为大部分时间序列模型(包括AR、MA、ARMA)都要求序列是平稳的,即其统计特性(如均值、方差和自相关结构)不随时间变化。
a. 处理非平稳性:
d
阶差分 (Differencing for Trend/Level Stationarity)- 目的: 消除序列的趋势(trend)和不恒定的均值。
- 方法:
- 一阶差分:
ΔY_t = Y_t - Y_{t-1}
。用于消除线性趋势。 - 更高阶差分 (n阶差分): 当一阶差分不足以使序列平稳时(例如存在二次趋势),可能需要进行二阶或更高阶差分。但通常情况下,一阶或二阶差分就足够了。
- 一阶差分:
- 判断依据:
- 可视化: 观察差分后的序列图,看均值是否趋于稳定,趋势是否消除。
- 统计检验: 使用 ADF (Augmented Dickey-Fuller) 检验或 KPSS 检验来判断差分后序列的平稳性。
- 对应模型参数: 这里的
n
阶差分对应 ARIMA 模型中的d
参数。
b. 处理季节性:
D
阶季节性差分 (Seasonal Differencing for Seasonality Stationarity)- 目的: 消除序列中的周期性(季节性)波动。
- 方法:
m
步长季节性差分:Δ_m Y_t = Y_t - Y_{t-m}
,其中m
是季节周期(例如,月度数据m=12
,季度数据m=4
)。- 这通常是在进行了普通差分之后(如果需要)再进行的操作。
- 判断依据:
- 可视化: 观察差分后序列的 ACF (自相关函数) 图,季节性滞后(如
m, 2m, 3m
等)的自相关系数应显著降低。
- 可视化: 观察差分后序列的 ACF (自相关函数) 图,季节性滞后(如
- 对应模型参数: 这里的
D
阶季节性差分对应 SARIMA 模型中的D
参数。
c. 自相关性:是需要“建模”而非“无需处理” (Autocorrelation: To be modeled, not “untreated”)
- 纠正和解释: 您提出的“自回归性无需处理”这句话容易引起误解。
- 真正的含义: 经过
d
阶普通差分和D
阶季节性差分后,序列的均值、方差以及季节性波动都应已变得平稳。然而,差分后的平稳序列仍然会存在自相关性(即当前值与过去值之间仍存在线性关系)。 - ARIMA 模型的目的: 正是为了捕捉和建模这些残余的自相关性!这些自相关性正是 AR 和 MA 部分所要解释的。
- 处理阶段关注的是“去除不平稳性”,而建模阶段关注的是“解释平稳序列的自相关性”。
2. 模型的选择与定阶 (Identifying Model Orders)
在序列经过差分处理变得平稳后,我们需要根据其自相关特性来选择合适的模型类型(AR, MA, ARMA)并确定其阶数(p, q)。这主要依赖于 ACF (自相关函数) 和 PACF (偏自相关函数) 图。
a. AR§ 自回归模型 (AutoRegressive Model)
- 描述: 当前值 (
Y_t
) 受到过去p
个值 (Y_{t-1}, ..., Y_{t-p}
) 的线性影响。 - 公式(简化):
Y_t = c + φ_1 Y_{t-1} + ... + φ_p Y_{t-p} + ε_t
(其中ε_t
是白噪声误差)。 - 特点:
- PACF (偏自相关函数): 在滞后
p
处截尾(cut off),即在p
之后的滞后阶数上,PACF 值迅速衰减至零或在统计上不显著。 - ACF (自相关函数): 呈现拖尾(tail off),即逐渐衰减或呈正弦波式衰减。
- PACF (偏自相关函数): 在滞后
- 直观理解: 序列具有“记忆性”,当前状态直接依赖于过去有限个时间步长的状态。
- 描述: 当前值 (
b. MA(q) 移动平均模型 (Moving Average Model)
- 描述: 当前值 (
Y_t
) 受到过去q
个白噪声误差项 (ε_{t-1}, ..., ε_{t-q}
) 的线性影响。这些误差项代表了短期随机冲击,其影响会随时间衰减。 - 公式(简化):
Y_t = c + ε_t + θ_1 ε_{t-1} + ... + θ_q ε_{t-q}
。 - 特点:
- ACF (自相关函数): 在滞后
q
处截尾,即在q
之后的滞后阶数上,ACF 值迅速衰减至零或不显著。 - PACF (偏自相关函数): 呈现拖尾,即逐渐衰减或呈正弦波式衰减。
- ACF (自相关函数): 在滞后
- 直观理解: 序列当前状态是当前随机冲击和过去有限个随机冲击的加权平均。
- 描述: 当前值 (
c. ARMA(p,q) 自回归滑动平均模型 (AutoRegressive Moving Average Model)
- 描述: 结合了 AR 和 MA 模型的特性,即当前值同时受到过去值和过去随机冲击的影响。
- 公式(简化):
Y_t = c + φ_1 Y_{t-1} + ... + φ_p Y_{t-p} + ε_t + θ_1 ε_{t-1} + ... + θ_q ε_{t-q}
。 - 特点:
- ACF 和 PACF: 都呈现拖尾,即都逐渐衰减。
- 直观理解: 序列同时具有“记忆性”和对随机冲击的有限响应。
ARIMA(p,d,q) 和 SARIMA(p,d,q)(P,D,Q)m 模型参数的确定:
p
(AR 阶数): 通过观察平稳化后序列的 PACF 图 来初步判断,看其在哪个滞后阶数后截尾。q
(MA 阶数): 通过观察平稳化后序列的 ACF 图 来初步判断,看其在哪个滞后阶数后截尾。P
(季节性 AR 阶数) 和Q
(季节性 MA 阶数): 类似p
和q
,但需要观察 季节性滞后点 (m, 2m, 3m…) 上的 ACF 和 PACF 值。例如,对于月度数据 (m=12),观察滞后 12, 24, 36 处的 ACF/PACF。d
和D
(差分阶数): 在预处理阶段已经确定。- 信息准则: 在有多个备选模型时,可以使用 AIC (Akaike Information Criterion) 和 BIC (Bayesian Information Criterion) 等信息准则来辅助选择最优模型,通常选择 AIC/BIC 值最小的模型。
3. 模型检验 (Model Diagnostics)
模型拟合完成后,必须对其进行检验,以确保模型的有效性。
- 残差分析:
- 目标: 拟合模型的残差 (即实际值与模型预测值之差) 应该近似为白噪声,即残差序列不应再含有任何可利用的模式信息。
- 检验方法:
- 可视化: 绘制残差序列图,观察是否随机波动,没有明显趋势或周期性。
- ACF/PACF 图: 残差的 ACF 和 PACF 图应在所有滞后阶数上都落在置信区间内(即不显著)。
- Ljung-Box Q 检验: 统计检验,用于判断残差序列是否为白噪声。如果 P 值大于显著性水平(如 0.05),则接受残差为白噪声的原假设。
- 参数显著性: 检查模型中各个参数(
φ
,θ
等)是否在统计上显著。 - 如果模型检验不通过: 说明模型不充分,需要重新回到步骤 1 或 2,调整差分阶数或 AR/MA 阶数,直到残差满足白噪声条件。
总结 ARIMA/SARIMA 建模步骤:
- 数据可视化和初步分析: 绘制时间序列图,观察是否存在趋势、季节性、异常值等。
- 平稳性检验与差分 (确定
d
和D
):- 对原始序列进行 ADF/KPSS 检验。
- 如果非平稳,进行普通差分 (
d
) 和/或季节性差分 (D
),直到序列平稳。 - 每一步差分后都重新检验平稳性,并观察 ACF/PACF 图。
- 模型定阶 (确定
p
,q
,P
,Q
):- 对平稳化后的序列绘制 ACF 和 PACF 图。
- 根据 ACF 和 PACF 的拖尾/截尾特性,初步确定
p
,q
以及季节性部分的P
,Q
。 - 可以尝试多个接近的参数组合,并使用 AIC/BIC 进行比较。
- 模型拟合: 使用确定的 (p, d, q)(P, D, Q)m 参数拟合 ARIMA 或 SARIMA 模型。
- 模型诊断 (检验模型充分性):
- 分析模型残差,检验其是否为白噪声。
- 如果残差不是白噪声,返回步骤 2 或 3 重新调整模型。
- 模型预测: 如果模型检验通过,则可以使用该模型进行未来预测。