当前位置: 七九推 > 科技>办公>硬盘 > 谈谈时间序列的平稳性

谈谈时间序列的平稳性

2022年06月23日 硬盘 我要评论
时间序列分析中的许多方法,如ARMA、ARIMA、Granger因果检验等时序预测和分析方法,都需要时间序列具备平稳性。那么什么是时间序列的平稳性呢?什么序列

时间序列分析中的许多方法,如ARMA、ARIMA、Granger因果检验等时序预测和分析方法,都需要时间序列具备平稳性。那么什么是时间序列的平稳性呢?什么序列是平稳的什么是非平稳的?最后再来思考一下为什么这么多时序分析方法都强调时间序列的平稳性呢?

一、平稳性的定义

时间序列的平稳性是指一组时间序列数据看起来平坦,各阶统计特征(如均值、方差、协方差…)不随时间的变化而变化。其数学定义又分为严平稳和宽平稳。

严平稳

给 定 随 机 过 程 X ( t ) , t ∈ T , 如 果 对 任 意 \small 给定随机过程 X(t),t \in T,如果对任意 X(t),tT,
n ⩾ 1. t 1 , t 2 , . . , t n ∈ T 和 实 数 τ , \small n \geqslant 1. t_1,t_2,..,t_n \in T 和实数 \tau, n1.t1,t2,..,tnTτ,
当 t 1 + τ , t 2 + τ , . . . , t n + τ 时 , \small 当t_{1+\tau},t_{2+\tau},...,t_{n+\tau}时, t1+τ,t2+τ,...,tn+τ,
随 机 向 量 ( X ( t 1 ) , X ( t 2 ) , . . . , X ( t n ) ) \small 随机向量(X(t_1),X(t_2),...,X(t_n)) (X(t1),X(t2),...,X(tn))
与 ( X ( t 1 + τ ) , X ( t 2 + τ , . . . , X ( t n + τ ) ) ) \small 与(X(t_{1+\tau}),X(t_{2+\tau},...,X(t_{n+\tau}))) (X(t1+τ),X(t2+τ,...,X(tn+τ)))
有 相 同 的 联 合 分 布 函 数 , 即 \small 有相同的联合分布函数,即 ,
F t 1 , t 2 , . . . t n ( x 1 , x 2 , . . . , x m ) = \small F_{t_1,t_2,...t_n}(x_1,x_2,...,x_m)= Ft1,t2,...tn(x1,x2,...,xm)=
F t 1 + τ , t 2 + τ , . . . t n + τ ( x 1 , x 2 , . . . , x m ) \small F_{t_{1+\tau},t_{2+\tau},...t_{n+\tau}}(x_1,x_2,...,x_m) Ft1+τ,t2+τ,...tn+τ(x1,x2,...,xm)
则 称 随 机 过 程 X t , t ∈ T 是 严 平 稳 过 程 . \small 则称随机过程X{t},t \in T 是严平稳过程. Xt,tT.

简单点说严平稳是一种条件比较苛刻的平稳性定义,它认为只有当序列所有的统计性质都不会随着时间的推移而发生变化时,该序列才能被认为平稳。

宽平稳

假 定 某 个 时 间 序 列 是 由 某 一 随 机 过 程 \small 假定某个时间序列是由某一随机过程
生 成 的 , 如 果 满 足 下 列 条 件 : \small 生成的,如果满足下列条件:
1 ) 均 值 E ( X t ) = μ 是 与 时 间 \small 1)均值E(X_t)=\mu 是与时间 1)E(Xt)=μt 无 关 的 常 数 无关的常数
2 ) 方 差 V a r ( X t ) = σ 2 是 与 时 间 无 关 的 常 数 \small 2)方差Var(X_t)=\sigma^2是与时间无关的常数 2)Var(Xt)=σ2
3 ) 协 方 差 C o v ( X t , X t + k ) = γ k 是 只 与 时 间 间 \small 3)协方差Cov(X_t,X_{t+k})=\gamma_k是只与时间间 3)Cov(Xt,Xt+k)=γk
隔 k 有 关 , 与 时 间 t 无 关 的 常 数 \small 隔k有关,与时间t无关的常数 kt
则 该 时 间 序 列 是 宽 平 稳 的 , \small 则该时间序列是宽平稳的, ,
该 随 机 过 程 是 平 稳 随 机 过 程 . \small 该随机过程是平稳随机过程. .

