Python Day57

发布于:2025-06-30 ⋅ 阅读:(19) ⋅ 点赞:(0)

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 等)的自相关系数应显著降低。
    • 对应模型参数: 这里的 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),即逐渐衰减或呈正弦波式衰减。
    • 直观理解: 序列具有“记忆性”,当前状态直接依赖于过去有限个时间步长的状态。
  • 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 (偏自相关函数): 呈现拖尾,即逐渐衰减或呈正弦波式衰减。
    • 直观理解: 序列当前状态是当前随机冲击和过去有限个随机冲击的加权平均。
  • 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 阶数): 类似 pq,但需要观察 季节性滞后点 (m, 2m, 3m…) 上的 ACF 和 PACF 值。例如,对于月度数据 (m=12),观察滞后 12, 24, 36 处的 ACF/PACF。
    • dD (差分阶数): 在预处理阶段已经确定。
    • 信息准则: 在有多个备选模型时,可以使用 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 建模步骤:

  1. 数据可视化和初步分析: 绘制时间序列图,观察是否存在趋势、季节性、异常值等。
  2. 平稳性检验与差分 (确定 dD):
    • 对原始序列进行 ADF/KPSS 检验。
    • 如果非平稳,进行普通差分 (d) 和/或季节性差分 (D),直到序列平稳。
    • 每一步差分后都重新检验平稳性,并观察 ACF/PACF 图。
  3. 模型定阶 (确定 p, q, P, Q):
    • 对平稳化后的序列绘制 ACF 和 PACF 图。
    • 根据 ACF 和 PACF 的拖尾/截尾特性,初步确定 p, q 以及季节性部分的 P, Q
    • 可以尝试多个接近的参数组合,并使用 AIC/BIC 进行比较。
  4. 模型拟合: 使用确定的 (p, d, q)(P, D, Q)m 参数拟合 ARIMA 或 SARIMA 模型。
  5. 模型诊断 (检验模型充分性):
    • 分析模型残差,检验其是否为白噪声。
    • 如果残差不是白噪声,返回步骤 2 或 3 重新调整模型。
  6. 模型预测: 如果模型检验通过,则可以使用该模型进行未来预测。

网站公告

今日签到

点亮在社区的每一天
去签到