一、原理说明:核心是“统计特性的时间稳定性”
时间序列是按时间顺序排列的数据(如每日气温、每月销售额),其核心属性是“时间依赖性”。平稳与非平稳的本质区别,在于这种依赖关系及其他统计特性(均值、方差等)是否随时间推移而改变。
1. 平稳时间序列(Stationary Time Series)
平稳时间序列的核心定义:序列的统计特性(均值、方差、自协方差等)不随时间的推移而变化。实际应用中,我们通常关注“宽平稳(Weakly Stationary,也叫二阶平稳)”,其满足3个关键条件:
-
条件1:均值恒定
序列在任意时间点的均值(平均值)始终不变,即 E[Xt]=μE[X_t] = \muE[Xt]=μ(μ\muμ 为常数,与时间 ttt 无关)。
例:若某地区每日午后2点的温度均值始终为25℃(无长期变暖/变冷趋势),则满足均值恒定。 -
条件2:方差恒定
序列在任意时间点的方差(波动程度)始终不变,即 Var[Xt]=σ2Var[X_t] = \sigma^2Var[Xt]=σ2(σ2\sigma^2σ2 为常数,与时间 ttt 无关)。
例:上述地区午后2点温度的波动范围始终是23-27℃(方差稳定),而非逐年扩大或缩小。 -
条件3:自协方差仅依赖“时间间隔”
序列在两个时间点 ttt 和 t+kt+kt+k(kkk 为时间间隔,如间隔1天、间隔1个月)的关联程度(自协方差),仅由 kkk 决定,与具体时间 ttt 无关,即 Cov(Xt,Xt+k)=γ(k)Cov(X_t, X_{t+k}) = \gamma(k)Cov(Xt,Xt+k)=γ(k)(γ(k)\gamma(k)γ(k) 仅依赖 kkk)。
例:“今日与明日午后2点温度的关联度”,和“100天后与101天后午后2点温度的关联度”相同,仅由“间隔1天”这个距离决定。
补充:严平稳(Strictly Stationary)是更强的条件,要求所有统计特性(包括高阶矩、分布函数)均不随时间变化。在数据服从正态分布时,宽平稳与严平稳等价(正态分布由均值和方差完全决定)。
2. 非平稳时间序列(Non-Stationary Time Series)
非平稳时间序列的核心定义:不满足平稳性条件的时间序列,即其均值、方差或自协方差至少有一个随时间推移而变化。
常见的非平稳来源包括:
- 趋势(Trend):均值随时间持续上升/下降(如GDP增长、人口数量变化)。
- 季节性(Seasonality):均值随固定周期波动(如春节前超市销售额上升、夏季用电量增加)。
- 结构突变(Structural Break):均值/方差因突发事件突然改变(如疫情后线下客流量骤降、政策调整后的房价波动)。
图 : 图中的时间序列有哪些是平稳的?(a)连续292天的谷歌股价; (b)连续292天谷歌股价的每日变化量; (c)美国各年的罢工总次数; (d)美国独立家庭住宅的每月价格; (e)按不变美元计算的美国的鸡蛋价格; (e)每月在澳大利亚维多利亚州被屠宰的猪的数量; (g)每年在加拿大西北的麦肯齐河停留的猞猁数量; (h)澳大利亚每月啤酒产量; (i)澳大利亚每月发电量
考虑图中的九个时间序列,其中有哪些是平稳的时间序列?
显然存在季节性的序列(d)、(h)和(i)可以被排除。存在趋势的序列(a)、(c)、(e)、(f)和(i)也应该被排除,除此之外,序列(i)的方差随时间增大,也不符合平稳时间序列的性质。用上述方法排除后,剩下的(b)和(g)是平稳时间序列。
序列(g)的循环变化让它第一眼看上去不太平稳,但是这种变化其实是不定期的——当猞猁的数量超过食物承载的上限时,它们会停止繁殖从而使得数量回落到非常低的水平,之后食物来源的再生使得猞猁数量重新增长,周而复始。从长期来看,这种循环的时间点是不能预测的,因此序列(g)是平稳的。
二、对比分析:平稳 vs 非平稳时间序列
通过下表可清晰对比两者的核心差异:
对比维度 | 平稳时间序列(Stationary) | 非平稳时间序列(Non-Stationary) |
---|---|---|
统计特性稳定性 | 均值、方差、自协方差均不随时间变化 | 均值、方差或自协方差至少一项随时间变化 |
均值 | 恒定(E[Xt]=μE[X_t] = \muE[Xt]=μ) | 随时间变化(E[Xt]=μ(t)E[X_t] = \mu(t)E[Xt]=μ(t),μ(t)\mu(t)μ(t) 是时间函数) |
方差 | 恒定(Var[Xt]=σ2Var[X_t] = \sigma^2Var[Xt]=σ2) | 可能随时间增大/减小(如 Var[Xt]=σ2(t)Var[X_t] = \sigma^2(t)Var[Xt]=σ2(t)) |
自协方差 | 仅依赖时间间隔 kkk(Cov(Xt,Xt+k)=γ(k)Cov(X_t,X_{t+k})=\gamma(k)Cov(Xt,Xt+k)=γ(k)) | 依赖时间间隔 kkk 和具体时间 ttt(Cov(Xt,Xt+k)=γ(t,k)Cov(X_t,X_{t+k})=\gamma(t,k)Cov(Xt,Xt+k)=γ(t,k)) |
数据可视化特征 | 围绕固定值随机波动,无明显趋势/季节规律 | 有明显上升/下降趋势,或固定周期的波动 |
建模难度 | 简单,可直接用ARMA、MA等模型 | 复杂,需先转化为平稳序列(如差分、去趋势),再用ARIMA等模型 |
长期预测可靠性 | 较高(统计特性稳定) | 较低(趋势/季节可能变化,需频繁更新模型) |
三、实例说明:3个平稳与3个非平稳案例
实例需结合平稳性条件,明确说明“为何属于该类型”,避免仅靠直观判断。
1. 平稳时间序列实例(3个)
实例1:实验室恒温环境下的温度监测
- 场景:某化学实验室通过精密空调维持25℃恒温,每10分钟记录一次温度(排除设备故障、人员进出等干扰)。
- 平稳性分析:
- 均值:长期来看,温度均值稳定在25℃左右,无上升/下降趋势;
- 方差:温度波动范围始终在24.8-25.2℃,方差恒定;
- 自协方差:间隔10分钟(k=1k=1k=1)的温度关联度(如第1次与第2次、第100次与第101次)基本一致,仅依赖间隔 kkk。
因此满足宽平稳条件。
实例2:股票的日收益率(非价格)
- 场景:某只大盘股(如茅台)的每日收益率(收益率=(今日收盘价-昨日收盘价)/昨日收盘价)。
- 平稳性分析:
- 均值:长期来看,股票收益率的均值围绕0附近波动(无持续盈利/亏损趋势);
- 方差:收益率的波动程度(风险)相对稳定(除非有极端事件,如跌停/涨停,但极端值占比低);
- 自协方差:间隔1天的收益率关联度(今日与明日)、间隔2天的关联度(今日与后日)基本稳定,与具体时间无关。
注意:股票价格是非平稳的(有上涨/下跌趋势),但收益率通常被假设为平稳,这是金融时间序列建模的基础。
实例3:某小区每日固定时段的噪声值
- 场景:某居民区每日晚8点记录的环境噪声值(排除节假日、装修等特殊情况)。
- 平稳性分析:
- 均值:晚8点是居民活动稳定时段,噪声均值稳定在50分贝左右;
- 方差:噪声波动范围(45-55分贝)恒定,无逐年增大/减小;
- 自协方差:间隔1天的噪声关联度(今日与明日晚8点)与间隔10天的关联度基本一致。
因此属于平稳序列。
2. 非平稳时间序列实例(3个)
实例1:中国历年GDP总量(1978-2023)
- 场景:国家统计局发布的年度GDP数据(单位:万亿元)。
- 非平稳性分析:
- 均值:GDP从1978年的0.36万亿元增长到2023年的126万亿元,均值随时间持续上升(存在明显增长趋势);
- 方差:GDP的年度增量(如2023年比2022年增加约6万亿元,1990年比1989年增加约0.1万亿元)也随时间增大,即方差不恒定。
因均值和方差均随时间变化,属于非平稳序列。
实例2:某超市月度销售额(2020-2024)
- 场景:某连锁超市的月度销售额(单位:万元)。
- 非平稳性分析:
- 趋势:销售额从2020年的每月50万元缓慢增长到2024年的每月80万元(长期增长趋势);
- 季节性:每年1月(春节前)和12月(双12)销售额显著高于其他月份(如2023年1月销售额120万元,同年6月仅70万元),即均值随固定周期(12个月)波动。
因存在趋势和季节性,均值随时间变化,属于非平稳序列。
实例3:某城市年度平均温度(1900-2023)
- 场景:某城市气象局记录的年度平均温度(单位:℃)。
- 非平稳性分析:
- 均值:1900年平均温度为15℃,1950年为15.5℃,2023年为17℃,均值随时间缓慢上升(受全球变暖影响,存在长期上升趋势);
- 方差:虽然年度温度波动范围(如±1℃)相对稳定,但均值的持续上升已导致序列不满足平稳性的核心条件(均值恒定)。
因此属于非平稳序列。
总结
- 平稳序列的本质是“统计特性不变”,可直接建模,适合短期/长期预测;
- 非平稳序列的本质是“统计特性随时间变”(趋势、季节等),需先通过差分(如ARIMA模型)、去趋势、季节调整等方法转化为平稳序列,再进行分析;
- 实际应用中,判断序列是否平稳的常用方法包括:直观观察(是否有趋势/季节)、统计检验(如ADF检验、PP检验)。
要理解非平稳时间序列的转换逻辑,需先明确“转换的必要性”——平稳性是绝大多数经典时间序列模型(如ARMA、ARIMA)的核心前提,非平稳序列的统计特性随时间变化,会导致建模偏差、预测失效等问题。以下从“为什么转”“怎么转”“实例说明”三方面展开,结合具体场景让转换逻辑更清晰。
一、为什么要将非平稳时间序列转为平稳时间序列?
非平稳序列的核心问题是统计特性(均值、方差、自协方差)随时间变化,这会直接破坏经典模型的假设,导致三大关键问题:
1. 经典模型无法适用(建模前提不满足)
绝大多数时间序列模型(如ARMA、MA、AR)的设计基础是“平稳性”——假设序列的均值、方差恒定,自协方差仅依赖时间间隔。若直接对非平稳序列建模:
- 模型参数(如AR的滞后系数)会随时间变化,无法固定;
- 模型拟合结果无意义,比如用有增长趋势的GDP数据直接建AR模型,会因均值持续上升导致残差不满足“白噪声”假设。
2. 预测结果严重偏差(可靠性丧失)
非平稳序列的趋势、季节波动会持续影响未来值,若不转换直接预测:
- 例:用2010-2020年的GDP(年均增长6%)直接预测2021年值,模型会忽略“增长趋势”,仅基于历史波动预测,结果远低于实际值;
- 平稳序列的统计特性稳定,预测时只需基于“历史波动规律”,结果更可靠。
3. 统计推断失效(易出现伪回归)
非平稳序列可能存在“伪回归”问题:两个无实际关联的非平稳序列,因均有趋势或季节波动,回归分析时会显示“显著相关”,导致错误结论。
- 例:“某城市每年冰淇淋销量”(夏季高、冬季低,非平稳)与“某河流每年汛期水位”(夏季高、冬季低,非平稳),直接回归会显示“正相关”,但两者无实际因果关系,仅因季节波动巧合一致;
- 转换为平稳序列后,伪回归问题会消失,统计推断(如相关性检验、回归分析)才有效。
二、如何将非平稳时间序列转为平稳时间序列?
非平稳序列的“非平稳来源”不同(趋势、季节、方差不齐),对应转换方法也不同。核心思路是消除“随时间变化的统计特性”,常用方法分为四类,需根据非平稳类型选择:
非平稳类型 | 适用转换方法 | 核心逻辑 | 适用场景举例 |
---|---|---|---|
存在线性趋势(均值随时间线性上升/下降) | 1. 线性去趋势;2. 一阶差分 | 去趋势:用线性回归拟合趋势项,从原序列中减去趋势项; 差分:用后一期值减前一期值,抵消线性增长/下降。 | GDP、人口数量、年度用电量 |
存在季节波动(均值随固定周期波动) | 1. 季节调整(如X-12-ARIMA、SEATS);2. 季节差分 | 季节调整:分离出季节项并剔除; 季节差分:用当期值减“上一周期同期值”(如1月值减去年1月值)。 | 月度销售额、季度旅游人数、月度用电量 |
存在非线性趋势(均值呈指数/对数增长) | 1. 对数/幂变换;2. 非线性去趋势(如多项式拟合) | 对数变换:将指数增长转为线性增长(如yt=ln(xt)y_t=\ln(x_t)yt=ln(xt)),再用差分消除线性趋势; 多项式拟合:用二次/三次函数拟合非线性趋势并剔除。 | 高新技术企业营收(指数增长)、用户数增长 |
存在方差不齐(方差随时间增大/减小) | 1. 对数变换;2. 平方根变换;3. Box-Cox变换 | 变换后使方差恒定(如指数增长数据的方差随均值增大,取对数后方差稳定)。 | 商品销量(增长期方差增大)、股票价格 |
关键原则:转换后需验证平稳性——常用方法为“直观观察”(无明显趋势/季节)和“统计检验”(如ADF检验、PP检验),若检验结果显示“拒绝非平稳假设”,则转换成功。
三、3个实例:非平稳序列转平稳序列的具体过程
以下实例覆盖“线性趋势”“季节波动”“非线性趋势+方差不齐”三类典型非平稳场景,每个实例包含“原序列特征→转换方法→转换步骤→平稳性验证”,确保可落地。
实例1:有线性趋势的GDP数据(用“一阶差分”转换)
1. 原序列特征(非平稳原因)
某国2010-2020年GDP数据(单位:万亿元):54.0、59.5、64.4、68.9、74.6、83.2、91.9、98.7、101.4、114.4、126.0
- 直观观察:GDP从54万亿增长到126万亿,均值随时间线性上升(存在明显线性趋势);
- 统计检验:ADF检验P值=0.85(远大于0.05),无法拒绝“非平稳假设”,确认为非平稳序列。
2. 转换方法:一阶差分
一阶差分公式:Δxt=xt−xt−1\Delta x_t = x_t - x_{t-1}Δxt=xt−xt−1(当期值减前一期值,消除线性趋势)。
3. 转换步骤
计算2011-2020年的一阶差分序列(共10个值):
年份 | 原GDP(x_t) | 一阶差分(Δx_t = x_t - x_{t-1}) |
---|---|---|
2010 | 54.0 | -(无前期数据) |
2011 | 59.5 | 59.5 - 54.0 = 5.5 |
2012 | 64.4 | 64.4 - 59.5 = 4.9 |
2013 | 68.9 | 68.9 - 64.4 = 4.5 |
2014 | 74.6 | 74.6 - 68.9 = 5.7 |
2015 | 83.2 | 83.2 - 74.6 = 8.6 |
2016 | 91.9 | 91.9 - 83.2 = 8.7 |
2017 | 98.7 | 98.7 - 91.9 = 6.8 |
2018 | 101.4 | 101.4 - 98.7 = 2.7 |
2019 | 114.4 | 114.4 - 101.4 = 13.0 |
2020 | 126.0 | 126.0 - 114.4 = 11.6 |
4. 平稳性验证
- 直观观察:差分序列(5.5、4.9、4.5…11.6)围绕均值(约7.3)波动,无明显上升/下降趋势;
- 统计检验:ADF检验P值=0.03(小于0.05),拒绝“非平稳假设”,转换后的序列为平稳序列。
实例2:有季节波动的月度销售额(用“季节差分+线性去趋势”转换)
1. 原序列特征(非平稳原因)
某超市2022-2023年月度销售额(单位:万元):
2022年:50、45、48、52、55、60、58、62、65、70、85、90
2023年:95、100、92、98、105、110、108、115、120、125、140、145
- 直观观察:① 长期趋势:销售额从50万增长到145万,均值逐年上升;② 季节波动:每年1月(春节前)、12月(双12)销售额显著高于其他月份(如2022年1月50万,12月90万),均值随12个月周期波动;
- 统计检验:ADF检验P值=0.92,确认为非平稳序列。
2. 转换方法:季节差分(消除季节波动)+ 线性去趋势(消除长期趋势)
- 季节差分:因周期为12个月,公式为Δ12xt=xt−xt−12\Delta_{12} x_t = x_t - x_{t-12}Δ12xt=xt−xt−12(当期值减“上一年同期值”,消除季节波动);
- 线性去趋势:对季节差分后的序列拟合线性趋势,剔除趋势项,确保均值恒定。
3. 转换步骤
第一步:季节差分(计算2023年1-12月的季节差分序列)
2023年月份 | 原销售额(x_t) | 2022年同期销售额(x_{t-12}) | 季节差分(Δ_{12}x_t = x_t - x_{t-12}) |
---|---|---|---|
1月 | 95 | 50 | 95 - 50 = 45 |
2月 | 100 | 45 | 100 - 45 = 55 |
3月 | 92 | 48 | 92 - 48 = 44 |
4月 | 98 | 52 | 98 - 52 = 46 |
5月 | 105 | 55 | 105 - 55 = 50 |
6月 | 110 | 60 | 110 - 60 = 50 |
7月 | 108 | 58 | 108 - 58 = 50 |
8月 | 115 | 62 | 115 - 62 = 53 |
9月 | 120 | 65 | 120 - 65 = 55 |
10月 | 125 | 70 | 125 - 70 = 55 |
11月 | 140 | 85 | 140 - 85 = 55 |
12月 | 145 | 90 | 145 - 90 = 55 |
第二步:线性去趋势(对季节差分序列拟合趋势)
- 季节差分序列:45、55、44、46、50、50、50、53、55、55、55、55
- 拟合线性趋势:设趋势项为yt=a+bty_t = a + btyt=a+bt(t=1到12),通过线性回归得yt=46.2+0.7ty_t = 46.2 + 0.7tyt=46.2+0.7t;
- 去趋势后序列:平稳序列t=Δ12xt−yt\text{平稳序列}_t = \Delta_{12}x_t - y_t平稳序列t=Δ12xt−yt,计算结果(示例前5个):
1月:45 - (46.2+0.7×1) = -1.9;2月:55 - (46.2+0.7×2)=6.4;3月:44 - (46.2+0.7×3)=-4.3;4月:46 - (46.2+0.7×4)=-2.0;5月:50 - (46.2+0.7×5)=0.3…
4. 平稳性验证
- 直观观察:去趋势后的序列围绕0波动,无季节波动和长期趋势;
- 统计检验:ADF检验P值=0.02,确认为平稳序列。
实例3:非线性趋势+方差不齐的用户增长数据(用“对数变换+一阶差分”转换)
1. 原序列特征(非平稳原因)
某APP2021年1-12月的月活用户数(单位:万人):10、15、22、33、49、73、110、165、248、372、558、837
- 直观观察:① 非线性趋势:用户数从10万增长到837万,呈指数增长(1月10万,12月837万,增长速度越来越快);② 方差不齐:前期波动小(1-3月波动7万),后期波动大(10-12月波动265万),方差随均值增大而增大;
- 统计检验:ADF检验P值=0.98,确认为非平稳序列。
2. 转换方法:对数变换(消除方差不齐+将指数趋势转为线性趋势)+ 一阶差分(消除线性趋势)
- 对数变换:取自然对数yt=ln(xt)y_t = \ln(x_t)yt=ln(xt),指数增长的xtx_txt会转为线性增长的yty_tyt,且方差会稳定;
- 一阶差分:Δyt=yt−yt−1\Delta y_t = y_t - y_{t-1}Δyt=yt−yt−1,消除对数变换后的线性趋势,得到平稳序列。
3. 转换步骤
第一步:对数变换(计算yt=ln(xt)y_t = \ln(x_t)yt=ln(xt))
月份 | 原用户数(x_t,万) | 对数变换(y_t = ln(x_t)) |
---|---|---|
1 | 10 | ln(10)≈2.30 |
2 | 15 | ln(15)≈2.71 |
3 | 22 | ln(22)≈3.09 |
4 | 33 | ln(33)≈3.50 |
5 | 49 | ln(49)≈3.89 |
6 | 73 | ln(73)≈4.29 |
7 | 110 | ln(110)≈4.70 |
8 | 165 | ln(165)≈5.01 |
9 | 248 | ln(248)≈5.51 |
10 | 372 | ln(372)≈5.92 |
11 | 558 | ln(558)≈6.32 |
12 | 837 | ln(837)≈6.73 |
第二步:一阶差分(计算Δyt=yt−yt−1\Delta y_t = y_t - y_{t-1}Δyt=yt−yt−1)
月份 | 对数变换(y_t) | 一阶差分(Δy_t = y_t - y_{t-1}) |
---|---|---|
1 | 2.30 | -(无前期数据) |
2 | 2.71 | 2.71 - 2.30 = 0.41 |
3 | 3.09 | 3.09 - 2.71 = 0.38 |
4 | 3.50 | 3.50 - 3.09 = 0.41 |
5 | 3.89 | 3.89 - 3.50 = 0.39 |
6 | 4.29 | 4.29 - 3.89 = 0.40 |
7 | 4.70 | 4.70 - 4.29 = 0.41 |
8 | 5.01 | 5.01 - 4.70 = 0.31 |
9 | 5.51 | 5.51 - 5.01 = 0.50 |
10 | 5.92 | 5.92 - 5.51 = 0.41 |
11 | 6.32 | 6.32 - 5.92 = 0.40 |
12 | 6.73 | 6.73 - 6.32 = 0.41 |
4. 平稳性验证
- 直观观察:差分序列(0.41、0.38、0.41…0.41)围绕均值(约0.40)波动,无趋势,方差稳定;
- 统计检验:ADF检验P值=0.01,确认为平稳序列。
四、总结:转换的核心逻辑与关键原则
- 核心逻辑:转换的目的是“消除非平稳来源(趋势、季节、方差不齐)”,让序列满足“均值恒定、方差恒定、自协方差仅依赖时间间隔”的平稳性条件,从而适配经典模型、保证预测与推断的可靠性。
- 关键原则:
- 先诊断非平稳类型(趋势?季节?方差不齐?),再选择对应方法(趋势→差分/去趋势,季节→季节差分,方差不齐→对数变换);
- 转换后必须验证平稳性(ADF检验+直观观察),避免“假平稳”;
- 优先选择简单方法(如一阶差分比非线性去趋势更易解释),复杂方法需结合业务意义。
通过以上转换,非平稳序列可转化为平稳序列,为后续的建模分析(如销量预测、风险评估)奠定基础。