一 在python中的实现:
import statsmodels.tsa.stattools as stm
stm.adfuller(data, maxlag=None, regression=‘c’, autolag=‘AIC’, store=False, regresults=False)
二 背景知识补充:
1.平稳性: 假定某个时间序列是由一系列随机过程生成的,即假定时间序列 x t ( t = 1 , 2 , 3 , 4 , 5 ) {x_t}(t=1,2,3,4,5) xt(t=1,2,3,4,5)的每一个数值都是从一个概率分布中随机得到,如果满足下列条件:
均值
E
(
X
t
)
=
u
E(X_t)=u
E(Xt)=u是与时间t无关的常数;
方差
V
a
r
(
X
t
)
=
σ
2
Var(X_t)=\sigma^{2}
Var(Xt)=σ2是与时间t无关的常数;
协方差
C
o
v
(
X
t
,
X
t
+
k
)
=
r
k
Cov(X_t,X_{t+k})=r_k
Cov(Xt,Xt+k)=rk是只与时间间隔K有关,与时间t无关的常数
则称改随机时间序列是平稳的,而该随机过程是平稳随机过程。
白噪声(white noise)过程是平稳的:
X
t
=
U
t
,
U
−
t
N
(
0
,
σ
2
)
X_t=U_t,U-t~N(0,\sigma^2)
Xt=Ut,U−t N(0,σ2)
随机游走(random walk)过程是非平稳的:
X
−
t
=
X
t
−
1
+
U
t
,
U
t
N
(
0
,
σ
2
)
X-t = X_{t-1} + U_t,U_t~N(0,\sigma^2)
X−t=Xt−1+Ut,Ut N(0,σ2)
V
a
r
(
X
t
)
=
t
σ
2
Var(X_t) = t\sigma^2
Var(Xt)=tσ2
随机游走的一阶差分(first difference)是平稳的:
△
X
t
=
X
t
−
X
t
−
1
=
U
t
,
U
t
N
(
0
,
σ
2
)
\triangle X_t=X_t-X_{t-1} = U_t,U_t~N(0,\sigma^2)
△Xt=Xt−Xt−1=Ut,Ut N(0,σ2)
如果一个时间序列是非平稳的,它常常可以通过取差分的方法而形成平稳序列。
2.自回归,autoregressive model:用同一变数,例如X的之前各期,
x
1
,
x
2
,
x
3
,
x
4
,
,
x
t
−
1
x_1,x_2,x_3,x_4,,x_{t-1}
x1,x2,x3,x4,,xt−1来预测本期x的表现,并假设他们为线性关系。
X
t
=
c
+
∑
ϕ
i
X
t
−
i
+
ϵ
t
X_t = c+\sum \phi_iX_{t-i} + \epsilon_t
Xt=c+∑ϕiXt−i+ϵt
c是常数项,
ϵ
t
\epsilon_t
ϵt被假设为平均数等于0,标准差等于
σ
\sigma
σ的随机误差值;
σ
\sigma
σ被假设为对于任何的t都不变。
缺点:必须具有自相关,自相关系数
ϕ
\phi
ϕ是关键,如果其小于0.5,则不宜采用,否则预测结果极不准确。
例1.Yt = α+βXt-1 + ut, t = 1,2,…,n
本例中Y的现期值与X的一期滞后值相联系,比较一般的情况是:
Yt = α+β0Xt +β1Xt-1 +……+βsXt-s + ut,
t = 1,2,…,n
即Y的现期值不仅依赖于X的现期值,而且依赖于X的若干期滞后值。这类模型称为分布滞后模型,因为X变量的影响分布于若干周期。
例2.Yt = α+βYt-1 + ut, t = 1,2,…,n
本例中Y的现期值与它自身的一期滞后值相联系,即依赖于它的过去值。一般情况可能是:
Yt = f (Yt-1, Yt-2, … , X2t, X3t, … )
即Y的现期值依赖于它自身若干期滞后值,还依赖于其它解释变量。
在本例中,滞后的因变量(内生变量)作为解释变量出现在方程的右端。这种包含了内生变量滞后项的模型称为自回归模型。
在这类模型中,由于在X和它的若干期滞后之间往往存在数据的高度相关,从而导致严重多重共线性问题。因此,分布滞后模型极少按(1)式这样的一般形式被估计。通常采用对模型各系数βj施加某种先验的约束条件的方法来减少待估计的独立参数的数目,从而避免多重共线性问题,或至少将其影响减至最小。这方面最著名的两种方法是科克方法和阿尔蒙方法。
3 ADF检验模型:
△
X
t
=
σ
X
t
−
1
+
∑
i
=
1
m
β
i
△
X
t
−
i
+
ϵ
t
(1)
\triangle X_t = \sigma X_{t-1} + \sum_{i=1}^{m} \beta_i \triangle X_{t-i} + \epsilon_t \tag 1
△Xt=σXt−1+i=1∑mβi△Xt−i+ϵt(1)
△
X
t
=
α
+
σ
X
t
−
1
+
∑
i
=
1
m
β
i
△
X
t
−
i
+
ϵ
t
(2)
\triangle X_t = \alpha + \sigma X_{t-1} + \sum_{i=1}^{m} \beta_i \triangle X_{t-i} + \epsilon_t \tag2
△Xt=α+σXt−1+i=1∑mβi△Xt−i+ϵt(2)
△
X
t
=
α
+
β
t
+
σ
X
t
−
1
+
∑
i
=
1
m
β
i
△
X
t
−
i
+
ϵ
t
(3)
\triangle X_t = \alpha + \beta t +\sigma X_{t-1} +\sum_{i=1}^{m} \beta_i \triangle X_{t-i} +\epsilon_t \tag3
△Xt=α+βt+σXt−1+i=1∑mβi△Xt−i+ϵt(3)
零假设 H0:
σ
=
0
\sigma=0
σ=0,原序列存在单位根,为非平稳序列
备则假设 H1:
σ
<
0
\sigma<0
σ<0,原序列不存在单位根,为平稳序列
4.检验过程:
实际检验时从模型3开始,然后模型2,模型1.
合适检验拒绝零建设,即原序列不存在单位根,为平稳序列,何止停止检验
否则,要继续检验,知道检验完模型1为止。
5.一个简单的检验过程:
同时估计出上述三个模型的适当形式,然后通过ADF临界值表检验零 建设H0:
σ
=
0
\sigma=0
σ=0;
只要其中一个模型的检验结果拒绝了零假设,就可以认为时间序列时平稳的;
当三个模型的检验结果都不能拒绝零假设时,则认为时间序列是非平稳的。
6.四种典型的非平稳随机过程:
(1)随机游走
(2)随机趋势过程
(3)趋势平稳过程
(4)趋势非平稳过程
参考文献:
1.https://wenku.baidu.com/view/04e9f885284ac850ad024256.html
2.https://baike.baidu.com/item/%E8%87%AA%E5%9B%9E%E5%BD%92%E6%A8%A1%E5%9E%8B
3.https://wenku.baidu.com/view/42b524bee109581b6bd97f19227916888586b916.html?from=search
4.https://baike.baidu.com/item/%E8%87%AA%E5%9B%9E%E5%BD%92%E6%A8%A1%E5%9E%8B
5.https://baike.baidu.com/item/%E8%87%AA%E5%9B%9E%E5%BD%92%E6%A8%A1%E5%9E%8B
6.statsmodels.tsa.stattools.adfuller:http://www.statsmodels.org/devel/generated/statsmodels.tsa.stattools.adfuller.html
7.检验结果的解读:https://bbs.pinggu.org/thread-869112-4-1.html