你的序列均值为零吗?
方差随时间变化吗?
值与延迟值相关吗?
你可以用一些工具来检查你的时间序列是否为白噪音:
创建一个折线图。检查总体特征,如变化的平均值,方差或延迟变量之间的明显关系。
计算汇总统计。对照序列中有意义的连续块的均值和方差,检查整个序列的均值和方差(如年、月、日)。
创建一个自相关的图。检查延迟变量之间的总体相关性。
白噪声时间序列的例子
在本节中,我们将使用Python创建一个高斯白噪声序列并做一些检查。它有助于在实践中创建和评估白噪声时间序列。它将提供参考框架和示例图并且使用和比较自己的时间序列项目的统计测试,以检查它们是否为白噪声
首先,我们可以使用随机模块的gauss()函数创建一个1,000个随机高斯变量的列表。
我们将从高斯分布提取变量:平均值(mu)0.0和标准偏差(sigma)1.0。
一旦创建,为方便起见,我们可以在Pandas序列中打包这个列表。
from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plot
# seed random number generatorseed(1)# create white noise series
series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)
接下来,我们可以计算和打印一些汇总统计数据,包含序列的平均值和标准偏差。
# summary statsprint(series.describe())
鉴于我们在绘制随机数时定义了平均值和标准偏差,所以应该不会有意外。
count 1000.000000mean -0.013222std 1.003685min -2.96121425% -0.68419250% -0.01093475% 0.703915max 2.737260
我们可以看到平均值接近0.0,标准偏差接近1.0。考虑到样本较小预测会有些误差。
如果我们有更多的数据,将序列分成两半计算和比较每一半的汇总统计可能会更有趣。我们认为每个子系列的平均值和标准差都会相似。
现在我们可以创建一些序列的线条图。
# line plot
series.plot()pyplot.show()
我们可以看到,这个序列似乎是随机的。
我们还可以创建直方图,并确认分布是高斯分布。
# histogram plot
series.hist()pyplot.show()
事实上,直方图显示了典型的钟形曲线。
最后,我们可以创建一个自相关图并检查延迟变量的所有自相关。
# autocorrelationautocorrelation_plot(series)pyplot.show()
自相关图没有显示任何显著的自相关特征。在峰值时可信度达在95%和99%,但这只是统计的偶然情况。
为了完整性,下面提供了完整的代码清单。
from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plotfrom matplotlibimport pyplot
# seed random number generatorseed(1)# create white noise series
series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)# summary statsprint(series.describe())# line plot
series.plot()pyplot.show()# histogram plot
series.hist()pyplot.show()# autocorrelationautocorrelation_plot(series)pyplot.show()