株初心者が本気で儲けるブログ

株式投資・仮想通貨に関連するテーマについて取り扱ってます。

【R言語】ARモデル(自己回帰モデル)の検証




一般的に統計分析といえば回帰分析が代表的で、参考書とかでも単回帰分析と重回帰分析が中心に紹介しています。



そして、時系列分析における回帰分析的なやつが今回取り上げる、自己回帰(Auto Regression)モデルです。これは時系列データの性質を踏まえて、現在のデータを被説明変数(y)とし、過去のデータを説明変数(x)とする分析手法です。



この手法自体は非常にシンプルなのですが、この考え方は時系列データを扱った回帰モデルを構築する際には基礎となるのでとても大切です。時系列モデルは他にもいろいろありますが、大半のモデルはこのARモデルから派生したものなので、時系列解析をするならばこのモデルをまず理解するのが必須です。



他の時系列モデルの概要はここにまとめています。




というわけで、今回は統計解析ソフトのRを使って自己回帰モデルを使った分析を行っていきたいと思います。



使うデータは1971年からの円ドルの為替データです。

Japan / U.S. Foreign Exchange Rate | FRED | St. Louis Fedから参照。
ページ上のダウンロード押すだけで落とせます。




Rへのエクセルデータ読み込みについては下の記事で取り上げています。



ということで落としたをkawaseというオブジェクトにぶち込みます。



まずデータの確認

> head(kawase)

V1
1 DATE,EXJPUS
2 1971-01-01,358.02
3 1971-02-01,357.5450
4 1971-03-01,357.5187
5 1971-04-01,357.5032
6 1971-05-01,357.4130



> class(kawase)
[1] "data.frame"




プロットして異常値がないか確認

> plot(kawase,type="l",las=1)

f:id:oruka199665:20170107040130j:plain



まあ変な値はなさそうです。



この次は、その時系列データは定常性があるかを、単位根検定やらで確認しないといけないのですが、今回のテーマはそこじゃないので省略します。定常性についての確認は時系列データ分析において超大切なので、本当は絶対しないといけません



まあこのデータの定常性の検定については季節変動調整やらを話すだけで、結構長くなるので、下の記事にまとめています。もし気になる方は見てください。


www.dmjtmj-stock.com



Rで時系列データをARモデルへ当てはめるには、ar()関数を使います。ARモデルの検証とかいう重々しいテーマのわりに、これだけで簡単にパラメーターを返してくれます。まあ難しいのは、コマンドより返されたパラメータの理解なんですよね・・・。



> ar(kawase)


Call:
ar(x = kawase)

Coefficients:
1 2 3
0.6206 0.2479 0.1219

Order selected 3 sigma^2 estimated as 725.7



はい、意味分からないですね。自分も最初これやったときになんじゃこりゃってなりました。



まずCoefficientsは日本語で係数という意味です。



んでsigmaは文字通り、分散を意味していているのでσ2 = 725.7らしいです。



改めてARモデルの式は下のように定義されています。

f:id:oruka199665:20170107042749j:plain



ここのPは次数(order)を表しています。上の結果では、orderは3と書いてあるので、次数は3のようです。モデルの次数は引数で指定しないかぎり、デフォルトではAIC情報量規準に基づいて決定されます。



そして、1,2,3の下に書いてある数字はARモデルの式の係数となります。何をいっているのかいうと、n日の為替価格は n-1・n-2・n-3 日の為替価格と、下の式のような関係になっているということです。



etは平均0、分散σ2の正規分布に従う残差で、n-1・n-2・n-3 日の為替価格では説明できない部分です。この残差が少ないか大きいかで、モデルの当てはまり具合を計ることができます。



Yn=0.6206 Yn-1 + 0.2479 Yn-2 + 0.1219 Yn-3 + et



ar()関数に戻ると、使える引数はこんな感じです。



ar(x, method= "",order.max = NULL)



引数methodで、自己回帰モデルを推定する方法を選択できます。("yulewalker"、"ols"、"mle"、"burg"などの中から1つ選択して指定できます。)



デフォルトではユールウォーカー(Yule-Walker)法が指定されています。



olsは最小2乗法、mleは最尤法、burgは文字どおりBurg法です。



一応引数order.maxで、次数の最大値を指定することができます。



モデルを作成できたら、次はそのモデルの正確さを診断します。これが上でちらっと述べました残差分析です。ARモデルにおける残差は平均0の正規分布に従い、残差の間には相関がないことのが望ましいです。



追記:時系列分析についてはこの本がとても分かりやすかったので時系列分析を勉強したい方には是非オススメです。

 


www.tkstock.site
www.tkstock.site
www.dmjtmj-stock.com