読者です 読者をやめる 読者になる 読者になる

R Time Series Analysis 時系列解析(6) (線形定常過程1) 1次ARモデル

Program R Mathematics Time Series Analysis 時系列解析

線形定常過程とは、

   定常過程のうち、ある時点の確率変数が、

   それ以前の確率変数とランダムな変動(ホワイトノイズ)

   の加重平均

となっているものをいう。ホワイトノイズとは次の定義を満たすものを指す。

   1. 全ての時点で、平均(期待値)が0である。

   2. 全ての時点で、分散が一定である。

   3. 任意の2時点間の自己共分散自己相関係数0である。

定常確率過程の定義のうち、下線部が"一定"ではなく"0"になっただけと考えれば実質は定常確率過程と同じこと。ノイズの値が各時点でサイコロを振った値によって決まるという感覚で理解した。以下、とりあえずホワイトノイズが正規分布に従うことを前提としてみる。

  1. ARモデル

まずは1次式で考えてみる。

{y_t = a + by_{t-1} + c_t,\:\:\:\:c_t \sim N(0, \sigma^2)}

ノイズであるcを正規分布より発生させ、図示する関数を作った。

AR1 <- function(n,b,a=0,sd=1,y0=0) {
  c <- rnorm(n,sd=sd)
  y <- rep(0,n)
  y[1] <- y0
  
  for(j in 1:(n-1)) {
    y[j+1] <- a + b*y[j] + c[j+1] 
  }
  
  m <- round(mean(y),digits=2)
  e_y <- round(m/(1-b),digits=2)
  
  title <- paste("AR Model y_t = a + b*y_t-1 + c_t, a=",a,
                 "b =",b,"sd =",sd)
  yl <- c(min(y),max(y))
  plot(y,type="l",main=title)
  abline(h=e_y,col=2)
  
  y_ts <- ts(y,start=1,freq=1)
  acf(y_ts,main="Autocorrelation coefficient")
}

実際に使ってみる。

AR(n=200,b=0.1,a=0)  #左上
AR(n=200,b=0.4,a=0)  #右上
AR(n=200,b=0.7,a=0)  #左下
AR(n=200,b=1.05,a=0)  #右下

bの値が増加するにつれ、振動が粗くなっている様子が見える。bが1を超えると発散してしまうことが理解出来た。定常過程であるためには、|b|<1を満たさなくてはならない(感覚的には等比数列の等比の絶対値が1より小さいことが収束の十分条件ということ)。

f:id:nakhirot:20130626211028p:plain