[時間序列分析][4]--AR模型,MA模型,ARMA模型介紹


自相關和偏自相關的兩個函數代碼

由於后面會經常畫一組序列自相關和偏自相關的圖像,所以就把自己寫的這個兩個畫圖的函數的代碼貼上,供大家參考。

  • 首先是自相關的函數
    輸入的三個參數分別是{數據,滯后數,置信度}
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模型是常用的平穩序列的擬合模型之一,但並非所有的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
不僅為你推薦最新的博文,還有更多驚喜和資源在等着你!



AR模型的定義
謝謝大家支持


以上,所有
2017/4/20


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM