[时间序列分析][4] 您所在的位置:网站首页 相关系数模型 [时间序列分析][4]

[时间序列分析][4]

2024-07-14 07:35| 来源: 网络整理| 查看: 265

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

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

首先是自相关的函数 输入的三个参数分别是{数据,滞后数,置信度} 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模型的一些性质 若AR模型满足平稳性条件,则他的均值为0,我们可以从上面的图中看出 AR模型的自相关系数是呈复指数衰减– 有拖尾性 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模型的性质 自相关系数q阶截尾 偏自相关系数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模型的性质 自相关系数拖尾 偏自相关系数拖尾 这个是两个系数都拖尾 三个模型性质的总结 后记

这是我用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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有