【R】金利と日経平均株価の関係【Granger因果】

| 0件のコメント

不動産マーケットに興味があり「不動産マーケットの明日を読む」という本を読んでいる。 I部4章の 2.金利が下がったから株価が上昇した? の部分で, Granger因果 について書かれていたので勉強がてらRで試してみた。不動産に関することはでてこないので悪しからず。

素人のため不正確な部分もあると思うので, 不備を見つけられた方はご指摘ください。

VARモデルと変数間の動学的な関係性の分析

VARモデルは自己回帰モデル (AR)の多変量への拡張で, 下記の3つの分析手法の土台となる。

  • Granger因果性
  • インパルス応答
  • 分散分解

Granger因果性の検定は, ある変数が他の変数の予測に役立つかどうかの判定に用いる。経済的な理論を必要とせずに, データを中心に分析ができるが, 関係の強さはわからない。
一方で, インパルス応答はある変数に対するショックが他の変数に与える影響の度合いを分析できる。つまり, Granger因果ではわからない関係の強さがわかる。
分散分解はインパルス応答同様に, 変数間の動学的関係を定量的に分析できる。ある変数の予測できない変動を説明するために, どの変数が重要であるかを求める。

実質金利と日経平均の関係

実質金利と日経平均のGranger因果性を検証してみる。

まずはデータを取集する。国債名目利回りは財務省の国債金利情報を取ってくる。 このデータから, 10年国債の系列を利用する。
消費者物価指数 (CPI)は総務省統計局 政府統計の平成22年基準消費者物価指数を取ってきた。また, 日経平均株価 (終値)の月足データは様々なところで公開されている。

実質金利 = 名目金利 – インフレ率 なので, 実質金利を求めるために, まずはインフレ率を計算する。

インフレ率 = (その期のCPI – 前年同月のCPI) / 前年同月のCPI * 100

とすると, インフレ率は下記になった。

inflation-rate

10年国債とインフレ率の差分系列を, 実質金利とした。これで実質金利と日経平均株価の2つの系列が揃った。
互いの系列の時間軸を合わせるため, 1986/08/01 から 2015/07/01 までとした。

interest-nikkei-scale

実質金利と日経平均の関係を調べてみる。
vars::causality でGranger因果性検定を行う。実質金利 -> 株価 はp値0.17。

> causality(df.var, cause="real_interest")
 
$Granger

 Granger causality H0: real_interest do not Granger-cause stock

data:  VAR object df.var
F-Test = 1.6362, df1 = 3, df2 = 674, p-value = 0.1797


$Instant

 H0: No instantaneous causality between: real_interest and stock

data:  VAR object df.var
Chi-squared = 0.4931, df = 1, p-value = 0.4825

株価 -> 実質金利 はp値0.027となり 5%有意水準で日経平均株価は実質金利に影響を与えていることとなった。

> causality(df.var, cause="stock")

$Granger

	Granger causality H0: stock do not Granger-cause real_interest

data:  VAR object df.var
F-Test = 3.0766, df1 = 3, df2 = 674, p-value = 0.02706


$Instant

	H0: No instantaneous causality between: stock and real_interest

data:  VAR object df.var
Chi-squared = 0.4931, df = 1, p-value = 0.4825

「不動産マーケットの明日を読む」では, “実質金利の低下が株価を上昇させたわけではない” とあるが一致した結果となった。
また, “逆に日経平均株価の上昇が実質金利を低下させたという因果関係しか存在しない (有意水準10%)” についても, Granger因果的な関係性[1]はデータから確認できた。

日米の2年物の名目金利と日経平均の関係

日本の2年物の国債名目利回りは先ほどと同じ, 財務省の国債金利情報を使い, 米国の2年物の国債名目利回りは正しいか自信はないが, The Federal Reserve Board of Governorsから取得した。

2000/07/01以降のデータしかないため, 少々心許ないが, 日米の2年物の国債名目利回りは下記となった。日本はもちろんゼロ金利。

ja-us-bond-2years

本では, 日経平均株価とドル円の相関は見かけ上のもので, 両者の変動には共通要因があり, それは日米の名目金利差であると書かれている。
そして, “日米の名目金利差は、株価およびドル円為替相場レートに先んじて動いている”ことから, “日米の2年物の名目金利差が株価の上昇をもたらした” とある。

日米の2年物の名目金利差と日経平均株価の推移は下記。

interest-diff-nikkei-scale

これも Granger因果性検定で調べてみる。日米の2年物の名目金利差 -> 日経平均株価 (終値) の時, p値0.0913。

> causality(df.var, cause="interest_diff")

$Granger

	Granger causality H0: interest_diff do not Granger-cause stock

data:  VAR object df.var
F-Test = 2.1702, df1 = 3, df2 = 342, p-value = 0.0913


$Instant

	H0: No instantaneous causality between: interest_diff and stock

data:  VAR object df.var
Chi-squared = 10.4162, df = 1, p-value = 0.001249

日経平均株価 (終値) -> 日米の2年物の名目金利差 の時, p値2.954e-05。本の内容とは逆の結果となってしまった。

> causality(df.var, cause="stock")
$Granger

	Granger causality H0: stock do not Granger-cause interest_diff

data:  VAR object df.var
F-Test = 8.1504, df1 = 3, df2 = 342, p-value = 2.954e-05


$Instant

	H0: No instantaneous causality between: stock and interest_diff

data:  VAR object df.var
Chi-squared = 10.4162, df = 1, p-value = 0.001249

データの処理に問題があったか, 期間の取り方が異なるのか。
とりあえずもう少しGranger因果を知るために, 「経済・ファイナンスデータの計量時系列分析」を開いて勉強してみます。


[1] Granger因果は通常の意味の因果関係とは異なる。TJOさんのGranger因果による 時系列データの因果推定(因果フェス2015)にあるように, 「何の理論にも基づかない仮説フリーで予測を基準とする因果性」というアイデアが基であり, Granger因果性は通常の因果性が存在する必要条件であるが十分条件ではない。通常の因果とは逆向きになることがあり, あくまで予測に有用かどうかで解釈した方が良い。VARモデルに依存する以上, あくまでも「時間差」(ラグ)に着目した指標である。

コメントを残す

必須欄は * がついています