Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >时间序列分析:对非平稳时间序列进行建模

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

作者头像
CDA数据分析师
发布于 2018-02-24 08:40:06
发布于 2018-02-24 08:40:06
3.8K0
举报
文章被收录于专栏:CDA数据分析师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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一阶差分序列garch建模_时间序列分析
趋势变动:在长时期内按某种规则稳定地呈现出来的持续向上或向下或保持在某一水平。季节变动:在一个年度内重复出现的周期性波动。它是诸如气候条件、生产条件、节假日或人们的风俗习惯等各种因素影响的结果。循环波动:是时间序列呈现出得非固定长度的周期性变动。循环波动的周期可能会持续一段时间,但与趋势不同,它不是朝着单一方向的持续变动,而是涨落相同的交替波动。不规则波动(随机变动):是许多不可控的偶然因素共同作用的结果,致使时间序列产生一种波浪形或震荡式的变动。
用户7886150
2021/01/30
1.9K0
数据挖掘之时间序列分析[通俗易懂]
1、时间序列分析之前,需要进行序列的预处理,包括纯随机性和平稳性检验。根据检验结果可以将序列分为不同的类型,采取不同的分析方法。
全栈程序员站长
2022/06/25
2.7K0
数据挖掘之时间序列分析[通俗易懂]
打开我的收藏夹 -- Python时间序列分析篇
这两天,又接收到了不少新的讯息。我是越来越佩服“梦想橡皮檫”,檫哥了(打开周榜/总榜很好找,前排),他居然能用几年的时间来打磨一个系列。别说收39块,就是原价99我也买了,不为啥,就凭人家打磨了三年的毅力,我服!!!
看、未来
2021/09/18
7920
【机器学习 | 数据挖掘】时间序列算法
智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘,以提取有价值的信息和洞察。它结合了大数据技术、人工智能(AI)、机器学习(ML)和数据挖掘等多种方法,旨在通过自动化的方式分析复杂数据集,发现潜在的价值和关联性,实现数据的自动化处理和分析,从而支持决策和优化业务流程。与传统的人工分析相比,智能大数据分析具有自动化、深度挖掘、实时性和可视化等特点。智能大数据分析广泛应用于各个领域,包括金融服务、医疗健康、零售、市场营销等,帮助企业做出更为精准的决策,提升竞争力。 【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/Intelligent_bigdata_analysis。
Francek Chen
2025/01/22
1260
【机器学习 | 数据挖掘】时间序列算法
测试时间序列的40个问题
时间序列预测与建模在数据分析中起着重要的作用。时间序列分析是统计学的一个分支,广泛应用于计量经济学和运筹学等领域。这篇技能测试文章是为了测试你对时间序列概念的了解程度。
磐创AI
2020/07/10
1.5K0
测试时间序列的40个问题
【时序预测】一文梳理时间序列预测——ARMA模型
在统计研究中,常用按时间顺序排列的一组随机变量X1​,X2​,⋯,Xt​,⋯来表示一个随机事件的时间序列,简记为{Xt,t∈T}。在时间的角度上来说,数据类型可分为两类:横截面数据和时间序列[1]。横截面数据是值在某一时间点搜集来自不同对象的数据,时间序列是一组按照时间排序的数据;横截面数据与时间序列的组合在计量经济学上构成了面板数据集。
roganhuang
2020/07/22
18.8K0
【时序预测】一文梳理时间序列预测——ARMA模型
时间序列分析算法【R详解】
简介 在商业应用中,时间是最重要的因素,能够提升成功率。然而绝大多数公司很难跟上时间的脚步。但是随着技术的发展,出现了很多有效的方法,能够让我们预测未来。不要担心,本文并不会讨论时间机器,讨论的都是很实用的东西。 本文将要讨论关于预测的方法。有一种预测是跟时间相关的,而这种处理与时间相关数据的方法叫做时间序列模型。这个模型能够在与时间相关的数据中,寻到一些隐藏的信息来辅助决策。 当我们处理时序序列数据的时候,时间序列模型是非常有用的模型。大多数公司都是基于时间序列数据来分析第二年的销售量,网站流量,
Angel_Kitty
2018/04/09
2.7K0
时间序列分析算法【R详解】
R语言使用ARIMA模型预测股票收益时间序列
“预测非常困难,特别是关于未来”。丹麦物理学家尼尔斯·波尔(Neils Bohr)
拓端
2022/06/08
2.5K0
R语言使用ARIMA模型预测股票收益时间序列
用python做时间序列预测十:时间序列实践-航司乘客数预测
陆陆续续写了10篇时间序列相关的文章了,本系列主要是应用为主,包括初识概念、时间序列数据可视化、时间序列分解、平稳/非平稳时间序列、时间序列缺失值处理、相关函数图/偏相关函数图/滞后图、时间序列复杂度量化、Granger causality test(格兰杰因果检验)、ARIMA模型简介、时间序列实践-航司乘客数预测。 暂时先记录到这里,后续应该还会补充一些,比如基于深度学习的时间序列预测等。
程序员一一涤生
2020/06/16
4.1K0
通过 Python 代码实现时间序列数据的统计学预测模型
Autoregressive Integrated Moving Average model (ARIMA),差分整合移动平均自回归模型。ARIMA(p,d,q)主要包含三项:
deephub
2020/05/09
2.1K0
通过 Python 代码实现时间序列数据的统计学预测模型
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格|附代码数据
时间序列分析是统计学中的一个主要分支,主要侧重于分析数据集以研究数据的特征并提取有意义的统计信息来预测序列的未来值
拓端
2022/12/21
1.4K0
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
最近我们被客户要求撰写关于ARIMA-ARCH / GARCH预测的研究报告,包括一些图形和统计输出。时间序列分析是统计学中的一个主要分支,主要侧重于分析数据集以研究数据的特征并提取有意义的统计信息来预测序列的未来值
拓端
2022/12/06
1.4K0
时间序列预测的20个基本概念总结
时间序列数据是有序的。这意味着观察/数据点依赖于以前的观察/数据点。因此,在模型训练期间,数据点顺序不会被打乱。
deephub
2023/08/30
7910
时间序列预测的20个基本概念总结
最完整的时间序列分析和预测(含实例及代码)
在生产和科学研究中,对某一个或者一组变量 进行观察测量,将在一系列时刻所得到的离散数字组成的序列集合,称之为时间序列。
润森
2022/09/22
4.2K0
最完整的时间序列分析和预测(含实例及代码)
数学建模学习笔记(二十一)时间序列小白指南(上)
其中Y是预测对象的观测值,Z为误差。作为预测对象Yt受到自身变化的影响 简单的说,AR就是自己和自己的过去比较进行预测 2、移动平均模型(MA) 特点: 关注自回归模型中的误差项的累加; 能有效消除预测中的随机波动; q阶滑动平均:
zstar
2022/06/14
5200
数学建模学习笔记(二十一)时间序列小白指南(上)
AR(I)MA时间序列建模过程——步骤和python代码
1.异常值和缺失值的处理 这绝对是数据分析时让所有人都头疼的问题。异常和缺失值会破坏数据的分布,并且干扰分析的结果,怎么处理它们是一门大学问,而我根本还没入门。 (1)异常值 3 ways to remove outliers from your data https://ocefpaf.github.io/python4oceanographers/blog/2015/03/16/outlier_detection/ 提供了关于如何对时间序列数据进行异常值检测的方法,作者认为移动中位数的方法最好,代码
机器学习AI算法工程
2018/03/14
4.1K0
AR(I)MA时间序列建模过程——步骤和python代码
【时序预测】时间序列分析——时间序列的平稳化
将非平稳时间序列转化成平稳时间序列,包含三种类型:结构变化、差分平稳、确定性去趋势。本文脉络框架如下:
roganhuang
2020/07/22
11.8K0
【时序预测】时间序列分析——时间序列的平稳化
时间序列预测模型-ARIMA原理及Python实现!
再介绍本篇的内容之前,我们先来看一下本文用到的数据。本文用到的中国银行股票数据下载:http://pan.baidu.com/s/1gfxRFbH。
石晓文
2018/12/06
14.7K1
深入机器学习系列之时间序列分析
时间序列指的是按时间顺序排列的一组数字序列,而时间序列分析就是利用这组数列,应用数理统计方法加以处理,从而来预测未来事物的发展。该分析方法属于定量预测方法,既承认事物发展的延续性,应用历史数据即可推测事物发展趋势;其次也考虑了事物发展的随机性,为此要利用统计分析中各种方法对历史数据进行处理。目前该方法常应用在国民经济宏观控制、企业经营管理、区域综合发展规划、气象预报和环境污染控制等各个方面。
数据猿
2019/08/06
2.7K0
机器学习(十一)时间序列模型
AR模型(自回归模型),是统计上一种处理时间序列的方法,用同一变数例如x的之前各期,亦即x1至xt-1来预测本期xt的表现,并假设它们为一线性关系。因为这是从回归分析中的线性回归发展而来,只是不用x预测y,而是用x预测 x(自己);所以叫做自回归。
致Great
2018/10/08
3.6K0
机器学习(十一)时间序列模型
推荐阅读
相关推荐
一阶差分序列garch建模_时间序列分析
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档