経済・ファイナンスデータの計量時系列分析（沖本）4章　Rコード

#４章
４章のRコードの解答例です。

コードに関して
・VARselect(data, lg.max = p)でpまでのVAR(p)の次数に対するVARの各種情報量を調べてくれる。
・下でもちょっと書くが、予測誤差分散分解はオブジェクトとして持ってるVARモデルからFEVDで呼び出せる。沖本本に載ってるグラフよりも見やすい形で表示してくれて感動。

理論面に関して
・IRFを描くには（外生性に関する）かなり強い仮定が必要なので、プレゼンとかでラフに使わないこと。
・グレンジャー因果はよく取り沙汰されるけど（非ランダムウォークの元での）素直なF検定だと思えばOK。（結局はH_0:係数=0に帰着される）
（ランダムウォークの元でもそれぞれの係数自体は漸近的に正規性を持つはずなのでF検定実行できるような気がするんだけどどうなんだろうか。）
・VAR使う時の次数選択は難しいが、AIC, BICが一つの指標にはなる。
　AICは最尤法をKLダイバージェンスの最大化と考えた時に、前提にしてるモデルが含む誤差とデータの分布を経験分布で近似してる誤差によって平均エントロピーに推定誤差が生じているので、ここを補正する項を入れるイメージ。http://www.mi.u-tokyo.ac.jp/mds-oudan/lecture_document_2019_math7/%E6%99%82%E7%B3%BB%E5%88%97%E8%A7%A3%E6%9E%90%EF%BC%88%EF%BC%93%EF%BC%89_2019.pdf
 BICは事前分布をガウス分布にして事後分布をラプラス近似（mod周りでガウス分布に近似）した時のモデルエビデンスという解釈。（PRML)


#コード
```R
# http://user.keio.ac.jp/~nagakura/R/ts_R2.pdf TJO https://tjo.hatenablog.com/entry/2013/07/30/191853

setwd("Okimoto/4")
library(tidyverse)
library(gdata)
library(lubridate)
library(rugarch)
library(vars)

data = read.xls("msci_day.xls")
data$Date = ymd(data$Date)

ukjp = data[,c('uk','jp')]
var2ukjp = VAR(ukjp, p = 2,type = "const",lag.max = 3, ic = 'AIC')

causality(var2ukjp,cause = 'jp')$Granger
# p-value = 0.4118 > 0.05 より、帰無仮説（jpがukにgranger 因果なし）は棄却できない
causality(var2ukjp,cause = 'uk')$Granger
# p-value = 2.2 e-16 < 0.05 より、帰無仮説（ukがjpにgranger 因果なし）は棄却できる（uk→jpにgranger因果ありそう？）
#causality(cause = 'JP')は「JPは全ての変数へのgranger 因果がない」という帰無仮説を検定するので、それぞれに対して見たい時は２変数モデルでやる

par(mfrow = c(2,2))
msci = data[,c("jp","uk","us")]

msci.select<-VARselect(msci,lag.max =10)
#AICベースで3を選ぶ

msci.var<-VAR(msci,p=3)
plot(msci.irf)

msci.fevd = fevd(msci.var,n.ahead=14)
plot(msci.fevd)

```
#結果
##アウトプット
```
$selection
AIC(n)  HQ(n)  SC(n) FPE(n) 
     3      3      2      3 

$criteria
                  1            2            3            4            5
AIC(n) 1.652867e+01 1.612393e+01 1.609777e+01 1.609881e+01 1.610355e+01
HQ(n)  1.654568e+01 1.615369e+01 1.614028e+01 1.615407e+01 1.617156e+01
SC(n)  1.657412e+01 1.620347e+01 1.621140e+01 1.624652e+01 1.628535e+01
FPE(n) 1.507690e+07 1.005856e+07 9.798843e+06 9.809018e+06 9.855645e+06
                  6            7            8            9           10
AIC(n) 1.610417e+01 1.610701e+01 1.611700e+01 1.612183e+01 1.612373e+01
HQ(n)  1.618493e+01 1.620052e+01 1.622327e+01 1.624084e+01 1.625550e+01
SC(n)  1.632006e+01 1.635698e+01 1.640107e+01 1.643998e+01 1.647597e+01
FPE(n) 9.861771e+06 9.889822e+06 9.989214e+06 1.003759e+07 1.005674e+07
```
#グラフ
![fromjp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900361/c59bd8be-f361-6604-40f5-f928218dfadb.png)

![fromuk.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900361/592a5b57-d7f6-c8c3-a760-f0a8b0df33b8.png)

![fromus.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900361/a9e40015-21cb-dd50-010c-b6d67091a36a.png)

・日本が一番外生性が高い（と仮定してる）ので、イギリスショック、アメリカショック、共にショックがあった期の影響は日本に対してありません。ただし日本市場は過去の海外市場の影響を強く受けるので、翌期以降は大きくラグの項から大きな影響を受けています。

・IRFを見る限り誤差計算はブートストラップでやってるんですね。p=3程度ですが、理論的に計算するのはそんなに難しいんでしょうか。（ショック同士の相関が厄介？）

![Rplot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900361/d15e45b1-4ca3-94ea-1db2-9739a7053de0.png)

日本市場の分散分解の結果を見ると、1期目の部分には確かにuk とusの影響が入っていないことがわかります。（外生性から）　ただ、uk, usに関しては日本のサイズとしての影響が小さすぎて、（外生性からは影響が消えることはないのに）ほとんど日本市場に対するショックの影響が予測分散に影響していないことがわかります。
（日本市場へのショックが十四期間後まで一切ないことが明らかになっていても、USの市場を予測することはほどんどできない）

#Reference
コードが簡潔で読みやすい
https://tjo.hatenablog.com/entry/2013/07/30/191853
https://tjo.hatenablog.com/entry/2013/07/25/194546

VAR分析するときに流れとして何をやれば良いかがまとまってる
http://user.keio.ac.jp/~nagakura/R/ts_R2.pdf