平稳性的定义在不同文章中描述略有不同,但它们的意思都是一样的。比如一些定义中会强调二阶矩存在,而我们当前的这个定义中没有强调,原因在于均值、方差为常数既已表示一阶矩、二阶矩存在。

宽平稳序列具有均值、方差和自相关结构不随时间变化的特性。简单理解就是一个看起来平坦的序列,没有趋势,随时间变化的方差不变,随时间变化的自相关结构不变,也没有定期波动(季节性)。

二、严平稳与宽平稳的关系

严平稳比宽平稳的要求更严格,但两者并没有包含关系。
通常情况下,低阶矩存在的严平稳能推出宽平稳成立,而宽平稳序列不能反推严平稳成立。

即便严平稳也不一定宽平稳。
不存在低阶矩的严平稳序列不满足宽平稳条件,例如服从柯西分布的严平稳序列就不是宽平稳序列(柯西分布的一阶矩、二阶矩都不存在)。

当序列服从多元正态分布时,宽平稳可以推出严平稳。因为正态过程的概率密度是由均值函数和自相关函数完全确定的,宽平稳则均值函数和自相关函数不随时间的推移而变化,那么正态过程的概率密度函数也就不会随时间的推移而变化,所以说一个宽平稳的正态过程必定是严平稳的。

一些易混的名词:
宽平稳,因其定义,又叫二阶平稳,或者协方差平稳;
平稳序列,一般是指宽平稳序列,也称弱平稳序列;
严平稳序列,也可以叫做强平稳序列。

三、平稳时间序列一览

白噪声

一种最简单的平稳时间序列就是白噪声 —— 具有零均值同方差的独立同分布序列),记作 { ε t } \small \{ \varepsilon_t \} {εt}

ε t \varepsilon_t εt服从均值为0的正态分布时,称 { ε t } \small \{ \varepsilon_t \} {εt}为高斯白噪声或正态白噪声。

对于任意 t ∈ T , X t \small t \in T,X_t tT,Xt均值相同、方差相同,独立则协方差为零,故而白噪声序列是平稳的。

简单用一行代码就能生成白噪声序列;

import numpy as np
from matplotlib import pyplot as plt

white_noise = np.random.standard_normal(size=1000)
plt.figure(figsize=(12, 6))
plt.plot(white_noise)
plt.show()


当一个序列为白噪声时,表示序列前后没有任何相关关系。过去的行为对将来的发展没有丝毫影响,从统计分析的角度而言,已没有任何分析建模的价值。未来的趋势亦无法预测,因为白噪声的取值是完全随机的。

此时未来预测为均值就是残差最小的选择。

只有当序列平稳且非白噪声时,应用ARMA等分析方法才有意义。

通常我们在对时间序列建模之后,还会对残差序列进行白噪声检验,如果残差序列是白噪声,那么就说明原序列中所有有价值的信息已经被模型所提取;如果非白噪声就要检查模型的合理性了。

非白噪声

平稳时间序列可不止白噪声,生活中也会有平稳的时间序列,但却是很少。别灰心,很多序列是可以经过简单处理后变为平稳的非白噪声序列。

我国06年以来的季度GDP数据季节差分后,就可以认为是一个平稳的时间序列。

import numpy as np
import pandas as pd
import akshare as ak
from matplotlib import pyplot as plt

df = ak.macro_china_gdp()
df = df.set_index('季度')
df.index = pd.to_datetime(df.index)

gdp = df['国内生产总值-绝对值'][::-1].astype('float')

gdp_diff = gdp.diff(4)

plt.figure(figsize=(12, 6))
gdp_diff.plot()
plt.show()


数据看上去是平坦的,均值、方差直观上看也没有大的变化,故而大体上可以认为是平稳的。

大家可以自行拓展一下,用统计量化的方式检验序列是否平稳,以及是否是白噪声。我们下篇文章会具体介绍平稳性的众多检验方法。


四、非平稳时间序列一览

大多数时间序列都是非平稳的,一般可以通过差分、取对数等方法转化成平稳时间序列,若不成就不能使用平稳时间序列分析方法了。虽说还有各种非平稳时间序列的分析方法,预测好坏看各家本领,但终归不如平稳时间序列分析来的省心。

比如一些股票的收盘价数据就是非平稳的。下图是2019~2021年来伊份的每日收盘价数据,整体看上去走势无明显规律,且不同时段波动不一,就可以认为是一个非平稳的时间序列。若平稳且不是白噪声多好啊。

import pandas as pd
import akshare as ak
from matplotlib import pyplot as plt

df = ak.stock_zh_a_hist(symbol="603777", start_date="20190101", end_date='20210616')
df = df.set_index('日期')
df.index = pd.to_datetime(df.index)

close = df['收盘'].astype(float)
close = close[::-1]

plt.figure(figsize=(12, 6))
plt.plot(close)
plt.show()

随机游走

有一类特殊的非平稳时间序列叫随机游走,很简单,也很有意思。

一个简单随机游走过程定义为:
y t = y t − 1 + ε t y_t=y_{t-1}+\varepsilon_t yt=yt1+εt
其中 ε \varepsilon ε是均值为零的白噪声。

用两行代码来模拟一下随机游走过程:

import numpy as np
from matplotlib import pyplot as plt

y = np.random.standard_normal(size=1000)
y = np.cumsum(y)

plt.figure(figsize=(12, 6))
plt.plot(y)
plt.show()

金融领域中有个概念叫有效市场假说,就认为股票的价格是随机游走的,也就是说我们刚刚举的那个上证指数的例子就是随机游走的。以上随机游走的示例图和之前的股价数据走势图比较一下,是不是有点那么个意思。

一个随机游走过程对过去发生的信息具有完美的记忆,如醉汉走路,每一步都是在上一步的位置上胡乱的走,故而能够积累起点以来的每一步信息。初起离家,偶有归时,不知所终。均值为零,方差无限大。

import numpy as np
from matplotlib import pyplot as plt

np.random.seed(5)

def random_walk():
    steps = np.random.standard_normal(size=1000)
    steps[0] = 0
    walk = np.cumsum(steps)
    return walk
    
plt.figure(figsize=(12, 6))
plt.plot(random_walk())
plt.plot(random_walk())
plt.show()


生活中还有一个现象和随机游走有关,叫“久赌必输”。每次赌博时输赢总是不确定的(假设胜率50%,胜负五五开),每次赌博的输赢作为一个随机变量,可以认为是步长 ε \varepsilon ε,手里的钱数会随着每次输赢而变化,故而赌博时手中的钱服从随机游走模型。
手中累积的钱数走势就像上图中的曲线,但却不会一直延展下去。当曲线触碰到下届时(手中的钱输光时),游戏也就结束了;或当曲线触碰到上界时(庄家的钱没有了,贪心到赢钱停不下来要一直赢下去),游戏同样也会结束。庄家的钱无限多,则必然是赌徒输光。庄家的钱再少,也比赌徒的本金多的多。所以上界不知在哪,下界却很清晰,曲线游走到上界的概率几乎为零,输光的终归是赌徒,更别提胜率往往不足50%。

带漂移项的随机游走

带漂移项的随机游走,就是随机游走中加入一个常数,如此而已。
y t = c + y t − 1 + ε t y_t=c+ y_{t-1}+\varepsilon_t yt=c+yt1+εt
其中 c c c 是常数,称作位移项或漂移项。

