計量経済分析ソフトウェア EViewsによる経済予測4
VARモデルを利用した予測

第三回は予測に関連する作業の自動化と外部との連携について解説しました。今回は本題に戻り、VARモデルを利用した予測について解説を行います。

第四回の内容は以下の通りです。

VARモデルの推定と予測

VARモデルとは

Vector Autoregression Model(VAR)モデルとは、ARモデルを多変量に拡張したモデルです。例えば国内総生産GDPと貨幣供給量Mで次数2のVAR分析を行う場合、推定式は以下のようになります。

GDP(t) = a0+a1*GDP(t-1)+a2*GDP(t-2) + a3*M(t-1) + a4*M(t-2) + e1(t)
M(t) = b0+b1*GDP(t-1)+b2*GDP(t-2) + b3*M(t-1) + b4*M(t-2) + e2(t)

すなわち、t期のGDP・Mは1~2期前のGDPとMに依存して決定されます。すなわちVARモデルでは、利用する変数がラグを伴って相互に影響を与えあっているような状況を分析します。これまで解説してきた一変量のモデルによる予測では、GDPは基本的にGDPの過去の値のみより決定されていた点を思い出してください。VARモデルを利用することで、第一回で解説した変数の利用可能性の問題を避けつつ、他の経済変数を説明変数として利用することが可能になります。

単位根検定

VAR分析を行う場合、伝統的な立場では利用する変数すべてで、単位根検定を行っておく必要があります。単位根検定の実行方法については、第一回をご確認ください。まずはLevelに対して(すなわち階差を取らずに)単位根検定を実行します。ここではmacromod.wf1の、GDPとMに対して単位根検定(ADF test)を行ってみます。

図1-1

図1-1

いずれも単位根を持つという帰無仮説は棄却できません。すなわち、GDPとMのどちらも非定常であるという結果が得られました。仮にここでどちらも定常であることが分かれば、以下の手順は必要ありません。いきなりVAR分析に入ることができます(ただし、もしフォーマルな手順に則りたいのであれば、グレンジャー因果性について確認しておくとなお良いでしょう)。

ここでは非定常であることが分かったので、次に、GDPとMのそれぞれで1次の階差(1st difference)を取って単位根検定を行います。結果は次のようになります。

図1-1

図1-1

GDP、M共に、1階の差分を取ると定常になることが分かりました。このような時系列変数のことを、I(1)と表現します。

共和分検定

一変量のモデルでは、階差を取って定常にした変数に対してARMAモデルを適用して分析を行いました。多変量モデルであるVARの場合、利用する変数すべてがI(1)であることが分かった場合は、分析に入る前にさらに共和分関係の検定を行います。検定の結果共和分関係にないことが分かった場合、階差を取った変数に対してVAR分析を行います。一方、共和分関係にあることが分かった場合は、ベクトル誤差修正モデル(VECM)を利用した分析を行います。

共和分分析を行ってみます。GDPとMでグループオブジェクトを作ります。View > Cointegration Test > Johansen System Cointegration Testと操作します(Quick Group Statistics > Johansen Cointegration Testと操作しても構いません)。以下のダイアログが表示されます。

図1-1

Deterministic trend specificationでは、次選択肢が利用できます。

  • 1. No deterministics
  • 2. Cointegrating constant
  • 3a. Dual constant (JHJ)
  • 3b. Unrestricted constant
  • 4a. Cointegrating trend and dual constant (JHJ)
  • 4b. Cointegrating trend and unrestricted constat
  • 5a. Dual constant and trend (JHJ)
  • 5b. Unristricted constant and trend

実用上の一つの悩みは、この内どれを選べばよいのか?ということです。これについては、EViewsユーザーズガイド2のCointegration Testingのチャプターが参考になります。

  • 方法1と方法5は滅多に利用しません。特に方法1は、利用するすべての変数が平均ゼロであると考えられる場合にのみ利用すべきです。
  • 利用するすべての変数にトレンドがなければ、方法2を採用します。
  • すべてのトレンドが確率的トレンドであると考えられるのであれば、方法3を採用します。
  • 少なくとも一つの変数がトレンド定常(すなわち、確定的トレンド)であると考えられる場合、方法4を採用します。

これらはあくまでラフな目安ですので、必ずこの通りにするべきであるというわけではありません。もし判断に迷う場合は、Summarize all deterministic case assumptionsにチェックを入れて1から5までの各オプションの下での検定結果をまとめて表示できるので、それを元に結果の頑健性をチェックができます。ここでは方法4aまたは4bを採用してみます。

図1-1

共和分関係がないという結果が得られました。従って、差分を取ったGDPと差分を取ったMについて、VAR分析を行うことになります。

VARモデルの推定と予測

VARモデルの推定は非常にシンプルです。メインメニューのQuickよりEstimate VARを選択し、以下の画面のように入力し、OKしてください。

※ここではラグ次数をそのままにします。ラグ次数の設定方法や・統計的基準に基づくラグ次数の選び方については、ベクトル自己回帰/ベクトル誤差修正(VAR/VEC)モデルをご確認ください。実用上は、一旦デフォルトのまま推定を行い、VARオブジェクト上でView > Lag Structure > Lag Length Criteriaと操作し、AICによって選ばれたラグ次数を利用すればよいでしょう。

