平稳性:为什么历史均值对你的预测有危险
Source: Dev.to
摘要
在本文中,我们探讨了时间序列中的平稳性概念,如何使用扩展迪基‑富勒(ADF)检验来诊断随机趋势,以及如何在SARIMAX中设置积分参数(d)以避免全局均值偏差。
介绍
在商业世界中,人们对“平均值”有着强烈的吸引力。当一组利益相关者要求对2026年的预测时,许多分析师的第一直觉是计算2024/2025的平均值并向前投射。
如果你从事金融或电子商务的时间序列分析,这种做法通常是错误的。
原因在于 平稳性。如果一个指标具有强趋势(无论是上升还是下降),其均值和方差在时间上并不是常数。对具有趋势的序列使用全局平均进行预测会导致严重的预测误差。
在本文中,我展示了如何使用 Augmented Dickey‑Fuller (ADF) 检验在电子商务数据中诊断此问题,以及如何在 SARIMAX 模型中通过数学方式纠正它。
概念:单位根与平稳性
为了让 ARIMA 系列的预测模型表现良好,时间序列理想情况下需要是平稳的。
什么是平稳性?
当一个序列的统计属性——均值、方差和自相关——随时间保持不变时,该序列就是平稳的。它围绕一个固定值波动。
单位根问题
许多业务指标(如收入或价格)都具有我们所说的单位根。简而言之,这意味着序列具有强记忆性:今天的数值在很大程度上取决于昨天的数值,加上一个随机冲击。这种依赖性产生了一种随机趋势,使得序列会“漂移”(drift)远离历史均值。
如果你试图在具有单位根的序列上强行设定固定均值,你的模型将始终在“追赶”趋势,导致系统性错误。
O Diagnóstico: Teste Augmented Dickey‑Fuller (ADF)
Não confiamos apenas no “olhômetro”. Para validar se uma série é estacionária, usamos o teste ADF.
Como interpretar o teste
| Hipótese | Descrição |
|---|---|
| (H_0) | 序列具有单位根(非平稳)。 |
| (H_1) | 序列是平稳的。 |
Regra de decisão: 如果 p‑valor > 0.05,则不拒绝 (H_0)(序列非平稳)。如果 p‑valor ≤ 0.05,则拒绝 (H_0)(序列平稳)。
Exemplo de saída do teste:
Estatística ADF: -2.552426
p‑valor: 0.103234
[Image: Sessões – gráfico da série]
解决方案:SARIMAX 中的差分
一旦确定 p‑值 > 0.05,必须进行的技术修正是 差分(积分)。
我们不是对绝对值 (Y_t) 建模,而是对当前值与前一个值的差进行建模:
[ \Delta Y_t = Y_t - Y_{t-1} ]
这将把具有趋势的序列转换为“变化”的平稳序列。
SARIMAX 实现
在 Python 中,无需手动创建差分列。SARIMAX 算法具有参数 order=(p, d, q),其中 d 是积分阶数。
基于上述 ADF 检验,我们定义建模策略:
from statsmodels.tsa.statespace.sarimax import SARIMAX
# Ticket Médio (não estacionário, p‑valor = 0.76) → d = 1
model_ticket = SARIMAX(
df_main['ticket_medio'],
order=(1, 1, 1), # (p, d, q) – aqui d=1
seasonal_order=(0, 0, 0, 0),
enforce_stationarity=False,
enforce_invertibility=False
)
result_ticket = model_ticket.fit(disp=False)
print(result_ticket.summary())
注: 根据自相关和偏自相关(ACF/PACF)分析,调整
p和q(如有必要,还要调整seasonal_order)的取值。
结论
- 平稳性是 ARIMA 系列模型的基本前提。
- ADF 检验可以快速诊断序列是否存在单位根。
- 当序列不平稳时,差分(在 SARIMAX 中设置
d > 0)将序列转化为模型能够稳健学习的形式。
在电商指标上应用此流程,可避免全局均值的偏差,构建更可靠的未来预测。
model_ticket = SARIMAX(
df_main['ticket_medio'],
order=(1, 1, 1), # (AR, Integração, MA)
seasonal_order=(1, 1, 1, 52) # Sazonalidade anual
)
- 运行 ADF 检验:这是统计上稳健的方式来检查你的指标是否“被固定”在某个均值上或在漂移。
- 查看 p 值:如果 p > 0.05,则你的序列 不 平稳。
- 使用差分 (
d=1):配置你的 ARIMA/SARIMAX 模型来预测变化,从而捕捉真实趋势。
进行应用数据科学就是确保模型的数学能够反映业务的经济现实。忽视非平稳性相当于用过去的静态照片来规划未来。
参考文献与书目
- Introduction to Time Series and Forecasting (Brockwell & Davis) – 平稳性数学基础。
- Statsmodels 文档 – Augmented Dickey‑Fuller。
- Practical Statistics for Data Scientists (Bruce & Bruce) – 在数据科学中的统计概念实践应用。