白噪声
一、白噪声定义及性质
在时间序列中,最简单的平稳过程(纯随机过程)就是白噪声过程(White Noise),具体如下:
{
Z
t
{Z_{t}}
Zt} 是白噪声过程,如果满足:
E
(
Z
t
)
=
0
E(Z_{t})=0
E(Zt)=0
V
a
r
(
Z
t
)
=
σ
z
2
Var(Z_{t})=\sigma_{z}^{2}
Var(Zt)=σz2
C
o
v
(
Z
t
,
Z
s
)
=
0
,
t
≠
s
Cov(Z_{t},Z_{s})=0 ,t\neq s
Cov(Zt,Zs)=0,t=s也就是均值为0,方差为
σ
z
2
\sigma_{z}^{2}
σz2 ,协方差为0 (无自相关性) 的序列,简单记为
Z
t
∼
W
N
(
0
,
σ
z
2
)
Z_{t}\sim WN(0,\sigma_{z}^{2})
Zt∼WN(0,σz2)
从白噪声序列的协方差为0可以得到,其ACF除在0处之外均为0,即
ρ
k
=
C
o
v
(
Z
t
,
Z
t
+
k
)
V
a
r
(
Z
t
)
V
a
r
(
Z
t
+
k
)
=
0
,
k
≠
0
\rho_{k}=\frac{Cov(Z_{t},Z_{t+k})}{\sqrt{Var(Z_{t})Var(Z_{t+k})}}=0 ,k\neq 0
ρk=Var(Zt)Var(Zt+k)Cov(Zt,Zt+k)=0,k=0
只有当序列为白噪声序列才有上述的关系,容易出错的是,很多人往往计算时会下意识默认序列为平稳序列,于是直接将分母处的
σ
Z
t
2
\sigma_{Z_{t}}^{2}
σZt2 和
σ
Z
t
+
k
2
\sigma_{Z_{t+k}}^{2}
σZt+k2 默认为相等,如果序列是平稳的,那没有问题;否则,请按照原先公式进行计算。
二、白噪声检验
现在我们需要解决的问题是得到的平稳序列是否是一个完全随机的序列。如果序列是完全随机的,那无论怎么利用这个序列也无法进行预测;反之,我们可以找出内在联系,为预测的准确性打下基础。
其中最简单的方法就是观察序列的ACF图,完全随机的序列应该是没有明显的自相关性。
而较为严格的一种方法就是:混成检验:
H
0
:
ρ
1
=
ρ
2
⋯
=
ρ
k
=
0
V
S
H
1
:
∃
ρ
i
≠
0
,
1
≤
i
≤
k
H_{0}: \rho_{1}=\rho_{2} \cdots =\rho_{k}=0 \quad VS \quad H_{1}: \exists \rho_{i}\neq 0, 1\leq i \leq k
H0:ρ1=ρ2⋯=ρk=0VSH1:∃ρi=0,1≤i≤k
对于一列完全随机的序列,有近似分布
ρ
i
^
∼
N
(
0
,
1
T
)
\hat{\rho_{i}} \sim N(0,\frac{1}{T})
ρi^∼N(0,T1) ,对于任意的
k
k
k,下面定义检验统计量为:
Q
(
k
)
=
T
∑
i
=
1
k
ρ
k
2
^
Q(k)= T \sum_{i=1}^{k}\hat{\rho^{2}_{k}}
Q(k)=Ti=1∑kρk2^
在完全随机的假设下有:
Q
(
k
)
≈
χ
k
2
Q(k)\approx \chi_{k}^{2}
Q(k)≈χk2
当
Q
(
k
)
≈
χ
k
2
>
χ
k
2
(
1
−
α
)
Q(k)\approx \chi_{k}^{2} > \chi_{k}^{2}(1-\alpha)
Q(k)≈χk2>χk2(1−α) 时,拒绝原假设,即不能认为序列是纯随机的。而这种检验方式被称为
B
o
x
−
P
i
e
r
c
e
′
s
Box-Pierce's
Box−Pierce′s 混成检验。
下面换了一个检验统计量——
L
j
u
n
g
−
B
o
x
′
s
Ljung-Box's
Ljung−Box′s 检验统计量:
L
B
(
k
)
=
T
(
T
+
2
)
∑
i
=
1
k
ρ
i
2
^
T
−
k
LB(k)=T(T+2)\sum_{i=1}^{k}\frac{\hat{\rho_{i}^{2}}}{T-k}
LB(k)=T(T+2)i=1∑kT−kρi2^
对于修正的
L
j
u
n
g
−
B
o
x
′
s
Ljung-Box's
Ljung−Box′s 检验统计量的分布在样本量较小时比上面的
B
o
x
−
P
i
e
r
c
e
′
s
Box-Pierce's
Box−Pierce′s 混成检验统计量更接近
χ
k
2
\chi_{k}^{2}
χk2 分布,而在样本量较大时两者差别却并不大。所以在实际中
L
j
u
n
g
−
B
o
x
′
s
Ljung-Box's
Ljung−Box′s 检验统计量更常用。
在R语言中使用 B o x . t e s t Box.test Box.test 函数可以实现上述两个检验。