序列平稳性和纯随机性检验

平稳性

首先先介绍平稳序列(此处及之后所述平稳均为宽平稳)的性质。

对于时间序列

时间1234t-1t
变量X1 X_1 X1X2 X_2 X2X3 X_3X3X4 X_4X4... ... ...Xt−1 X_{t-1} Xt1Xt X_t Xt

1.常数均值
EXt=μ,∀t∈TEX_t=\mu,\forall t \in TEXt=μtT
2.自协方差函数和自相关系数仅依赖于时间间隔长度而与起止时间无关
γ(t,s)=γ(k,k+s−t),∀t,s,k∈T\gamma (t,s) = \gamma (k,k + s - t),\forall t,s,k \in Tγ(t,s)=γ(k,k+st)t,s,kT

其中
γ(t,s)=E[(Xt−μt)(Xs−μs)]\gamma \left( {t,s} \right){\rm{ = E}}\left[ {\left( {{X_t} - {\mu _t}} \right)\left( {{X_s} - {\mu _s}} \right)} \right]γ(t,s)=E[(Xtμt)(Xsμs)]
检验序列的平稳性通常有两种方法,分别为图检验方法和单位根检验法。

图检验方法

其中图检验方法又分为时序图检验法和自相关图法。

一、时序图检验

时序图检验是根据平稳时间序列具有常数均值和常数方差的性质进行判断。示例如下:
1884 – 1939 年英格兰和威尔士每英亩大麦年产量
时序图在某一个常数附近波动,并没有明显的趋势和季节性,基本可以视为平稳序列。

二、自相关图检验

自相关图检验的原理是平稳序列具有的短期相关性。随着延迟阶数k的增加,平稳时间序列的自相关系数会很快衰减到0,如序列不平稳,则衰减到0的速度较慢。
自相关图是一个平面二维坐标悬垂线图。横坐标表示延迟阶数,纵坐标表示自相关系数。示例如下:
ACF

从图中可以看出,该序列的自相关系数一直都比较小,一直在x轴附近波动,因此可以认为该序列是平稳时间序列。

纯随机性检验

纯随机序列的定义

如序列满足下列条件:
(1)EXt=μ,∀t∈TE{X_t} = \mu,\forall {\rm{t}} \in T EXt=μtT
(2)γ(t,s)={σ2,t=s0,t≠s,∀t,s∈T\gamma (t,s) = \begin{cases}\sigma ^2,t = s \\{0,t \ne s} \end{cases}\text,\forall t,s \in Tγ(t,s)={σ2,t=s0,t=st,sT
则该序列为纯随机序列,也称做白噪声(white noise)序列,记为Xt=WN(μ,σ2)X_t=WN(\mu,\sigma^2)Xt=WN(μ,σ2)
注意:白噪声序列也是平稳序列。

纯随机性检验

纯随机性检验又称为白噪声检验,用于检验序列是否为纯随机性序列。

假设条件

原假设:延迟期数小于或等于m期的序列值之间相互独立
备择假设:延迟期数小于或等于m期的序列值之间有相关性
数学语言表达如下:
H0:ρ1=ρ2=...=ρm=0,∀m≥1H_0:\rho_1=\rho_2=...=\rho_m=0,\forall m \geq 1H0:ρ1=ρ2=...=ρm=0m1
H1:至少存在一个ρk≠0,∀m≥1,k≤mH_1:至少存在一个\rho_k\neq0,\forall m \geq 1,k\leq mH1:ρk=0m1,km

检验统计量

常常使用LB统计量,公式为:
LB=n(n+2)∑k=1nρk2^n−kLB=n(n+2)\sum_{k=1}^n \frac {\hat{\rho_k^2}}{n-k}LB=n(n+2)k=1nnkρk2^
式中n为序列观测期数,m为延迟期数。并且LB统计量近似服从自由度为m的卡方分布,即
LB∼χ2(m)LB\sim\chi^2(m)LBχ2(m)
对数据进行纯随机性检验,结果如下:
在这里插入图片描述
从上表中可以看出,其pvalue均大于0.05,因此无法拒绝原假设该时间序列为纯随机性序列,可以停止对该序列的统计分析。

本文所使用的代码如下:

import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.stats.diagnostic import acorr_ljungbox
data = pd.read_csv(r'D:\附录1.1.CSV') #文件已上传至资源中
plt.plot(data.Year,data.iloc[:,1])
plot_acf(data.iloc[:,1],lags=20)
acorr_ljungbox(data.iloc[:,1], lags = [i for i in range(1,12)],boxpierce=True)
Python中,判断序列平稳性随机性通常涉及到统计学的概念。这里提供两个常用的方法: **1. 判断序列平稳性(Stationarity):** 平稳时间序列是指其统计特性(如均值、方差、自协方差等)不随时间改变的序列Python中的`statsmodels`库提供了`tsa.stattools.adfuller`函数来进行ADF(Augmented Dickey-Fuller Test)检验,常用于非线性趋势序列平稳性测试。 ```python from statsmodels.tsa.stattools import adfuller def test_stationarity(data): result = adfuller(data) print('ADF Statistic:', result[0]) print('p-value:', result[1]) if result[1] > 0.05: # 对于显著性水平一般设为0.05,若p-value大于临界值,则认为序列是非平稳的 print("The series is not stationary") else: print("The series is likely stationary") # 使用示例 data = your_sequence # 替换为你要检查的序列 test_stationarity(data) ``` **2. 判断序列随机性(Randomness):** 对于随机性,一种常见的方法是分析序列的周期性、自相关图(ACF)偏自相关图(PACF)。你可以使用`matplotlib``statsmodels`库来创建图形并观察。 ```python import matplotlib.pyplot as plt import pandas as pd from statsmodels.graphics.tsaplots import plot_acf, plot_pacf def check_randomness(data, lags=30): plot_acf(data, lags=lags) # 自相关图 plot_pacf(data, lags=lags) # 偏自相关图 plt.show() # 使用示例 check_randomness(your_sequence) ``` 根据这两个图,如果序列的ACF图衰减得快,并且PACF图在一定滞后之后截尾,那么序列可能接近白噪声,即随机性较强。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值