いっかくのデータサイエンティストをいく

1からプログラミングとデータサイエンスを独習したい

【時系列】MA・AR・ARMA(理論編とR)

沖本本第2章のお話です。

有斐閣統計学」の第12章にも載っています。

さらに今回はこちらも参考にいたしました。

はじめに

正直このあたりから少しずつ難しくなってくるころだと思います。 最初読んだときはほとんど意味がわかりませんでした。

今回は要は自己相関をどうモデリングするかがテーマです。 その方法は2種類あって1つ目は同じ変数(ここではb)を使って

f:id:imakoto0323:20180706120758p:plain

というあらわし方。こうすると、共通のbによって y_t y_{t-1}が相関を持つようにできます。

もうひとつの方法が y_t y_{t-1}を含んだ式にすること。

f:id:imakoto0323:20180706121028p:plain

こうすることで y_t y_{t-1}は相関を持たせることができます。

1つ目の考え方でモデリングしたのがMA過程で2つ目の考え方でモデリングしたのがAR過程です。

MA(移動平均)過程

f:id:imakoto0323:20180706120817p:plain

の考えでモデリングします。 ホワイトノイズを拡張したモデリングとなります。 1次のAR過程をMA(1)過程とすると、

f:id:imakoto0323:20180706120916p:plain

ちなみにy_{t-1}

f:id:imakoto0323:20180706120952p:plain

となり、共通の\epsilon_{t-1}を持つことになります。

MA過程は自己相関をもつので、\Theta_1が正の場合、1次の正の自己相関が生まれ、その\Theta_1の値が1に近づくほど強くなるのでグラフが滑らかになります。 一方、\Theta_1が負の場合、負の自己相関が生じその\Theta_1値が-1に近づくほどよりぎざぎざしたグラフとなります。

MA過程のRでの実装

ma_1 <- arima.sim(n=200,list(ma=1)) #MA次数は1、係数も1
plot(ma_1)
ma_2 <- arima.sim(n=200,list(ma=-1)) #MA次数は1、係数は-1
plot(ma_2)

f:id:imakoto0323:20180706122313p:plain f:id:imakoto0323:20180706122410p:plain

\Theta_1>0(上)のほうがグラフが滑らかで \Theta_1<0(下)のほうはギザギザしています。

AR(自己回帰)過程

f:id:imakoto0323:20180706121039p:plain

をホワイトノイズをもちいてモデリングすると、

となります。 ちなみに過去の情報をもとに確定的に定まるのはf:id:imakoto0323:20180706121441p:plain 過去の情報とは無関係系に確率的に新たな情報を生む部分 f:id:imakoto0323:20180706121610p:plain ということで\epsilon_1のみが新しい情報となります。

AR過程のRでの実装

ar_1<-arima.sim(n=200,list(ar=0.5)) # AR次数は1、係数は0.5
plot(ar_1)
ar_2<-arima.sim(n=200,list(ar=-0.5)) # AR次数は1、係数は-0.5
plot(ar_2)
ar_3<-arima.sim(n=200,list(ar=1)) # AR次数は1、係数を1にするとエラーとなる
#Error in arima.sim(n = 200, list(ar = 1)) : 
#  モデルの 'ar' 部分が定常ではありません 
'''
[f:id:imakoto0323:20180706123013p:plain]
[f:id:imakoto0323:20180706123040p:plain]
係数[tex:\mid \phi_1 v]が1を超えると、過程が指数的に上昇し**爆発的**と呼ばれる状態になります。[tex:\mid \phi_1 \mid]が1未満の場合定常となります。

ARMA(自己回帰移動平均)過程

要はAR過程+MA過程です。 ARMA(p,q)過程は

f:id:imakoto0323:20180706123956p:plain

経済分析では系列の変動を説明するのはARの部分であり、MAは付属部分となります。

ARMAモデルの推定はOLS(最小二乗法)最尤法で推定します。