📦 预测基础 · 数学原理

时间序列 · 平稳性 · 自相关 🎓 供应链预测模型实战精讲

⏳ 时间序列

按时间顺序排列的观测值序列 {x₁, x₂, …, xₜ}。核心要素:时间依赖、等间隔。

供应链场景:日销量、周库存、月需求。

📊 平稳性

统计性质不随时间改变:均值恒定、方差稳定、自协方差仅与滞后有关。

🔹 严平稳 · 🔹 弱平稳 (宽平稳) —— 建模前提。

ADF检验 常用判断。

🌀 白噪声

均值为0、方差为常数、无自相关 εₜ ~ WN(0, σ²)。

若模型残差为白噪声 → 信息提取充分。

🔹 纯随机性 · 不可预测。

🔗 自相关 (ACF) 与 偏自相关 (PACF) 识别AR/MA阶数

特征自相关函数 (ACF)偏自相关函数 (PACF)
定义序列与自身滞后之间的相关性 (含中间影响)剔除中间滞后影响后的“净”相关
AR(p) 表现拖尾 (指数衰减或震荡)p阶后截尾
MA(q) 表现q阶后截尾拖尾
ARMA(p,q)拖尾拖尾
供应链应用判断季节性周期识别自回归阶数

📈 ACF & PACF 示意

ACF (蓝) 拖尾 PACF (橙) 截尾

📉 平稳 vs 非平稳

平稳 (均值恒定) 非平稳 (趋势)

🌊 季节性与周期性

季节性 (固定周期) 周期性 (非固定)

🎛️ 白噪声检验 & 代码示例

Ljung-Box Q检验:判断残差是否为白噪声。p值 > 0.05 则不能拒绝白噪声。

# Python 白噪声检验 (statsmodels)
from statsmodels.stats.diagnostic import acorr_ljungbox
import numpy as np

# 模拟白噪声
np.random.seed(42)
wn = np.random.normal(0, 1, 100)

lb_stat, lb_pvalue = acorr_ljungbox(wn, lags=[10], return_df=False)
print(f'Ljung-Box p-value: {lb_pvalue[0]:.4f}')
# p > 0.05 → 白噪声
📈 趋势

长期上升/下降。如:销量随市场增长。

🔹 确定性趋势 · 随机趋势 (差分消除)

🗓️ 季节性

固定周期 (周/月/季)。如:冬季取暖器需求。

🔹 季节差分 · 虚拟变量

🔄 周期性

非固定周期 (经济周期)。如:3-5年库存波动。

🔹 与季节性的区别:周期长度不固定

🧠 平稳性 + 自相关 实战要点:
• 非平稳 → 差分 / 变换 (log, Box-Cox) → 平稳。
• 绘制ACF/PACF图:若ACF缓慢衰减 → 非平稳;若ACF/PACF截尾 → 识别AR/MA阶数。
• 供应链需求常含趋势+季节性 → 使用 SARIMA 或 Prophet 等模型。