1. 项目概述:当时间序列遇上外部变量
时间序列预测一直是数据分析领域的经典课题,从股票价格预测到电力负荷分析,再到零售销量预估,几乎每个行业都离不开对时间维度数据的建模。但传统的时间序列模型(如ARIMA)往往只关注数据本身的时间依赖性,忽略了外部因素对预测目标的影响。这就好比只根据历史气温数据预测明天温度,却完全不考虑天气预报中的气压变化和风向——显然会丢失重要信息。
在实际业务场景中,我们经常遇到这样的情况:电商平台的日销售额不仅受历史销售趋势影响,还与当天的促销活动、节假日、甚至天气状况密切相关;工厂的能耗曲线除了自身周期性,还受生产排班计划、原材料特性等外部因素制约。这些就是典型的外生变量(Exogenous Variables),它们虽然不属于时间序列本身,但会显著影响预测目标。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心概念解析
2.1 什么是外生变量?
外生变量在统计学中指的是那些影响系统但不受系统影响的变量。在时间序列预测的语境下,可以理解为:
- 已知的、可测量的外部因素
- 与预测目标存在相关性
- 在预测时点其值是已知或可预估的
例如预测餐厅客流量时:
- 内生变量:历史客流数据
- 外生变量:当天是否节假日、周边是否有大型活动、天气状况等
2.2 主流建模方法对比
传统统计方法
- ARIMAX:ARIMA的扩展版本,在自回归和移动平均基础上加入外生变量
- 状态空间模型:通过观测方程和状态方程分别处理内生和外生变量
机器学习方法
- 特征工程+回归模型:将时间特征和外生变量作为特征输入
- 树模型(XGBoost/LightGBM):擅长处理混合型特征
深度学习方法
- LSTM/GRU:通过门控机制记忆长期依赖
- Transformer时序模型:注意力机制捕捉变量间复杂关系
实践建议:对于中小规模数据,ARIMAX和LightGBM往往是不错的起点;当数据量足够大且关系复杂时,LSTM等深度学习模型可能表现更优。
3. 实战:Python实现带外生变量的LSTM预测
3.1 数据准备与特征工程
假设我们要预测某零售店的日销售额,数据集包含:
- 内生变量:历史销售额(target)
- 外生变量:是否节假日、温度、降
