时间序列分析:指数平滑和ARIMA模型
时间序列分析
- 一、基本知识
- 1、时间序列的基本概念
- 2、时间序列分解模型
- 3、时间序列分解的举例--某产品销售数据分析
- 二、七种指数平滑模型
- 模型一:简单模型(Simple)
- 模型二:线性趋势模型(Holt线性趋势模型)
- 模型三:布朗线性趋势模型(Brown线性趋势模型)
- 模型四:阻尼趋势模型
- 模型五:简单季节性模型
- 模型六:温特加法模型
- 模型七:温特乘法模型
- 三、一元时间序列分析的模型
- 1、基本的理解
- 2、一元时间序列分析的模型:AR( P)模型
- 3、一元时间序列分析的模型:MA(Q)模型
- 4、ARMA(p.q)模型
- 5、ARIMA模型(不平稳时间序列)
- 6、SARIMA模型
- 7、如何识别AR、MA和ARMA模型?
- (一)那是否可以通过ACF和PACF图直接识别出模型?
- (二)那么多的模型要怎么选?-- AIC和BIC准则(选小原则)
- (三)如何检验模型的识别完整性?
- 四、例题
- 1、例题:销售数据预测
- 2、例题:上证指数的预测
- 附:常用的评价指标
时间序列也成为动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列分析大致可以分为三大部分,分别是描述和过去、分析规律和预测未来。
一、基本知识
1、时间序列的基本概念
(1)时间序列也称为动态序列,是将某种现象的指标数值按照时间顺序排列而成的数值序列。
(2)时间序列分析顾名思义处理的是时间序列数据,对于同一对象在不同时间连续观察所取得的数据称作时间序列数据。例如从出生到现在你的体重数据。
(3)时间序列有两个组成要素:一个是时间要素:年、季度、月、周、日、小时、分钟、秒(如果是以分钟和秒作为时间要素,那么这类型数据称作高频数据);另一个事数值要素。
(4)时间序列有两个组成要素,可以根据这两个组成要素性质的不同,可以将其分为时期时间序列和时点时间序列两种类型的时间序列数据:
时期序列
数值要素反映现象在一定时期内发展的结果;例如,中国历年来GDP的数据
时点数据
数值要素反映现象在一定时点上的瞬间水平;例如,从出生到现在你的体重数据(每年生日称一次)、在某个地方每个一小时测得的温度数据。
那如何区分时期序列数据和时点序列数据?-- 事其序列数据可加,时点数据不可加
事其序列中的观测值反应现象在一段时期内发展的过程的总量,不同事其的观测值可以相加,相加的结果表明现象在更长的一段时间内的活动总量(就比如上面的中国历年来的GDP数据,若将两年的GDP相加,那么就代表两年内GDP的一个总的量);但是对于每个小时的温度数据,将两个小时的温度相加并没有什么意义。
(5)时间序列分解:一个时间序列数据反应某个指标数值长期变化的数值表现,所以时间序列数值变化背后必然蕴含着数值变化的规律性,而这些规律性就是时间序列分析的切入点,在通常的情况下时间序列的数值变化规律会分解为4种:
- 长期变动趋势(T):长期趋势是指统计指标在先钢厂的一段时间内,受到长期趋势影响因素的影响,表现出持续上升或者是持续下降的趋势;例如:随着国家经济的发展,人均收入将逐渐提升。
- 季节变动规律(S):季节趋势是指由于季节的转变值得指标数值发生周期性变动。这里的姐姐事广义的,一般是指以月、季、周为时间单位的,并且不能以年作为单位。例如,雪糕的销量会随着季节气温的变化而周期变化。
- 周期变动规律(C):循环变动通常以若干年为周期,这种周期变动的特征表现为增加和减少的交替出现,但是并不具严格规则的周期性连续变动。例如,市场经济的商业周期和整个国家的经济周期。
- 不规则变动(随机扰动项)I:不规则变动是指某些随机因素导致的数值变化,这些因素的作用事不可预知和没有规律性的,可以视为由于众多的偶然因素对时间序列造成的影响(就是回归种的扰动项)
2、时间序列分解模型
一个时间序列的变化可能是由上述四种变动中的一种或者是多种叠加影响而成的,四种变动与指标数值最终变动的关系可能是叠加关系,也可能是乘积关系。
时间序列分解有两种模型
叠加模型:如果这四种变动之间是相互独立的关系,那么叠加模型可以表示为:
Y = T + S + C + I
乘积模型:如果这四种变动之间存在相互影响关系,那么应该使用乘积模型:
Y = T * S * C * I
PS :Y指指标数值的最终变动;T长期趋势变动;S季节变动;C循环变动;I不规则变动
同时要注意的是:
举个例子便于理解叠加模型和乘积模型
百度指数
销售数据受季节的影响
3、时间序列分解的举例–某产品销售数据分析
第一步:导入数据,定义时间变量
第二步:做时序图
通过时序图可以得到的结论是:销量有向上的趋势,并且第二季度的销量明显高于其他季度,因此数据表现出很强的季节性。随着时间的变暖,销量数据的季节波动变化不大,因此可以使用叠加分解模型。
第三步:对时序图中体现出的季节性进行一个分解
通过上面的季节因子表格可知:第一第二季度的季节因子为正,第三第四季度的季节因子为负,这说明该产品第一二季度的平均销量要高于第三第四季度,且第二节度的平均销量要高于全年平均水平20.930件,第四季度的平均销量要低于全年平均水平19.727件。
上面使用的是叠加模型分解,在叠加分解中季节因子的和为0,如果是使用乘法分解模型,它的季节因子的积为1,乘法分解的结果为:
乘法分解模型的季节因子的积为1,通过上面的系数表,可以得到的结论是:第二季度的季节因子为1.206,则表示第二季度的平均销量是全年平均销量的1.206倍
第四步:以分解出的四个变动数值作为纵轴,画出分解后的时序图
二、七种指数平滑模型
时间序列大致分为描述过去(描述时间序列的动态变化)、分析规律(揭示时间序列数值变化背后的规律)和预测未来(依据数值变化规律预测未来数值趋势),这里记录七种时间序列分析模型。
在上面我们对时序数据进行了分解,那么分解后的数据就可用于时间序列的分析。
在实际应用中我们主要使用SPSS中的专家建模器来查找每个相依序列的最佳拟合模型,在制定了自变量后,专家建模器会为ARIMA模型中的内容选中与该相依序列具有统计显著关系的模型。适当的情况下,会使用差分或屏风跟或自然对数转化对模型变量及逆行转换。在缺省情况下,专家建模器还会考虑指数平滑法模型,也会考虑ARIMA模型。
模型一:简单模型(Simple)
(其实我在想Smiple模型的特点是不是和马氏链模型有点像?它俩能不能融合使用哇,但是马氏链模型我还不是很熟,后面学完马氏链后可以考虑将他两融合一下啥的?)
简单模型的一个缺点:
简单模型由于它本身的限制,它只能预测一期的数值。
可以看到的是,假设我们有2013年的之前的数据,现在要预测2014年后的数据,如果SPSS为我们选中的是简单模型,那么它只能预测一期(也就是2014年)的数据,后面的数据都是一样的。
原因:
模型二:线性趋势模型(Holt线性趋势模型)
模型三:布朗线性趋势模型(Brown线性趋势模型)
布朗线性趋势模型是Holt线性趋势模型的特例,就是在其基础上让水平的平滑参数等于趋势的平滑参数。
模型四:阻尼趋势模型
所谓线性趋势逐渐减弱,就比如人口,他不可能是线性的无限增长,在达到一定程度后,他会达到饱和,就不再是一个线性的增长,此时就会引入一个阻尼,是的它增长的线性趋势减弱。
举个例子:
在添加完阻尼后,在后期它的线性趋势会降低,预测线会趋于平缓。
模型五:简单季节性模型
模型六:温特加法模型
模型七:温特乘法模型
三、一元时间序列分析的模型
1、基本的理解
- 时间序列的平稳性:PS:由于严格平稳的要求过于苛刻,所以在一元时间序列分析中提到的平稳如果没有特殊的说明默认满足弱平稳。
- 白噪声序列:白噪声序列是平稳的时间序列的一个特例。
- 差分方程还涉及到一个“差分方程的齐次部分”的概念,我们将在差分方程中只包含该变量自身和它滞后项的式子称作差分方程的齐次部分。例如上面式子中的红色部分。
- 差分方程的特征方程:
- 滞后算子
2、一元时间序列分析的模型:AR( P)模型
AR§模型平稳的条件
AR模型要求时间序列是一个平稳的,如果不平稳,则需要通过差分将数据变成平稳的时间序列。举个例子
3、一元时间序列分析的模型:MA(Q)模型
与AR§模型不同的是MA模型是对扰动项进行自回归。
MA(Q)模型的平稳性
即:只要Q是常数,那么MA(Q)模型一定是平稳的。
MA模型和AR模型的关系
(其实MA模型的引入是为了简化AR)
4、ARMA(p.q)模型
将AR和MA两个模型结合起来,然后总式子使用滞后算子表示。
ARMA(p.q)模型的平稳性
由于ARMA模型是AR和MA两个模型的相加,在MA模型中只要q是常数那么模型就是平稳的,所以我们只用判断AR模型是否平稳即可,所以ARMA模型的平稳性判断方法和AR的判断方法一样。
5、ARIMA模型(不平稳时间序列)
在上面的AR和MA模型、ARMA模型中,我们讨论的都是平稳的时间序列,然而时间序列可能是d阶的单位根过程,于是乎,我们需要先对数据进行差分处理,将其转换为平稳的时间序列后在进行建模。
这里的I就是差分:
6、SARIMA模型
就是在ARIMA的基础上添加了季节性的参数。
7、如何识别AR、MA和ARMA模型?
在上面学习了三个一元时间序列模型,那么对于一个时间序列数据应该如何识别所使用的模型?则需要通过两个系数:
- ACF自相关系数
- PACF偏自相关系数
PS:ACF和PACF两个系数使用的前提是数据为平稳的序列
AR(1)模型
MA(1)和MA(2)模型
ARMA(1,1)模型
通过上面的例子可以得出的结论是:
(一)那是否可以通过ACF和PACF图直接识别出模型?
通过上面得三幅图,同一个ARMA模型,模拟运行四次得到的PACF结果各不相同,所以ARMA模型的阶数很难正确识别。
(二)那么多的模型要怎么选?-- AIC和BIC准则(选小原则)
所以在实际得出的系数表中,我们一般只看BIC就可。
(三)如何检验模型的识别完整性?
对于一个模型,我们希望这个模型尽可能完全的识别出时间序列数据的规律,那么可以使用Q检验来检验识别模型的完整性。
Q检验用于判断残差是否为白噪声,如果是白噪声时间序列,那么模型已经完全识别出时间序列数据的规律,模型可以接受;如果不是白噪声,那么说明有部分数据还没有被模型所识别,需要修正模型(一般是剔除异常值啥的),识别出模型未识别的信息。
四、例题
1、例题:销售数据预测
通过销售数据的时序图可知,数据并不平稳,有整体向上的趋势,并且数据为季度数据,从图中有季节性波动,即第二季度的销量较高,第四季度较低。
通过SPSS专家建模给出的最合适的模型是温特加法模型。模型使用温特加法模型意味着原时间序列数据含有线性趋势和稳定的季节成份,我们可以使用加法时间序列进行分解。
使用温特加法模型计算出的参数估计值表格
白噪声的残差检验
最后根据题目需求利用SPSS预测未来两年的销售数据。
2、例题:上证指数的预测
直接进行传统建模
对模型进行修正,剔除异常值重新进行建模
重新建模选择的模型:ARIMA(0,1,14)
显著性为0.210>0.05,无法拒绝原假设,残差为白噪声数据。
使用修正后的模型进行预测
附:常用的评价指标
时间序列分析:指数平滑和ARIMA模型相关推荐
- R时间序列分析|SP500股指的ARIMA模型预测与残差ARCH效应分析
R时间序列分析|S&P500股指的ARIMA模型预测与残差ARCH效应分析 前言 一.数据及分析目的 二.数据探索 三.ARIMA模型构建 四.残差分析 五.模型预测 前言 由于R语言对新手并 ...
- 时间序列分析--指数平滑法
一. 基础知识: 1. 概念:时间序列是指一个数据序列,特别是之由一段时间内采集的信号组成的序列,序列前面的信号表示采集的时间较早. 2. 前提假设:时间序列分析一般假设我们获得的数据在时域上具有一定 ...
- python 时间序列预测 指数平滑_转载: 时间序列分析--指数平滑法
参考文献: http://blog.csdn.net/u013527419/article/details/52822622?locationNum=7&fps=1 一. 基础知识: 1. 概 ...
- 时间序列分析-如何写出ARIMA模型的公式
根据之前分享的R语言时间序列分析步骤,得到最佳的模型拟合结果后,如何将p,d,q代入公式呢? 需要搞清楚的知识点有: ·ar,ma,arma,arima模型的公式,参考维基百科 ·滞后算子(表示前几期 ...
- QuantitativeFinance:量化金融之金融时间序列分析之ES/ETS/GARCH模型的简介、Box-Jenkins方法-AR/MA/ARMA/ARIMA模型的简介及其建模四大步骤之详细攻略
QuantitativeFinance:量化金融之金融时间序列分析之ES/ETS/GARCH模型的简介.Box-Jenkins方法-AR/MA/ARMA/ARIMA模型的简介及其建模四大步骤之详细攻略 ...
- 时间序列分析之holtwinters和ARIMA
原文:https://blog.csdn.net/huangtiao2509/article/details/78251101 时间序列是指按时间先后顺序排列的随机序列.所谓时间序列分析,就是根据有序 ...
- 时间序列进行分析的一些手法以及代码实现(移动平均、指数平滑、SARIMA模型、时间序列的(非)线性模型)
文章目录 1.移动平均 moving average方法 weighted average方法 2.指数平滑 单指数平滑 exponential_smoothing 双指数平滑 三指数平滑 Tripl ...
- 【Python数据分析】时间序列分析——AR/MA/ARMA/ARIMA
目录 一.时间序列的平稳性与差分法 1.时间序列的平稳性: 2.平稳性检验 3.纯随机性检验 4.差分法 二.平稳时间序列模型 1.AR模型 2.MR模型 3.ARMA模型 4.平稳时间序列建模步骤 ...
- python garch模型 forecast_Python时间序列分析--从线性模型到GARCH模型
目录 一.Motivation 二.基础知识 1.平稳性 2.序列相关(自相关) 3.为什么我们关心序列相关性? 三.白噪声和随机游动 四.线性模型 五.对数线性模型 六.AR模型(P) 七.移动平均 ...
最新文章
- C#精髓【月儿原创】第二讲 WMI完美秀出CPU编号厂商主频百分比等全部信息
- Docker镜像原理学习理解
- php 之 在win10-64 上搭建开发环境
- Java设计模式-建造者模式 理论代码相结合
- 设计模式-中介者模式(21)
- Spark2.x RPC解析
- 名称节点和数据节点作用
- Oracle游标 CURSOR实例详解
- kafka是如何创建topic的
- 计算机0表示负数,计算机原码反码补码_0
- CBLUE: A Chinese Biomedical LanguageUnderstanding Evaluation Benchmark
- linux中打zip命令,zip命令 - Linux命令大全 | linux教程
- Android底部小白条的解决方法
- 华为鸿蒙手机版要2021开源,鸿蒙系统再起疑云:开源版和手机版完全不同,后者还有安卓彩蛋...
- java 中PATH, -classpath, -Djava.library.path 的功能和区别
- 趣味数学:解24点游戏小技巧
- 浅谈“密码明文传输”
- g4600黑苹果efi_黑苹果硬盘引导的两种方式
- 循环n阶三角形 国信蓝点试题
- python抢票代码_如何使用python爬取抢票?
热门文章
- c++ 如何用一个函数实现两个字符串的比较
- dpi和ppi换算_DPI和PPI的计算公式
- BTC不同格式私钥的相互转换
- JS中(function(){xxx})(); 这种写法是什么意思?
- 一摞烙饼的排序问题--读书笔记(2)
- ROS发布静态tf变换
- C语言唐僧孙悟空白骨精游戏,Python--循环练习--唐僧大战白骨精小游戏
- 服务器任务栏不显示程序,win10系统下任务栏不显示程序窗口预览图怎么处理
- 习题整理——二叉树NOI1758、UVA679、UVA122
- 手机搜狐概念版 html,概念版来了 手机搜狐带你全新体验移动式阅读