漂移项使得随机游走序列产生了长期趋势。长期趋势的斜率对应漂移项,漂移项为正则有增长趋势,漂移项为负则有下降趋势。

同样代码模拟一下下:

import numpy as np
from matplotlib import pyplot as plt

np.random.seed(123)

y = np.random.standard_normal(size=100)
y1 = np.cumsum(0.2+y)
y2 = np.cumsum(-0.2+y)

l1 = np.cumsum(0.2 * np.ones(len(y1)))
l2 = np.cumsum(-0.2 * np.ones(len(y2)))

plt.figure(figsize=(12, 6))
plt.plot(y1)
plt.plot(y2)
plt.plot(l1)
plt.plot(l2)
plt.show()


无论是简单随机游走,还是带漂移项的随机游走,都可以通过差分的方式转换为纯随机的平稳时间序列–白噪声。
随机游走的一阶差分即为白噪声:
y t − y t − 1 = ε t y_t-y_{t-1}=\varepsilon_t ytyt1=εt
带漂移项的随机游走一阶差分为白噪声+常数 c c c
y t − y t − 1 = c + ε t y_t-y_{t-1}=c+\varepsilon_t ytyt1=c+εt

所以说随机游走过程和白噪声一样也是无法预测的,既然无法根据历史走势预测未来趋势,那是否能够从其他维度信息中解释历史时序中的取值,从而能够用同样的逻辑预测未来的值,只有实践才能知道。

五、对平稳性的理解

回顾开头我们提的那个问题,为什么这么多方法都要强调时间序列的平稳性?要求平稳性的最终目标无非就是希望能够更好更准确的预测未来。非平稳时间序列太过杂乱无章,有的甚至完全无规律可循,而平稳时间序列本身存在某种分布规律,前后具有一定自相关性且能够延续下去,进而可以利用这些信息帮助预测未来。那时间序列的平稳性具体又是如何帮助预测未来的,平稳性又如何怎么理解呢?

初识时间序列一篇中我们也提到,时间序列 X 1 , X 2 , X 3 , . . . X t , . . . X N \tiny X_1,X_2,X_3,...X_t,...X_N X1,X2,X3,...Xt,...XN 中每个时刻 t \small t t 都可以认为是一个随机变量,它们都有自己的分布。时间不能倒流,时刻 t t t 的取值也不能进行反复观测,因而每个随机变量 X t \tiny X_t Xt 就只有一个观测值。这样一来,每个分布也就只有一个观测值,数目太少,无法研究分布的性质。但是通过平稳性,从不同时刻的分布之间发现内在关联,可以缓解由于样本容量少导致的估计精度低的问题。

我们先做一个无理假设,假设时间序列中的每个随机变量的分布相同(随机变量的分布不随时间 t t t 的变化而变化),那么对于这个分布我也可以说得到了 N \tiny N N 个观测值。有了多个观测值之后,就可以统计这个分布的特性了。如此一来 X N + 1 \tiny X_{N+1} XN+1 的具体分布也就知道了。

其实强平稳定义更甚,要求任意连续 k , k ∈ [ 1 , N ] \tiny k, k \in [1,N] k,k[1,N] 个随机变量的联合分布不变,即联合分布只与随机变量的个数有关,不随时间的推移而变化。

序列中每个随机变量的分布相同不一定是严平稳,如下表中3列数据分布一致,每列数据均有1个10、2个20、1个30,但是 X 1 , X 2 \tiny X1,X2 X1,X2 X 2 , X 3 \tiny X2,X3 X2,X3的两个联合分布并不一致,

p ( X 1 = 10 , X 2 = 10 ) = 0.25 , p ( X 2 = 10 , X 3 = 10 ) = 0 \small p(X_1=10,X_2=10)=0.25,\small p(X_2=10,X_3=10)=0 p(X1=10,X2=10)=0.25,p(X2=10,X3=10)=0

X 1 X_1 X1 X 2 X_2 X2 X 3 X_3 X3
101020
203020
202010
302030

