专栏首页CDA数据分析师时间序列分析:对非平稳时间序列进行建模

时间序列分析:对非平稳时间序列进行建模

编者按 曾经有位小伙伴在公众号留言提问:如何做时间序列分析?最近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

本文分享自微信公众号 - CDA数据分析师(cdacdacda),作者:Beau Lucas

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 访谈 | 与吉林大学统计系教授聊聊时间序列分析

    本文由经管之家CDA数据分析师独家整理,转载请注明来源 前不久,经管之家邀请到了吉林大学数据学院概率统计系教授朱复康博士参与了论坛的线上互动问答,与广大坛友就时...

    CDA数据分析师
  • 译文|大数据分析八大趋势!

    Intuit数据工程副主管Loconzolo双脚都已经迈进数据湖里了。Smarter Remarketer首席数据科学家DeanAbbott也为云技术的发展指出...

    CDA数据分析师
  • R语言学习由浅入深路线图

    对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来。当然,这不是最好的学习方式,最好的...

    CDA数据分析师
  • 时间序列数据(上)

    总第92篇 01|时间序列定义: 时间序列是按照一定的时间间隔排列的一组数据,其时间间隔可以是任意的时间单位,如小时、日、周月等。比如,不同时间段某产品的用...

    张俊红
  • 开发 | 如何把时间序列问题转化为监督学习问题?通俗易懂的 Python 教程

    AI科技评论按:本文作者 Jason Brownlee 为澳大利亚知名机器学习专家,对时间序列预测尤有心得。原文发布于其博客。 Jason Brownlee ...

    AI科技评论
  • 生物信息学初识篇——第二章:序列比对(5)

    在 EMBL Clustal Omega 比对结果的 Result Summary 标签下有Jalview按钮。这个按钮可以快速启动 Jalview,但这里启动...

    DoubleHelix
  • 2️⃣ 双序列比对(1):算法及数据库

    注意:动态规划和BLAST适用于不同比对情况。前者适合较少量序列间比对,BLAST适合从一组大量序列中搜索与查询相似的序列

    Y大宽
  • 数据分析之时间序列分析

    顾名思义,时间序列就是按照时间顺利排列的一组数据序列。时间序列分析就是发现这组数据的变动规律并用于预测的统计技术。该技术有以下三个基本特点:

    黄成甲
  • 【Time Series】时间序列基本概念

    最近一直在接触时间序列,所以打算写一些有关时间序列的文章,预测部分会从规则开始、到传统模型、到机器学习、再到深度学习,此外也会介绍一些时间序列的基本概念,包括自...

    阿泽 Crz
  • 如何把时间序列问题转化为监督学习问题?通俗易懂的 Python 教程

    AI 研习社按:本文作者 Jason Brownlee 为澳大利亚知名机器学习专家,对时间序列预测尤有心得。原文发布于其博客。AI 研习社编译。 ? Jaso...

    AI研习社

扫码关注云+社区

领取腾讯云代金券