{ e 0 , e 1 , . . . , e t , . . . } \{e_0, e_1, ..., e_t, ...\} {e0,e1,...,et,...}是白噪声的三个条件:
按照上述定义,白噪声是一种特殊的弱平稳过程,通常时间序列分析到白噪声这一层就没什么好分析的了。
其实,我们希望的白噪声序列 { e 0 , e 1 , . . . , e t , . . . } \{e_0, e_1, ..., e_t, ...\} {e0,e1,...,et,...},是相互独立的(这时 { e t } \{e_t\} {et}序列是严平稳的)。但是独立性是很难验证出来的,我们只能验证相关性。
{ e i , e j } \{e_i, e_j\} {ei,ej}不相关并不意味着 e i e_i ei和 e j e_j ej的生成是独立的。见这里的不相关却不独立的例子。
然而,当 { e t } \{e_t\} {et}序列是高斯的,且 { e i , e j } \{e_i, e_j\} {ei,ej}间是不相关的,则意味着 { e i , e j } \{e_i, e_j\} {ei,ej}是独立的。着就是我们为什么喜欢高斯白噪声的原因。也就是,要生成高斯白噪声,序列需要从高斯分布中随机采样(不能按照某种规律采样)。
# d=4: 存在负相关关系
# d=2: 基本没有自相关关系
# d=0: 存在正相关关系
d = sm.stats.durbin_watson(data)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
# 生成白噪声
white_noise=np.random.standard_normal(size=500)
fig = plt.figure(figsize=(12, 10))
ax0 = fig.add_subplot(311)
plt.plot(white_noise)
# acf & pacf
ax1 = fig.add_subplot(312)
# dta.values生成二维数组,每一个元素是一个特征数组
# dta.values将二维数组弄成一维数组
# 滞后0-40阶的自相关函数的值画到子图ax1上
fig = sm.graphics.tsa.plot_acf(white_noise, lags=40, ax=ax1)
ax2 = fig.add_subplot(313)
fig = sm.graphics.tsa.plot_pacf(white_noise, lags=40, ax=ax2)
# Q检验
# 方法四: Q检验
r, q, p = sm.tsa.acf(white_noise, qstat=True)
data = np.c_[range(1, 41), r[1:], q, p]
table = pd.DataFrame(data, columns=['lag', 'AC', 'Q', 'Prob(>Q)'])
# Prob(>Q)即P值大部分都小于0.05,所以残差不是白噪声
print(table.set_index('lag'))
结果:
# 所有p值均大于0.05,接受原假设,无自相关
AC Q Prob(>Q)
lag
1.0 -0.053581 1.444106 0.229476
2.0 -0.035057 2.063523 0.356379
3.0 0.019875 2.263020 0.519642
4.0 -0.090659 6.422228 0.169757
5.0 -0.033935 7.006166 0.220182
6.0 0.039397 7.794804 0.253525
7.0 -0.022411 8.050520 0.328160
8.0 0.003968 8.058555 0.427771
9.0 -0.003797 8.065924 0.527517
10.0 0.012976 8.152174 0.613976
11.0 -0.036736 8.844892 0.636207
12.0 -0.039704 9.655727 0.646135
13.0 0.063198 11.714204 0.551207
14.0 -0.008406 11.750700 0.626316
15.0 0.038352 12.511923 0.639940
16.0 -0.054281 14.039908 0.595741
17.0 0.036416 14.729058 0.614990
18.0 0.016817 14.876331 0.670441
19.0 0.009264 14.921114 0.727598
20.0 0.012574 15.003787 0.776191
21.0 0.036801 15.713474 0.785528
22.0 0.096809 20.634780 0.543397
23.0 -0.007945 20.667993 0.601355
24.0 0.026049 21.025813 0.637202
25.0 0.012579 21.109430 0.686492
26.0 -0.006985 21.135263 0.734949
27.0 -0.000977 21.135769 0.779888
28.0 -0.038148 21.909656 0.785457
29.0 -0.026059 22.271533 0.808775
30.0 0.001191 22.272290 0.843957
31.0 -0.048612 23.536971 0.828974
32.0 0.051610 24.965517 0.807423
33.0 0.015994 25.103009 0.836132
34.0 -0.072480 27.932592 0.758828
35.0 0.052761 29.435216 0.733409
36.0 -0.008378 29.473186 0.770772
37.0 0.020629 29.703893 0.797410
38.0 0.004526 29.715024 0.829389
39.0 0.026392 30.094271 0.846185
40.0 -0.030071 30.587678 0.858200