时序分析:ARMA方法(平稳序列)
憔悴到了转述中文综述的时候了........
在统计学角度来看,时间序列分析是统计学中的一个重要分支, 是基于随机过程理论和数理统计学的一种重要方法和应用研究领域. 时间序列按其统计特性可分为平稳性序列和非平稳性序列. 目前应用最多的是Box一JenkinS
模型建模法, 它是由G.E.P.Box和英国统计学家G.M.JenkinS于1970年首次系统提出的.Box一JenkinS方法是一种较为完善的统计预测方法 , 他们的作用是为实际工作者提供了对时间序列进行分析、预测 , 以用对ARMA模型识别、估计和诊断的系统方法. 优点在于如果建立精确的模型后,并确定模型的系数之后,就可以根据有限的数据集对其发展进行预测 , 其中对于平稳性时间序列多采用ARMA模型
, 对于非平稳性时间序列模型常通过适当地变换 (如差分、取对数) 将它变为ARMA模型后再进行建模,这类模型Box一JenkinS称为ARI琳(求和自回归滑动平均模型) 。
参考链接:时序分析基础
一. 平稳时间序列模型
数据的预处理:
数据的预处理包括缺失值的补充、数据的平稳化及单位根检验.
平稳性
平稳性是时间序列分析中很重要的一个概念。一般的,我们认为一个时间序列是平稳的,如果它同时满足一下两个条件:
1)均值函数是一个常数函数。
2)自协方差函数只与时滞有关,与时间点无关。
以上面两个时间序列为例。两个序列均满足条件1),因为标准正态分布白噪声和其形成的随机游走的均值函数都是值恒为0的常数函数。再来看条件2)。白噪声的自协方差函数可以表述为:
可以看到只有在时滞为0时值为1,其它均为0,所以白噪声是一个平稳序列。
而随机游走我们上面分析过,其自协方差为:
很明显其自协方差依赖于时间点,所以是一个非平稳序列。
后面可以看到,一般的时间序列分析往往针对平稳序列,对于非平稳序列会通过某些变换将其变为平稳的,例如,对于随机游走来说,其一阶差分序列是平稳的(显然其一阶差分是白噪声)。
时序分析主要统计量
注意时间序列中的每一个元素都是一个普通的随机变量,如果忽略序列的时间性,那么我们面对的实际上是一个随机变量集合,所以从这个角度来说时间序列的统计分析与普通统计分析没有太大不同,相关的理论也是通用的。
对于随机变量集合来说,要完整描述其统计特性需要处理其多元联合分布,这是非常复杂的。所以实际我们往往做一些必要的简化假设,避免处理复杂的多元联合分布。
现假设我们有随机时间序列
下面先给出一些常用的统计量。后面会接着通过一些常见序列来举例说明各统计量如何计算。
均值
均值函数被定义为关于自变量t的函数:
t的均值函数值表示在t时刻随机变量Yt的期望。
方差
与均值类似,方差是t时刻序列元素的方差:
自协方差
自协方差是一个二元函数,其自变量为两个时间点,值是两个时间点上序列值的协方差:
当t=s时,自协方差就是t时刻的方差。
自相关系数
自相关系数是两个时刻的值的相关系数:
如果忽略元素来自时间序列这一事实,各统计量的意义实际上与普通的统计学中无异。因此这些统计量的一些性质也可以无缝推广到时间序列分析。例如期望的线性性质等等。如果有需要可以自行复习一下这些统计量的相关计算性质。后面的推导会主要集中于这几个统计量的计算。
常见的随机时间序列
常见的随机时间序列有:白噪音、布朗运动(随机游走)、
白噪声
考虑一个时间序列,其中每一个元素为独立同分布变量,且均值为0。这种时间序列叫做白噪声。之所以叫这个名字,是因为对这种序列的频域分析表明其中平等的包含了各个频率,和物理中的白光类似。
没有模式即是白噪音的模式,所谓的白噪音即是随机性的完全体现,即是不能从白噪音中发现任何模式。以下是一段代码:
Y = ts(rnorm(100, mean=0, sd=1));
plot(Y, family="simhei", main="白噪声", type="b", col="red");
abline(h=0)
其中共100个元素,每个元素都独立服从标准正态分布N(0,1)。可以从图中看出白噪声基本是在均值附近较为平均的随机震荡。
由于每个元素服从N(0,1),所以均值μt=0,方差σ2t=1。又因为每个元素独立,所以对于任何t≠s,γt,s=0,ρt,s=0。这些统计特征与对图像的直观观察基本一致。
白噪声的重要之处在于很多其它的重要时间序列都可以通过它构造出来,这一点下文会看到。我们一般用e表示白噪声,将白噪声序列写作:
布朗运动
下面考虑这样一个时间序列,其在t时刻的值是前面白噪声序列的前t个值之和,设{e1,e2,…,et,…}为标准正态分布产生的白噪声,则:
布朗运动的模式在于其位置是连续曲线,但曲线的处处不可微。
Y = ts(rnorm(100, mean=0, sd=1));
for (i in 2:length(Y)) {
Y[i] = Y[i] + Y[i-1];
}
plot(Y, family="simhei", main="随机游走", type="b", col="red");
abline(h=0)
可以看到随机游走比白噪声平滑很多,并且呈现出一些“趋势性”的感觉。下面分析其相关统计特征。
均值:μt=E(e1+⋯+et)=E(e1)+⋯+E(et)=0
方差:σ2t=Var(e1+⋯+et)=Var(e1)+⋯+Var(et)=tσ2
对协方差的计算需要用到一个协方差性质:
设t小于s,由于只有i=j时Cov(Yi,Yj)=σ2,所以:
自协方差:γt,s=tσ2
自相关系数:ρt,s=tσ2tsσ4√=ts√
从统计性质可以看到,随机游走的“趋势性”实际是个假象,因为其均值函数一直是白噪声的均值,不存在偏离的期望。但是方差与时间呈线性增长并且趋向于无穷大,这意味着只要时间够长,随机游走的序列值可以偏离均值任意远,但期望永远在均值处。
物理与经济学中的很多现象都被看做是随机游走,例如分子的布朗运动,股票的价格走势等等。
从协方差和相关系数看,如果起点t固定,则越接近的点相关性越大,例如ρ1,2=0.707,ρ1,3=0.577,ρ1,4=0.500。同时,起点不同,时滞相同自相关系数也不同,越往后同时滞自相关系数越大,例如ρ2,3=0.816,ρ3,4=0.866。
实际上从纯数学角度可以将自相关系数看成一个二元函数,自变量是时间点t和时滞s-t。认识到这点很重要,因为它与时间序列分析中一个重要的概念——平稳性有着密切的关系。
二、AR、MA、ARMA模型
4、AR、MA、ARMA认是平稳时间序列最主要的参数模型. AR模型的正则方程是一组线形方程 ,而MA和ARMA模型是非线性方程.Word分解定理告诉我们任何有限方差的ARMA或MA平移过程可以用可能是无限阶的AR模型表达;同样,任何ARMA或AR模型可以用可能是无限阶的撇模型表达.因此,如果在这三个模型中选一个与信号不匹配的模型,但只要模型的阶足够高,它能够比较好地逼近被建模的随机过程.三种模型中AR模型具有一系列好的性能,因此,是研究最多并获得广泛应用的一种模型。
三、模型用于预测
1.AR(n)模型预测
利用n之前的p个值对x(。)作预测,称之为“前向预测”,记为:
上标f表示前向预测(forwardprediction)·凡(,)表示在t时刻m步前向预测。利用自相关法、Burg算法、协方差、改进的协方差法等方法得到模型的参数后,就可以进行前向预测,利用预测值递推可依次得到多步预测值
2.MA(q)、ARMA(p,q)模型预测
MA(q)、ARMA(p,q)的外推预测一般都是将磁(q)、ARMA(p,q)模型转换为相应的高阶AR模型,再AR模型的预测公式进行外推预测.
3.预测误差
预测误差公式为:
线性最小方差预测的方差和预测步长l有关,而与预测的时间原点t无关.预测 步长l越大,预测误差的方差也越大,因而预测的准确度就会降低.所以一般不能用AR、MA和ARMA模型作为长期预测模型.
四、非平稳时间序列模型
...................................................
时序分析:ARMA方法(平稳序列)的更多相关文章
- 「IDEA插件精选」安利一个IDEA骚操作:一键生成方法的序列图
在平时的学习/工作中,我们会经常面临如下场景: 阅读别人的代码 阅读框架源码 阅读自己很久之前写的代码. 千万不要觉得工作就是单纯写代码,实际工作中,你会发现你的大部分时间实际都花在了阅读和理解已有代 ...
- python魔法方法-自定义序列
自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...
- python魔法方法-自定义序列详解
自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...
- C# 后台解析json,简单方法 字符串序列化为对象,取值
如果后台是一个JSON的字符串格式如下: string str = "{\"Success\":true,\"Msg\":\"成功!\&qu ...
- 时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理
在做很多与时间序列有关的预测时,比如股票预测,餐厅菜品销量预测时常常会用到时间序列算法,之前在学习这方面的知识时发现这方面的知识讲解不多,所以自己对时间序列算法中的常用概念和模型进行梳理总结(但是为了 ...
- ARIMA模型——本质上是error和t-?时刻数据差分的线性模型!!!如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理!ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数
https://www.cnblogs.com/bradleon/p/6827109.html 文章里写得非常好,需详细看.尤其是arima的举例! 可以看到:ARIMA本质上是error和t-?时刻 ...
- python基础之序列类型的方法——列表&元组
Hello大家好,我是python学习者小杨同学,上次跟大家分享关于python的数值类型和序列类型,本次就承接上一节的内容,说一说序列类型的方法. 序列类型的方法,简单的来说就是四个字:增删改查.随 ...
- 利用python实现平稳时间序列的建模方式
一.平稳序列建模步骤 假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列进行建模.建模的基本步骤如下: (1)求出该观察值序列的样本自相关系数(ACF)和样本偏 ...
- 第二章平稳时间序列模型——ACF和PACF和样本ACF/PACF
自相关函数/自相关曲线ACF AR(1)模型的ACF: 模型为: 当其满足平稳的必要条件|a1|<1时(所以说,自相关系数是在平稳条件下求得的): y(t)和y(t-s)的 ...
随机推荐
- 一个手机图表(echarts)折线图的封装
//定义一组颜色值,按顺序取出 var colorGroup = ["#6ca3c4","#76bfa3","#ea8f7a"," ...
- [bzoj3450]Tyvj1952 Easy[概率dp]
和之前一样考虑这个音符时x还是o,如果是x,是否是新的连续一段,对答案的贡献是多少$(a^2-{(a-1)}^2)$,然后递推就可以了. #include <bits/stdc++.h> ...
- How to change java version in Linux
How to change default Java version on Linux Posted on November 1, 2015 by Dan Nanni Leave a comment ...
- JDK(Java Development Kit)内置常用自带工具一览(转)
注意:可能随着JDK的版本升级,工具也会随着增多. JDK(Java Development Kit)是Java程序员最核心的开发工具,没有之一. JDK是一个功能强大的Java开发套装,它不仅仅为我 ...
- PMVS学习中学习c++
最近忙于PMVS算法的优化,在这个过程中把这个写下来.仿照已有PMVS源程序,给出自己的一个实现过程. 1.fstream的使用 2.c++中的初始化 3.new创建对象与不用new的区别 我们学 ...
- [RxJS] AsyncSubject and ReplaySubject - Learn the Differences
We can use Subject as Observable and Observer: // Subject should be only used to emit value for priv ...
- jsp上传下载+SmartUpload插件上传
使用之前须要自己下载jspSmartUpload.jar包 这里找到一个支持中文的jar包,下载地址例如以下: http://www.blogjava.net/Files/hijackwust/jsm ...
- javascript 获取当前对象
<a href="dsfjlsdjf" onclick="testGet()"> 请教编写testGet()函数获取这个超链接href属性,限制例如 ...
- android測试工具MonkeyRunner--google官网翻译
近期在复习之前的笔记,在回想MonkeyRunner时看了看google官网的内容,写得不错.就翻译出来分享下.事实上google官网真是一个学习的好地方. 基础知识 MonkeyRunner工具提供 ...
- CF 447A(DZY Loves Hash-简单判重)
A. DZY Loves Hash time limit per test 1 second memory limit per test 256 megabytes input standard in ...