自相关和偏自相关的两个函数代码

由于后面会经常画一组序列自相关和偏自相关的图像,所以就把自己写的这个两个画图的函数的代码贴上,供大家参考。

  • 首先是自相关的函数
    输入的三个参数分别是{数据,滞后数,置信度}
pacf[data_, lmax_, clev_: 0.95] := Show[ListPlot[CorrelationFunction[data, {lmax}], Filling -> Axis, PlotRange -> {{0, lmax}, {-1.5, 1.5}}, PlotStyle -> PointSize[Medium], PlotLabel -> "自相关图", FillingStyle -> Directive[Thickness[.01], Green, Dashed]],Graphics[{Dashed, Line[{{0, #}, {lmax, #}}]}] & /@ (Quantile[NormalDistribution[], {(1 - clev)/2, 1 - (1 - clev)/2}]/Sqrt[Length[data]])];
  • 接着是偏自相关的函数
papf[data_, lmax_, clev_: 0.95] := Show[ListPlot[PartialCorrelationFunction[data, {lmax}], Filling -> Axis, PlotRange -> {{0, lmax}, {-1.5, 1.5}}, PlotStyle -> PointSize[Medium], PlotLabel -> "偏自相关图", FillingStyle -> Directive[Thickness[.01], Green, Dashed]],Graphics[{Dashed, Line[{{0, #}, {lmax, #}}]}] & /@ (Quantile[NormalDistribution[], {(1 - clev)/2, 1 - (1 - clev)/2}]/Sqrt[Length[data]])];

AR模型

AR模型的定义

—————

AR模型平稳性判别

AR模型是常用的平稳序列的拟合模型之一,但并非所有的AR模型都是平稳的 。

判别方法
1. 单位根判别法
2. 平稳域判别法

关于这两种方法的证明挺长的,由于要是我们分析实际数据,是不必考虑这些的,关于平稳性只是从模型的角度去推的,所以我准备不讲这两个方法的推到,举几个平稳和不平稳的例子看一下。

第一个平稳的AR模型

这个AR模型的递推式子是x[t]=0.8*x[t-1]+e,其实e是一个误差项。
x[1]=5,x[2]=3

Clear[x];
x[1] = 5;
x[2] = 3;x[t_] := x[t] = .8*x[t - 1] + RandomReal[NormalDistribution[]];
ListPlot[Table[x[i], {i, 1, 100}],PlotRange -> All,PlotRangePadding -> Scaled[.09],Filling -> Axis]

我们看一下画出来的图像

我们看一下他没有噪声的图像是什么样子的
Clear[x];
x[1] = 5;
x[2] = 3;x[t_] := x[t] = .8*x[t - 1];
ListPlot[Table[x[i], {i, 1, 100}],PlotRange -> All,PlotRangePadding -> Scaled[.09],Filling -> Axis]

来看一下他的图像

我们可以看到是这样单调递减趋于0的

第二个平稳的AR模型

我们再来看一个平稳的AR模型

Clear[x];
x[1] = 5;
x[2] = 3;x[t_] := x[t] = x[t - 1] - .5 x[t - 2] + RandomReal[NormalDistribution[]];
data = Table[x[i], {i, 1, 100}];
ListPlot[data,PlotRange -> All,PlotRangePadding -> Scaled[.09],Filling -> Axis]

看一下画出来的图像

其实我很好奇这样的数据是不是白噪声,我们来做一下检验 首先我们来看一下他的自相关系数和偏自相关系数
pacf[data, 20, .95]
papf[data, 20, .95]
我们看自相关图可以很明显的看出其有一阶自相关,不是白噪声 接着我们做一下白噪声检验
ListPlot[Table[AutocorrelationTest[Table[x[i], {i, 1, 100}], i], {i, 1, 10}], Filling -> Axis, PlotRange -> All]
可以看到p - 值很小,不是白噪声。 > 有没有觉得很神奇,明明看上去一点规律都没有的数据,其实是有规律的。我们老师最近总是爱引用爱因斯坦的一句话,宇宙最不能让人理解的地方, 是宇宙竟然能够被理解

非平稳的AR模型

接下来我们看一个非平稳的AR模型

Clear[x]
x[1] = 5;
x[2] = 3;x[t_] := x[t] = x[t - 1] + .5 x[t - 2] + RandomReal[NormalDistribution[]];
ListPlot[Table[x[i], {i, 1, 100}],PlotRange -> All,PlotRangePadding -> Scaled[.09],Filling -> Axis]
可以看到其散点图是不收敛的。

AR模型的一些性质

  1. 若AR模型满足平稳性条件,则他的均值为0,我们可以从上面的图中看出
  2. AR模型的自相关系数是呈复指数衰减– 有拖尾性
  3. AR模型的偏自相关系数有截尾性
    注意第二,第三条很重要,后面可以用来做模型的识别。我在强调一遍
    AR模型的自相关系数是呈复指数衰减– 有拖尾性
    * AR模型的偏自相关系数有截尾性*

MA模型

MA模型的定义

MA模型的可逆性

这个性质在推到MA模型的相关系数和自相关系数的时候比较有用,在这里我们就大概了解一下他是什么意思。
看一下可逆的定义

接下来看一下MA模型怎么转换成AR模型

最后我们看一下什么样的MA模型可以转化为AR模型

可逆MA模型的应用

对于一些MA模型,虽然其生成的式子不一样,但是其自相关图是一样的,要是我们能用可逆的MA来做分析,可以将问题变得简洁,当然这些都是在式子推导的过程中的问题,在处理数据时我们可以不考虑这些。
下面我们来看一个式子不同但自相关系数图一样的例子:

rd = RandomReal[NormalDistribution[], {100}];
data = RotateLeft[rd] - 2*rd;
data = data[[;; -2]];
Transpose[{data, RotateLeft[data]}] // ListPlot
ListLinePlot[data]
pacf[data, 20, 0.95]
papf[data, 20, 0.95]
ListPlot[Table[AutocorrelationTest[data, i], {i, 1, 10}], Filling -> Axis, PlotRange -> All, PlotLabel -> "白噪声检验"]

这个代码应该会画出5张图片,我这里暂时不全放。看一下其自相关和偏自相关图:

data = RotateLeft[rd] - .5*rd;
data = data[[;; -2]];
Transpose[{data, RotateLeft[data]}] // ListPlot
ListLinePlot[data]
pacf[data, 20, 0.95]
papf[data, 20, 0.95]
ListPlot[Table[AutocorrelationTest[data, i], {i, 1, 10}], Filling -> Axis, PlotRange -> All, PlotLabel -> "白噪声检验"]
这个真的是两张图片,可以看到他们是一样的,完全一样的。 而第一个是可逆的,即可以转换为AR模型的,具体转换方式可以看下图

MA模型的性质

  1. 自相关系数q阶截尾
  2. 偏自相关系数q阶拖尾
    这个是只有自相关系数是截尾的
    很重要,后面模型的识别会用到

ARMA模型

ARMA模型的定义

ARMA模型的一个例子

看一个ARMA (1, 1) 的例子 - xt = .5*x (t - 1) + et - 0.8 e (t - 1)

Clear[x];
x[1] = 10;
rd = RandomReal[NormalDistribution[0, .1], {100}];
temp = RotateLeft[rd] - .8*rd;
x[t_] := x[t] = .7*x[t - 1] + temp[[t - 1]];
data = Table[x[i], {i, 1, 100}];
Transpose[{data, RotateLeft[data]}] // ListPlot
ListLinePlot[data]
pacf[data, 20, 0.95]
papf[data, 20, 0.95]
ListPlot[Table[AutocorrelationTest[data, i], {i, 1, 10}], Filling -> Axis, PlotRange -> All, PlotLabel -> "白噪声检验"]

第一张图片是前后数据画的散点图,可以用来看是否有一阶自相关,第二张图是时序图

ARMA模型的性质

  1. 自相关系数拖尾
  2. 偏自相关系数拖尾
    这个是两个系数都拖尾

三个模型性质的总结

后记

这是我用MarkDown写的第一篇文章,感觉还是挺方便的,一切还在熟悉当中

放一下markdown的一些快捷键

一些markdown的快捷键

  • 加粗 Ctrl + B
  • 斜体 Ctrl + I
  • 引用 Ctrl + Q
  • 插入链接 Ctrl + L
  • 插入代码 Ctrl + K
  • 插入图片 Ctrl + G
  • 提升标题 Ctrl + H
  • 有序列表 Ctrl + O
  • 无序列表 Ctrl + U
  • 横线 Ctrl + R
  • 撤销 Ctrl + Z
  • 重做 Ctrl + Y

推广

最近在做一下微信公众号
欢迎大家关注我的公众号: prettymath
不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!




谢谢大家支持

以上,所有
2017/4/20

[时间序列分析][4]--AR模型,MA模型,ARMA模型介绍相关推荐

  1. 时间序列分析之AR、MA、ARMA和ARIMA模型

    如果一个时间序列经过平稳性检验后得到是一个平稳非白噪声序列,那么该序列中就蕴含着相关性的信息. 在统计学中,通常是建立一个线性模型来拟合该时间序列的趋势.其中,AR.MA.ARMA以及ARIMA都是较 ...

  2. 时间序列分析之AR、MA、ARMA、ARIMA详解(1)

    大千世界中存在着大量与时间序列(time series)有关的数据,例如股票价值的波动.GDP的历史数据等等.时间序列分析是计量经济学.统计学.机器学习.数据挖掘的等数据科学领域的重要研究方向.在传统 ...

  3. 时间序列分析之AR、MA、ARMA、ARIMA详解(4)

    一.延迟算子 延迟算子(Backshift Operator)也称为滞后算子(Lag Operator),记为.它是一个重要的标记,它被用于表示时间序列的延迟:即将时间向后倒退一个时间单位.特别地,定 ...

  4. 时间序列学习(3):AR、MA及ARMA模型

    时间序列学习(3):AR.MA及ARMA模型 1.AR模型 2.MA模型 3.ARMA模型 上篇笔记第2节说指数的对数收益率序列近似为一个白噪声. 如果投资标的的每日收益率就是白噪声,那完全可以建立多 ...

  5. 时间序列之AR、MA、ARMA、ARIMA模型

    参考:<时间序列分析-基于R王燕 编著> 一.时间序列分析 时间序列分法主要针对动态数据进行处理.该方法是以数理统计学方法和随机过程理论为基础,并对一序列随机数据所遵从的统计规律进行研究, ...

  6. 数据分析技术:时间序列分析的AR/MA/ARMA/ARIMA模型体系

    基础准备 前面草堂君已经按照时间序列分析的教学顺序推送了以下文章,大家可以直接点击下方文章名称阅读回顾: 数据分析技术:时间序列分析:时间是把杀猪刀: SPSS分析技术:时间序列描述:磨刀不误砍柴工, ...

  7. 时间序列模型:AR、MA和ARMA

    定义: 1.自回归模型AR 若时间序列: zt=φ1zt−1+φ2zt−2+⋯+φpzt−p+atz_t=\varphi_1z_{t-1}+\varphi_2z_{t-2}+\cdots+\varph ...

  8. garch模型python步骤_利用python进行时间序列分析——从随机游走到GARCH模型(一)...

    本文是主体是翻译Time Series Analysis (TSA) in Python - Linear Models to GARCH.但是文章主要是python操作,而理论较少,因此在此基础上补 ...

  9. 【时间序列】AR、MA、ARMA与ARIMA

    AR.MA.ARMA与ARIMA 题目中的几种模型,都是寻找时间序列上当前时刻的数值与之前时刻对应数据或扰动之间的内部关系,通过训练模型,从而达到预测的目的. P阶-自回归模型 (AR) Auto R ...

最新文章

  1. 02 oracle 创建用户和授权
  2. 实例讲解override和new的区别
  3. 对话框式activity
  4. 现在在做的项目的一些感想.
  5. Hibernate二级缓存
  6. Mysql 启动命令详解
  7. 如何让我们的软件跳过360和金山毒霸的“随意拦截”?
  8. 站在商业、技术与人文三叉路口的实体书店
  9. ireport 5.6.0 添加 Conditional Style 动态加粗字体
  10. 计算机硬盘坏的原因,硬盘损坏的原因有哪些 硬盘正确使用方法介绍
  11. 狂野飙车4java游戏音乐_狂野飙车8赛车背景音乐名称大全
  12. CNN网络结构进化概述
  13. loam中imu消除重力加速度的数学推导
  14. UCAS计算机网络实验
  15. 线下实体店结合VR全景,让虚拟购物更加真实
  16. 魔兽怀旧服api文档位置
  17. 学python的第十八天
  18. 计算机毕设(附源码)JAVA-SSM基于Web课堂签到管理系统
  19. 软件测试,如何测试网站的安全性呢
  20. java以post发送方式实现百度链接提交主动推送(实时)

热门文章

  1. rx580显卡运行不了Linux,RX580吃鸡不流畅原因找到了 真相令人无语
  2. The Great Gatsby翻译摘录
  3. 非计算机专业人员的程序之路
  4. C语言和C++的文件读取、写入函数
  5. 判断piv_str1是否包含在piv_str2中,成功返回值大于1,失败返回0
  6. 【NOIP模拟】行走
  7. alpha is transparency
  8. Java 通过具体位置,获取对应地图上的坐标: 经度、纬度
  9. 用python程序画出一些简单的动漫人物
  10. 智能交通行业车车通信和车路通信成为ITS下一个技术亮点