憔悴到了转述中文综述的时候了........

在统计学角度来看,时间序列分析是统计学中的一个重要分支, 是基于随机过程理论和数理统计学的一种重要方法和应用研究领域.  时间序列按其统计特性可分为平稳性序列和非平稳性序列. 目前应用最多的是Box一JenkinS
模型建模法
, 它是由G.E.P.Box和英国统计学家G.M.JenkinS于1970年首次系统提出的.Box一JenkinS方法是一种较为完善的统计预测方法 , 他们的作用是为实际工作者提供了对时间序列进行分析、预测 , 以用对ARMA模型识别、估计和诊断的系统方法. 优点在于如果建立精确的模型后,并确定模型的系数之后,就可以根据有限的数据集对其发展进行预测 , 其中对于平稳性时间序列多采用ARMA模型
, 对于非平稳性时间序列模型常通过适当地变换 (如差分、取对数) 将它变为ARMA模型后再进行建模,这类模型Box一JenkinS称为ARI琳(求和自回归滑动平均模型) 。

参考链接:时序分析基础

一.  平稳时间序列模型

       数据的预处理:

              数据的预处理包括缺失值的补充、数据的平稳化及单位根检验.

平稳性

平稳性是时间序列分析中很重要的一个概念。一般的,我们认为一个时间序列是平稳的,如果它同时满足一下两个条件:

1)均值函数是一个常数函数。

2)自协方差函数只与时滞有关,与时间点无关。

以上面两个时间序列为例。两个序列均满足条件1),因为标准正态分布白噪声和其形成的随机游走的均值函数都是值恒为0的常数函数。再来看条件2)。白噪声的自协方差函数可以表述为:

γt,s={10(t=s)(t≠s)

可以看到只有在时滞为0时值为1,其它均为0,所以白噪声是一个平稳序列。

而随机游走我们上面分析过,其自协方差为:

γt,s=tσ2

很明显其自协方差依赖于时间点,所以是一个非平稳序列。

后面可以看到,一般的时间序列分析往往针对平稳序列,对于非平稳序列会通过某些变换将其变为平稳的,例如,对于随机游走来说,其一阶差分序列是平稳的(显然其一阶差分是白噪声)。

时序分析主要统计量

注意时间序列中的每一个元素都是一个普通的随机变量,如果忽略序列的时间性,那么我们面对的实际上是一个随机变量集合,所以从这个角度来说时间序列的统计分析与普通统计分析没有太大不同,相关的理论也是通用的。

对于随机变量集合来说,要完整描述其统计特性需要处理其多元联合分布,这是非常复杂的。所以实际我们往往做一些必要的简化假设,避免处理复杂的多元联合分布。

现假设我们有随机时间序列

{Yt|t=0,±1,±2,⋯}

下面先给出一些常用的统计量。后面会接着通过一些常见序列来举例说明各统计量如何计算。

均值

均值函数被定义为关于自变量t的函数:

μt=E(Yt)

t的均值函数值表示在t时刻随机变量Yt的期望。

方差

与均值类似,方差是t时刻序列元素的方差:

σ2t=E((Yt−μt)2)

自协方差

自协方差是一个二元函数,其自变量为两个时间点,值是两个时间点上序列值的协方差:

γt,s=Cov(Yt,Ys)=E((Yt−μt)(Ys−μs))

当t=s时,自协方差就是t时刻的方差。

自相关系数

自相关系数是两个时刻的值的相关系数:

ρt,s=γt,sγt,tγs,s−−−−−√

如果忽略元素来自时间序列这一事实,各统计量的意义实际上与普通的统计学中无异。因此这些统计量的一些性质也可以无缝推广到时间序列分析。例如期望的线性性质等等。如果有需要可以自行复习一下这些统计量的相关计算性质。后面的推导会主要集中于这几个统计量的计算。

常见的随机时间序列

常见的随机时间序列有:白噪音、布朗运动(随机游走)、

白噪声

考虑一个时间序列,其中每一个元素为独立同分布变量,且均值为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表示白噪声,将白噪声序列写作:

{e1,e2,…,et,…}

布朗运动

下面考虑这样一个时间序列,其在t时刻的值是前面白噪声序列的前t个值之和,设{e1,e2,…,et,…}为标准正态分布产生的白噪声,则:

Y1Y2Yt==⋮=⋮e1e1+e2e1+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

对协方差的计算需要用到一个协方差性质:

Cov(∑i=1mciYi,∑j=1ndjYj)=∑i=1m∑j=1ncidjCov(Yi,Yj)

设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方法(平稳序列)的更多相关文章

  1. 「IDEA插件精选」安利一个IDEA骚操作:一键生成方法的序列图

    在平时的学习/工作中,我们会经常面临如下场景: 阅读别人的代码 阅读框架源码 阅读自己很久之前写的代码. 千万不要觉得工作就是单纯写代码,实际工作中,你会发现你的大部分时间实际都花在了阅读和理解已有代 ...

  2. python魔法方法-自定义序列

    自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...

  3. python魔法方法-自定义序列详解

    自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...

  4. C# 后台解析json,简单方法 字符串序列化为对象,取值

    如果后台是一个JSON的字符串格式如下: string str = "{\"Success\":true,\"Msg\":\"成功!\&qu ...

  5. 时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理

    在做很多与时间序列有关的预测时,比如股票预测,餐厅菜品销量预测时常常会用到时间序列算法,之前在学习这方面的知识时发现这方面的知识讲解不多,所以自己对时间序列算法中的常用概念和模型进行梳理总结(但是为了 ...

  6. ARIMA模型——本质上是error和t-?时刻数据差分的线性模型!!!如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理!ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数

    https://www.cnblogs.com/bradleon/p/6827109.html 文章里写得非常好,需详细看.尤其是arima的举例! 可以看到:ARIMA本质上是error和t-?时刻 ...

  7. python基础之序列类型的方法——列表&元组

    Hello大家好,我是python学习者小杨同学,上次跟大家分享关于python的数值类型和序列类型,本次就承接上一节的内容,说一说序列类型的方法. 序列类型的方法,简单的来说就是四个字:增删改查.随 ...

  8. 利用python实现平稳时间序列的建模方式

    一.平稳序列建模步骤 假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列进行建模.建模的基本步骤如下: (1)求出该观察值序列的样本自相关系数(ACF)和样本偏 ...

  9. 第二章平稳时间序列模型——ACF和PACF和样本ACF/PACF

    自相关函数/自相关曲线ACF   AR(1)模型的ACF: 模型为: 当其满足平稳的必要条件|a1|<1时(所以说,自相关系数是在平稳条件下求得的):          y(t)和y(t-s)的 ...

随机推荐

  1. BZOJ 3732 Network 【模板】kruskal重构树

    [题解] 首先,我们可以发现,A到B的所有路径中,最长边的最小值一定在最小生成树上.我们用Kruskal最小生成树时,假设有两个点集U,V,若加入一条边w(u,v)使U,V联通,那么w就是U中每个点到 ...

  2. Bitvise ssh client+ chrome +SwitchyOmega *** (xjl456852原创)

    首先这个比ss还要简单,ss还需要在vps上搭建服务器.这个不需要. 但是无论是ss 还是 bitvise 都需要有一个自己的vps才行. 首先打开Bitvise ssh client程序:     ...

  3. hadoop-磁盘出现坏盘,如何能在线换盘

    涉及到磁盘存储路径的配置文件参数有: hdfs-site.xml <name>dfs.datanode.data.dir</name> yarn-site.xml <na ...

  4. Train Problem II HDU 1023 卡特兰数

    Problem Description As we all know the Train Problem I, the boss of the Ignatius Train Station want ...

  5. 【转】storm 开发系列一 第一个程序

    原文: http://blog.csdn.net/csfreebird/article/details/49104777 --------------------------------------- ...

  6. Android 中View的绘制机制源代码分析 一

    尊重原创: http://blog.csdn.net/yuanzeyao/article/details/46765113 差点儿相同半年没有写博客了,一是由于工作比較忙,二是认为没有什么内容值得写, ...

  7. joinColumns和inverseJoinColumns的使用方法

    近期在工作中使用springside.里面用到了hibernate的多对多 一開始我在配置department(部门表)和menu(栏目表)的时候.这样写的. Department实体类中的getMe ...

  8. Criteria——Hibernate的面向对象查询

    提到Hibernate的查询.我们往往会想到HQL,他使我们的SQL语句面向对象话. 事实上细看,差点儿相同就是把SQL语句中的表和字段用所相应的实体和属性给取代了.事实上.Hibernate中还有还 ...

  9. Android Calendar的运用

    import java.text.DateFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; impo ...

  10. SQL数据库问题 解释一下下面的代码 sql 存储过程学习

    SQL数据库问题 解释一下下面的代码 2008-08-13 11:30wssqyl2000 | 分类:数据库DB | 浏览1154次 use mastergocreate proc killspid( ...