In [ ]:
library(dplyr)
library(data.table)
library(ggplot2)
options(repr.plot.width=10, repr.plot.height=5,repr.plot.family='Hirakaku-Pro-W3')

G7国の日次MSCIデータ.標本期間は2003/1から2008/4まで

MSCIデータとはMorgan stanley Capital Internationalが作成している株式指標で,カパーしている国と産業の多さから,ファイナンスの分野では,非常によく用いられる株式指数となっているらしい.

In [2]:
dt <- tbl_df(fread('msci_day.csv'))
head(dt)
tail(dt)
dim(dt)
Datecafrgeitjpukus
1/1/03 560.099 902.081 724.932 290.187 1593.175791.076 824.583
1/2/03 574.701 927.206 768.150 296.963 1578.214797.813 852.219
1/3/03 580.212 929.297 768.411 298.757 1578.411800.175 851.935
1/6/03 589.619 943.002 788.164 303.273 1619.700803.966 871.515
1/7/03 585.822 923.785 774.054 297.892 1590.951793.625 865.992
1/8/03 576.522 900.435 742.414 293.791 1564.566783.566 853.401
Datecafrgeitjpukus
4/23/08 1925.7222187.7262306.122610.476 2904.9171491.1211310.742
4/24/08 1915.7082156.2232285.893606.756 2878.0791476.7501318.563
4/25/08 1943.5732171.8342295.337613.060 2946.8841499.4651327.207
4/28/08 1930.6942184.4042299.404610.920 2983.7591504.7841325.764
4/29/08 1897.5162164.0822280.048607.739 3016.0891486.5831320.085
4/30/08 1897.5162164.0822280.048607.739 3016.0891486.5831320.085
  1. 1391
  2. 8

今回は日本(JP),イギリス(UK),アメリカ(US)の株式収益率を用いて,国際株式市場の関係を分析してみる. のちにインパルス応答関数や分散分解も用いた分析例が出てくるが,今回はとりあえずグレンジャー因果性のみに着目する.

In [3]:
dt <- dt %>% 
        dplyr::select(Date,jp,uk,us)
head(dt)
Datejpukus
1/1/03 1593.175791.076 824.583
1/2/03 1578.214797.813 852.219
1/3/03 1578.411800.175 851.935
1/6/03 1619.700803.966 871.515
1/7/03 1590.951793.625 865.992
1/8/03 1564.566783.566 853.401

とりあえず最初の三ヶ月くらいをプロットしてみる

In [4]:
tmp <- melt(dt[1:90,],id='Date')
head(tmp)
ggplot(tmp,aes(x=Date,y=value,color=variable,group=variable))+geom_line()
Datevariablevalue
1/1/03 jp 1593.175
1/2/03 jp 1578.214
1/3/03 jp 1578.411
1/6/03 jp 1619.700
1/7/03 jp 1590.951
1/8/03 jp 1564.566

まず,10期までのVARモデルを推定し,AICでモデル選択を行う.Rなら'vars'パッケージが便利っぽい.

In [ ]:
library(vars)

次数pをVARselect()関数で選択する.

In [6]:
VARselect(dt[,c(2,3,4)],lag.max=10)
$selection
AIC(n)
3
HQ(n)
3
SC(n)
2
FPE(n)
3
$criteria
12345678910
AIC(n)1.652867e+011.612393e+011.609777e+011.609881e+011.610355e+011.610417e+011.610701e+011.611700e+011.612183e+011.612373e+01
HQ(n)1.654568e+011.615369e+011.614028e+011.615407e+011.617156e+011.618493e+011.620052e+011.622327e+011.624084e+011.625550e+01
SC(n)1.657412e+011.620347e+011.621140e+011.624652e+011.628535e+011.632006e+011.635698e+011.640107e+011.643998e+011.647597e+01
FPE(n)1.507690e+071.005856e+079.798843e+069.809018e+069.855645e+069.861771e+069.889822e+069.989214e+061.003759e+071.005674e+07

