专栏首页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数据分析师

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 【时序预测】时间序列分析——时间序列的平稳化

    将非平稳时间序列转化成平稳时间序列,包含三种类型:结构变化、差分平稳、确定性去趋势。本文脉络框架如下:

    roganhuang
  • 用python做时间序列预测四:平稳/非平稳时间序列

    1、序列的均值(mean)不应该是时间的函数(意思是不应该随时间变化),而应该是一个常数。下面的左图满足这个条件,而右图的均值受时间的变化影响。

    程序员一一涤生
  • 时间序列分析这件小事(六)--非平稳时间序列与差分

    之前我们说明了怎么样的时间序列是序列平稳的,但是世界并不是那么美好,很多时间序列都不是平稳序列,所以这里就要求我们做一些处理了。

    钱塘小甲子
  • 一阶差分序列garch建模_时间序列分析

    趋势变动:在长时期内按某种规则稳定地呈现出来的持续向上或向下或保持在某一水平。季节变动:在一个年度内重复出现的周期性波动。它是诸如气候条件、生产条件、节假日或人...

    用户7886150
  • R中季节性时间序列分析及非季节性时间序列分析

    ①SAM(Simple Moving Average) 简单移动平均,将时间序列上前n个数值做简单的算术平均。 SMAn=(x1+x2+…xn)/n

    Erin
  • 模拟ARCH过程模型分析时间序列平稳性、波动性

    在事物的发展过程中,常表现出复杂的波动情况,即时而波动的幅度较缓,而又时常出现波动集聚性(VolatilitY clustering),在风险研究中经常遇到这种...

    拓端
  • 利用python实现平稳时间序列的建模方式

    假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列进行建模。建模的基本步骤如下:

    砸漏
  • 时间序列建模三部曲

    与大多数高级分析解决方案不同,时间序列建模是一种低成本解决方案,可提供强大的洞察力。

    拓端
  • Python用广义加性模型GAM进行时间序列分析

    每当你发现一个与时间对应的趋势时,你就会看到一个时间序列。研究金融市场表现和天气预报的事实上的选择,时间序列是最普遍的分析技术之一,因为它与时间有着不可分割的关...

    拓端
  • 使用Mfuzz进行时间序列表达模式聚类分析

    在之前的文章中,我们介绍了STEM软件,针对时间序列的数据,可以进行基因表达模式聚类分析,本文介绍另外一个功能相同的R包Mfuzz。这个R包的地址如下

    生信修炼手册
  • R语言混合时间模型预测对时间序列进行点估计

    混合预测 - 单模型预测的平均值 - 通常用于产生比任何预测模型更好的点估计。我展示了如何为混合预测构建预测区间,这种预测的覆盖范围比最常用的预测区间更准确(即...

    拓端
  • 使用R语言进行时间序列(arima,指数平滑)分析

    您要分析时间序列数据的第一件事就是将其读入R,并绘制时间序列。您可以使用scan()函数将数据读入R,该函数假定连续时间点的数据位于包含一列的简单文本文件中。

    拓端
  • R语言进阶之时间序列分析

    时间序列分析虽然主要应用于经济领域,但它作为一种分析时间依赖性变量之间关系的重要方法,值得我们去学习。就像孟德尔随机化里的工具变量方法那般,虽然它起自计量经济学...

    生信与临床
  • 时间序列建模的时间戳与时序特征衍生思路

    时间序列模型在我们日常工作中应用的场景还是会很多的,比如我们去预测未来的销售单量、预测股票价格、预测期货走势、预测酒店入住等等,这也是我们必须要掌握时序建模的原...

    Sam Gor
  • 数据分析之时间序列分析

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

    黄成甲
  • python3用ARIMA模型进行时间序列预测

    ARIMA是首字母缩写词,代表自动回归移动平均。它是一类模型,可在时间序列数据中捕获一组不同的标准时间结构。

    拓端
  • Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

    在训练集中,我们有1017209个观察值和9列/变量。 在测试集中,我们有41088个观测值和8列/变量。 在商店集中,我们有1115个观察值和10列/变量。

    拓端
  • 用Python进行时间序列分解和预测

    本文介绍了用Python进行时间序列分解的不同方法,以及如何在Python中进行时间序列预测的一些基本方法和示例。

    Datawhale
  • Python时间序列分析简介(1)

    实时更新的数据需要额外的处理和特殊照顾,才能为机器学习模型做好准备。重要的Python库Pandas可用于大部分工作,本教程将指导您完成分析时间序列数据的整个过...

    计算机与AI

扫码关注云+社区

领取腾讯云代金券