図1-1

推定結果が表示されます。Nameボタンより名前をつけておきます。

図1-1

8以前のEViewsでは、VARモデルからの予測にモデルオブジェクトを介する必要がありました。しかしEViews9以降では、これまで説明してきたARIMAモデルの場合と同様に、推定後にForecastボタンを押すだけで予測ができるようになりました。事前にRangeからワークファイルを拡張することで任意の期間まで予測を延長することができますが、ここでは簡単に、サンプル期間を2005Q4まで伸ばしてOKします(Forecastボタン関連の操作については第1回第2回と変わりませんので、そちらをご確認ください)。

図1-1

ARIMAモデルの場合、GDPのみの予測値が得られていました。VARモデルの場合、各被説明変数、すなわちGDPとMについて予測値が得られます。

図1-1

インパルス応答分析

VAR分析にインパルス応答分析はつきものです。システムにショック(インパルス)を与えた影響が時間を通じてどのように波及していくかを見るという意味では、ある種の予測のようなものと言えなくもありません。EViewsでは、推定後にImpulseボタンを押すだけで、インパルス応答グラフを得ることができます。EViews 13以降では、Confidence interval levelsテキストボックスで複数の信頼区間を設定できます。ここでは「0.95 0.65」と入力し、95%と65%信頼区間をグラフにします。

図1-1

図1-1

インパルス応答グラフは、誘導系の各推定式の誤差項部分にショック(インパルス、具体的にはImpulse Definitionタブで定義)を与えた場合に、その影響が時間を通じて各被説明変数(d(GDP), d(M))にどのように波及していくかを示しています。Response of X to Yの意味は、Yに関する式の誤差項にショックを与えた場合のXへの影響です。d(GDP)からd(GDP)への影響は、おおよそ5期程度でなくなることが分かります。d(M)からd(M)への影響は、より緩やかに減衰していきます。d(GDP)からd(M)への影響、d(M)からd(GDP)へのクロスの影響は、それほどはっきりとは確認できません。

マルチグラフ表示の場合、どうしても個々のグラフが小さくなりがちです。ウィンドウ左のツリーでインパルス変数と応答変数を選択して、個別にグラフを表示できます。

図1-1

ツリーのCombined graphを選択することで、グラフを被説明変数毎にまとめることができます。

図1-1

Tableを選択して、表形式で結果を得ることもできます。推定した結果を行列オブジェクトで出力する場合は、コマンド欄で次を実行します。ここではIRFという名前で推定値を、IRF_SEで対応する標準誤差を行列として保存します。

  var01.impulse(g, cilevels="0.95 .65", matbys=irf) d(m) d(gdp) @order d(gdp) d(m)

図1-1

Impulse ResponsesダイアログでAcdumulate responsesにチェックを入れて、累積インパルス応答を得ることも可能です。

図1-1

構造VARモデル(SVAR)のインパルス応答分析

インパルス応答分析で注意すべき点として、VARモデルは誘導系で表され、それは一般に構造系とは一致しないという点にご注意ください。すなわち、インパルス応答分析の際に与えるショックは、一般には構造ショックとは異なります。構造ショックを識別するためには、経済理論等に基づき、短期制約もしくは長期制約を設定する必要があります。これらは計量経済学的な話であり、EViewsの話ではありませんので、解説は行いません。EViewsで行う場合の流れだけ簡単にご紹介します。

構造VARモデルの推定とそれに基づくインパルス応答分析を行いたい場合、いったん上記の標準的な手順でVARモデルを推定した後、VARオブジェクト上でProc > Estimate Structural Factorizationと操作し、制約を指定します。制約は事前に行列オブジェクトを作成することでも指定できますが、ここでは簡単に、デフォルト設定で操作を実行してみます。

図1-1

推定結果が得られます。

図1-1

インパルス応答分析の話に戻ります。構造ショックを与えた場合の応答を求めたい場合、Impulse ReponsesダイアログのImpulse Definitionタブにおいて、Structural Decompositionを選択します(構造VARモデルを推定していない場合、このボタンは有効になりません)。

図1-1

構造 VAR モデルのインパルス応答が得られました。

図1-1

分散分解

ある変数の変動に対してどの変数がどれだけ寄与しているかを確認するには、分散分解を利用します。VARオブジェクト上でView>Variance Decompositionと操作することで、分散分解が可能です。

図1-1

S.E.列は予測誤差を表しています。残りの列は各ショックの予測誤差への寄与率(%)を表します(表示桁数の関係でそうは見えないかもしれませんが、水平方向に足すと100%になります)。ウィンドウ左のツリーで折れ線グラフ、積み上げ棒グラフで結果を表示することもできます。

図1-1

まとめ

今回は利用できる説明変数の拡張のためにVARモデルを利用した場合の予測について解説しました。次回は本予測シリーズの締めくくりとして、モデルオブジェクトを利用した予測について解説を行います。

なお、本資料の目的はあくまで予測にありますので、今回は基本的なVARモデルに基づいて解説を行いました。ベクトル誤差修正(VEC)モデル、構造VARの詳細、Bayesian VAR等については、EViewsマニュアル関連書籍でも解説を行っております。是非ご利用ください。

page_top_icon