いろいろ指標がでているがとりあえずAICではVAR(3)が選択されている.

求めた次数pをVAR()関数に代入してVAR(p)モデル係数を推定する.

In [7]:
var.model <- VAR(dt[,c(2,3,4)],p=VARselect(dt[,c(2,3,4)],lag.max=10)$selection[1])

次にグレンジャー因果が存在するかどうか検定を行う.

これも'vars'パッケージのcausality()関数を使えば簡単に実行できる. 引数として,推定されたVARモデルと,グレンジャー因果の要因として考えたいものを与える.

まずはUSからのグレンジャー因果が存在するかどうか検定を行ってみる.

In [8]:
causality(var.model,cause='us')
$Granger

	Granger causality H0: us do not Granger-cause jp uk

data:  VAR object var.model
F-Test = 55.94, df1 = 6, df2 = 4134, p-value < 2.2e-16


$Instant

	H0: No instantaneous causality between: us and jp uk

data:  VAR object var.model
Chi-squared = 271.69, df = 2, p-value < 2.2e-16

$Grangerの方が先ほど説明したF検定によるグレンジャー因果性の検定である. p値は0.05以下であり,USからJP, UKへのグレンジャー因果性が存在すると言える.

$Instantの方はヘルプを見ると '' a Wald-type test that is characterized by testing for nonzero correlation between the error processes of the cause and effect variables. '' とのこと.とりあえず今回はあまり気にしないことにする.

6通りの組み合わせでグレンジャー因果性の検定をしてみる.(多重比較なので検定としてはよろしくないですがまぁとりあえずということで)

In [9]:
var.model <- VAR(dplyr::select(dt,us,jp),p=VARselect(dplyr::select(dt,us,jp),lag.max=10)$selection[1])
causality(var.model,cause='jp')$Granger
causality(var.model,cause='us')$Granger

var.model <- VAR(dplyr::select(dt,uk,jp),p=VARselect(dplyr::select(dt,us,jp),lag.max=10)$selection[1])
causality(var.model,cause='jp')$Granger
causality(var.model,cause='uk')$Granger

var.model <- VAR(dplyr::select(dt,us,uk),p=VARselect(dplyr::select(dt,us,jp),lag.max=10)$selection[1])
causality(var.model,cause='uk')$Granger
causality(var.model,cause='us')$Granger
	Granger causality H0: jp do not Granger-cause us

data:  VAR object var.model
F-Test = 0.1755, df1 = 4, df2 = 2756, p-value = 0.9511
	Granger causality H0: us do not Granger-cause jp

data:  VAR object var.model
F-Test = 86.058, df1 = 4, df2 = 2756, p-value < 2.2e-16
	Granger causality H0: jp do not Granger-cause uk

data:  VAR object var.model
F-Test = 0.41866, df1 = 4, df2 = 2756, p-value = 0.7953
	Granger causality H0: uk do not Granger-cause jp

data:  VAR object var.model
F-Test = 58.997, df1 = 4, df2 = 2756, p-value < 2.2e-16
	Granger causality H0: uk do not Granger-cause us

data:  VAR object var.model
F-Test = 0.8883, df1 = 4, df2 = 2756, p-value = 0.47
	Granger causality H0: us do not Granger-cause uk

data:  VAR object var.model
F-Test = 60.367, df1 = 4, df2 = 2756, p-value < 2.2e-16

グレンジャー因果でないという帰無仮説が棄却されたのは2,4,6番目.

以上から,グレンジャー因果効果が存在すると判断されたのは

US $\rightarrow$ JP,

UK $\rightarrow$ JP,

US $\rightarrow$ UK

得られた知見としては,例えば

  1. アメリカ市場はイギリス市場の予測に有用であるが,日本市場は有用でない.
  2. アメリカ市場へのグレンジャー因果性の存在は確認されず,アメリカ市場の独立性が強く示唆されている.
  3. 日本の株式市場は,予測という観点からすると,イギリスよりも独立性が低い.

などが考えられる.