但若序列中每个随机变量独立同分布的话,则这个序列一定是严平稳序列,而且还是白噪声。

继续顺着上文的无理假设,虽然根据历史数据知道了 X N + 1 \tiny X_{N+1} XN+1数据分布情况,其实也就只能知道均值、方差这些个统计特征,但是具体 t N + 1 \tiny t_{N+1} tN+1 时刻的取值还是无法确定。

若是严平稳, X 1 , . . . , X k \tiny X_1,...,X_k X1,...,Xk 的联合分布具有时间平移不变性,与时间 t \small t t 无关,只与 k \small k k 有关。那么 t N + 1 \tiny t_{N+1} tN+1 时刻的取值还可以根据联合分布来推断,比如表1中前2列,p(20)=50%,p(30,20)=100%。

但若是 p ( 30 , 20 ) = p ( 10 , 20 ) = p ( 20 , 20 ) = p ( 20 ) \small p(30,20)=p(10,20)=p(20,20)=p(20) p(30,20)=p(10,20)=p(20,20)=p(20)
这就又是一个白噪声过程了,除了预测为均值等统计值外,预测为其他值都不准确。

现实中的时间序列数据,我们无法知道 X 1 , . . . , X t , . . . \tiny X_1,...,X_t,... X1,...,Xt,...这些随机变量的分布到底长什么样子。我们观测得到的数据,只是服从某种未知分布的随机变量的一种取值。既然连单个随机变量的分布都难以求出,就更不用说求由一堆随机变量组成的多维随机向量的联合分布有多困难了。所以说严平稳终归太过于理想化,实际上很难检验一个时间序列的严平稳性。

那我们就放宽些条件,不在局限于严平稳,着眼于宽平稳:
1)均值 E ( X t ) = μ \small E(X_t)=\mu E(Xt)=μ是与时间 t t t无关的常数
2)方差 V a r ( X t ) = σ 2 \small Var(X_t)=\sigma^2 Var(Xt)=σ2是与时间无关的常数
3)协方差 C o v ( X t , X t + k ) = γ k \small Cov(X_t,X_{t+k})=\gamma_k Cov(Xt,Xt+k)=γk是只与时间间隔 k \small k k有关,与时间 t \small t t无关的常数

第1)、2)条,均值恒定、方差恒定,还是限制变量 X t \tiny X_t Xt的分布,围绕某一均值上下波动,且波动幅度前后一致。到这里,还是可以用均值来预测。第3)条约束协方差,是希望不仅 X t \tiny X_t Xt的整体分布不随着时间变化,而且 X t X_t Xt的条件概率分布也不随着时间变化,这样才能用以前的值来预测未来的值。

比如 X t \tiny X_t Xt 受前一时刻 X t − 1 \tiny X_{t-1} Xt1 的影响,且前后影响程度不随时间变化,

C o v ( X t , X t − 1 ) = γ \tiny Cov(X_t,X_{t-1}) =\gamma Cov(Xt,Xt1)=γ
C o v ( X t + 1 , X t ) = γ      ( γ ≠ 0 ) \tiny Cov(X_{t+1},X_{t}) =\gamma ~~~~ (\gamma \neq 0) Cov(Xt+1,Xt)=γ    (γ=0)

取第二行公式变换一下:
1 n − 1 ∑ i = 1 n ( X t + 1 i − X ˉ t + 1 ) ( X t i − X ˉ t ) = γ \tiny \frac{1}{n-1} \displaystyle\sum_{i=1}^n (X_{t+1}^{i}-\bar{X}_{t+1})(X_{t}^{i}-\bar{X}_{t})=\gamma n11i=1n(Xt+1iXˉt+1)(XtiXˉt)=γ
∑ i = 1 n ( X t + 1 i − X ˉ t + 1 ) ( X t i − X ˉ t ) = ( n − 1 ) γ \tiny \displaystyle\sum_{i=1}^n (X_{t+1}^{i}-\bar{ X}_{t+1})(X_{t}^{i}-\bar{X}_{t})=(n-1)\gamma i=1n(Xt+1iXˉt+1)(XtiXˉt)=(n1)γ
∑ i = 1 n ( X t + 1 i − μ ) ( X t i − μ ) = ( n − 1 ) γ \tiny \displaystyle\sum_{i=1}^n (X_{t+1}^{i}-\mu)(X_{t}^{i}-\mu)=(n-1)\gamma i=1n(Xt+1iμ)(Xtiμ)=(n1)γ

