热线电话:13121318867

登录
首页精彩阅读时间序列分析:对非平稳时间序列进行建模
时间序列分析:对非平稳时间序列进行建模
2016-06-15
收藏

编者按

曾经有位小伙伴在公众号留言提问:如何做时间序列分析?最近C君发现了一篇文章,也许可以解答这个问题,收录在此,以飨读者。本文来自于数据人网。

如果你有数据分析相关的问题,也可以公众号留言提问,说不定C君可以帮你找到答案。发现优质文章,也可以推荐给C君。祝,学习快乐~

在这篇博客中,我将会简单的介绍一下时间序列分析及其应用。这里,我们将使用匹兹堡大学的教授David Stoffer所开发的R包astsa进行时间序列分析。而与之相关的课本,可以在Time Series Analysis and Its Applications (http://www.stat.pitt.edu/stoffer/tsa3/tsa3EZ.pdf,在浏览器打开此链接可直接下载,编者注)这里找到它的电子书,而且是免费的,它对于任何对这个话题感兴趣的读者都有一定的帮助。

时间序列就是一串基于具体时间区间的观察值。它在经济预测这块用有广泛的应用,而在预测未来一段时间的天气方面也有很广泛的应用。时间序列分析的本质就是利用一个具体的过往的观测值来预测未来的观测值。

首先,我们下载和加载一下astsa包。


我们现在利用数据集gtemp数据集进行检验,它通过预测1880-2009年的气温变化,来预测1951-1980年的平均气温。


得到gtemp图:



在建模之前,我们要检验一下这个时间序列是否平稳。如果一个时间序列是平稳的,它要满足三个条件:

1.常数均值稳定在t。

2.常数方差稳定在t。

3.两个观察值之间的自协方差仅由两个观测值之间的距离来决定,它可用log(h)来表示。

现实生活中,一般的数据通常都不完全满足上面的三个条件,除非这个数据集用与白噪声测量。从我们的肉眼来观察,gtemp里的时间序列是非平稳的。其均值是波动的,而且这个是很明显的上升趋势。不过,其方差就比较平稳了。

我们可以使用acf2()函数来进一步的检测它。如果它是平稳的,ACF/PACF图所显示的将会是在最前面的一小部分点之间的相关性小幅度波动以后就开始急剧的下降。

这个蓝色的虚线描述了每个时间间隔的极值。显而易见的,这个时间序列是非平稳的,尤其是那些数值较大的过往观测值与未来的值是相关的。尽管回归方法允许给这个数据集的时间序列拟合一条光滑的曲线,时间序列所关注的就是除去尽可能多的趋势来确认回归线所抓取不到的信息的潜在因子。

对于所有的t值,我们将从Xt中减去Xt-1以实现数据序列从非平稳转为平稳。这种方法叫差分化,并且可通过diff()函数来实现。


这看起来需要点技巧,这时,我们在1个时间间隔后面出去所有显著相关性。是时候使用sarima()函数来建立时间序列模型了。serima()函数有3个基本参数(q,d,p),它们分别表示自回归序列、差分度、移动平均序列。如果你对这些术语不熟悉,我建议你快速浏览这篇文章:Auto-regressive-moving-average model(https://en.wikipedia.org/wiki/Autoregressive%E2%80%93moving-average_model)。

ACF/PACF图告诉我们我们使用了多少参数度。如果ACF图是光滑的、几何衰减的而且PACF在log(p)处中止,我们应当使用纯AR(p)模型。给定ACF的模式没有展示出它是光滑衰减的,而衰减度也在1个区间以后就变得不再显著。于是,我们建立MA(1)模型来拟合这些数据。我们选择d=1作为我们的差分度,其原因则源于diff()函数。

从我们建立的模型,可以看到,这种拟合效果很不错。其残差在0左右徘徊而QQ图里,除了末尾各别数据点距离较大以外,整体的拟合效果还不错。我们现在对我们的ARIMA模型来预测2010-2015年这5年的大致趋势。蓝线标记了其中的标准误差。


模型的拟合效果相当不错。

这个模型的状态转换给原始数据集gtemp里的一些趋势进行了中和,研究者们则通过分析先前没注意到的一个成分来增强模型的预测能力。

译文来源 | 数据人网

原文链接:http://datascienceplus.com/time-series-analysis-building-a-model-on-non-stationary-time-series/

译文链接:http://shujuren.org/article/147.html




数据分析咨询请扫描二维码

最新资讯
更多
客服在线
立即咨询