厚着脸皮约等一下下:
( x t + 1 − μ ) ( x t − μ ) = γ \small (x_{t+1}-\mu)(x_{t}-\mu)=\gamma (xt+1μ)(xtμ)=γ

那么将 t + 1 t+1 t+1时刻的取值预测为 γ / ( x t − μ ) + μ \small \gamma/(x_{t}-\mu)+\mu γ/(xtμ)+μ,而非均值 μ \small \mu μ,就显得更准确一些。

综上,当时间序列具备了平稳性后(且非白噪声),预测序列相对容易,预测结果也会相对更可靠一些。


参考链接

[1] https://www.jianshu.com/p/754243217327
[2] https://www.zhihu.com/question/21982358
[3] https://towardsdatascience.com/stationarity-in-time-series-analysis-90c94f27322
[4] https://zhuanlan.zhihu.com/p/50553021
[5] https://qastack.cn/stats/36027/why-does-the-cauchy-distribution-have-no-mean
[6] https://max.book118.com/html/2018/1104/7110015130001155.shtm
[7] https://www.cnblogs.com/ev2020/p/12344803.html
[8] https://www.cnblogs.com/hqczsh/p/12817912.html
[9] https://www.jianshu.com/p/76c9bf98e340

请添加图片描述

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • 用过就回不去的硬件推荐:第一个不接受反驳

    用过就回不去的硬件推荐:第一个不接受反驳

    数码产品如今已是生活中必不可少的元素了,有些我们会随身不离,可有些我们会用过几次后就搁置着。虽然随着数码产品更新换代不少产品都被拍在沙滩上,但那些让我们用过以后... [阅读全文]
  • SSD变聪明了!Marvell为其引入机器学习引擎

    SSD变聪明了!Marvell为其引入机器学习引擎

    marvell(美满电子)还真能玩,不但联合东芝为ssd带来了以太网访问能力,还让ssd变聪明了,要打造“计算存储”(computational storage... [阅读全文]
  • 解析SSD降价背后的原因 2019下半年还会降吗?

    今年618可谓是入手内存、ssd的好时机,各位小伙伴618期间有没有添置一个大容量ssd呢?以英睿达为例子,目前性价比超高的英睿达mx500 500g在一年前居然卖999元,而今天…

    2022年06月23日 办公
  • 三星酝酿对闪存芯片进行“报复性”涨价:幅度10%

    三星酝酿对闪存芯片进行“报复性”涨价:幅度10%

    三星,可谓内外交困。上周发布的营收前瞻显示,由于内存、闪存、面板、手机等多线失利,当季利润可能不及去年同期的一半。同时,日本自7月4日起制裁韩国,限制3项关键半... [阅读全文]
  • QLC的SSD是否值得购买?

    QLC的SSD是否值得购买?

    鉴于当年tlc ssd首发时惹出了这么大的问题,其实qlc ssd发布的时候我就在想它别惹出什么幺蛾子就好,性能我是不指望了,现在intel的660p发布有一年... [阅读全文]
  • NAND闪存的需求陡增:一大波产品要涨价了!

    NAND闪存的需求陡增:一大波产品要涨价了!

    最近三星位于韩国华城市的芯片工厂经历了一次大概1分钟左右的停电,引发了不少网友对于闪存内存涨价的讨论。闪存内存的价格浮动说到底还是供给和需求决定的,而其实在经历... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2022  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com