【日次GDP】BVARについて
おはこんばんにちは。日次GDP推計を休日に進めているのですが、今日は少し勉強編でBVARについての記事を書きたいと思います。このBVARはFRBアトランタ連銀のGDPNowでも使用されていることから、日次GDP推計との親和性も高いと思われます。そもそも、時系列でアウトサンプルの予測精度を上げたいということになると真っ先に思いつくのがBVARです。Doan, Litterman and Sims(1984)で提案されたこのモデルは予測精度が良いので、非常に有効な手段になると思われます。BVARはBayesian Vector Autoregressionの略で、ベクトル自己回帰モデル(VAR)の派生版です。「VAR」とネットで調べるとまずValue at Risk(VaR)が出てくると思いますが、それとは違います。よく見るとaが小文字になっていることに気づくかと思います。
さて、BVARの説明をこれから行おうとするのですが、その前にまず基本的なVARの説明からしたいと思います。ただし、歴史的な背景(大型マクロ計量モデルからの経緯など)には触れません。あくまで、BVARを説明するうえで必要な知識について触れたいと思います。
Unrestricted VARについて
まず、注意点を一点。この投稿では、もっとも基本的なVARのことをUnrestricted VAR(UVAR)と呼ぶことにします。UVARはSims(1980)の論文が有名です*1。このモデルには、理論的な基礎づけは原則ありません。あくまで実証的なモデルです。UVARは一般系は以下のような形をしています。
ここで、は時点、は変数の数、はラグ数を表しています。上式を見ると、UVARは自己回帰+他変数のラグでt期の変数を説明しようとするモデルであると言えます。しばしば、経済の実証分析で使用され、インサンプルの当てはまりが良いことも知られています(GDP、消費、投資、金利、マネーサプライの5変数VARで金融政策の波及経路を分析したり・・・)。推定するパラメータの個数は、回帰式1本だけでJK+1個(定数項込み)の係数を含むので、J本になればJ(JK+1)個になります。また、がJ(J+1)/2個のパラメータを持っているので、合計J(JK+1)+J(J+1)/2個のパラメータを推定することになり、かなりパラメータ数が多い印象です(これは後々重要になってきます)。具体的な推計方法ですが、UVARは同時方程式体系ではないのでそこまで面倒ではありません。UVAR自体はSeemingly Unrestricted Regression Equation(SUR)の一種でそれぞれの方程式は誤差項の相関を通じて関係してはいますが(の部分)、全ての回帰式が同じ説明変数を持つため、各方程式を最小二乗法(OLS)によって推定するだけで良いことが知られています。
この事実を説明してみましょう(BVARが気になる方は読み飛ばしてもらって構いません)。説明のために今、UVARをSURの一般系に書き直します。上式はt期のVAR(K)システムですが、UVARを推定する際はこれらJ本の方程式がサンプル数Tセット分存在するので、実際のシステム体系は以下のようになります。
ここで、
です。上式とは違い、変数順で並べられていることに注意してください(つまり、各方程式を並べる優先順位は1番目にj、2番目にtとなっている)。また、が全ての変数について等しいことに注目してください(jに依存していません、VARなので当たり前ですが)。これが後々非常に重要になってきます。の分散共分散行列は
となっており、それぞれの変数は誤差項の相関を通じて関係しています(ただし、同じ変数内の異なる時点間の相関はないと仮定します)。このような場合、一般化最小二乗法(GLS)を用いて推計を行うことになりますが、これら方程式体系において説明変数が同じであるならば、GLS推定量とOLS推定量は同値になります。それを確かめてみましょう。上述した方程式体系(1)のGLS推定量は以下になります(GLS推定に関してはこちらを参照)。
ここで、は誤差項の分散共分散行列のうち、スカラーである分散、共分散を取り出した行列です。先ほど確認したように、なのでであり、その転置もとなります。よって、クロネッカー積の混合積の性質を用いると、
となり、各経済変数の方程式を別個にOLS推計していけばよいことがわかります。
OLS推定に際し、VARの次数Kの選択を選択する必要がありますが、次数KはAIC(BIC)を評価軸に探索的に決定します。つまり、いろいろな値をKに設定し、OLS推計を行い、計算されたVAR(K)のAIC(BIC)のうちで最も値が大きいモデルの次数を真のモデルの次数Kとして採用するということです。RにもVARselect()という関数があり、引数にラグの探索最大数とデータを渡すことで最適な次数を計算してくれます(便利)。
このようにUVARはOLS推計で各変数間の相互依存関係をデータから推計できる手軽な手法です。私が知っている分野ですと財政政策乗数の推計に使用されていました。GDP、消費、投資、政府支出の4変数でVARを推定し、推定したVARでインパルス応答を見ることで1単位の財政支出の増加がGDP等に与える影響を定量的にシミュレートすることができたりします(指導教官が論文を書いてました)。そもそも私の専門のDSGEも誘導系に書き直せばVAR形式になり、インパルス応答などは基本的に一緒です。また、経済変数は慣性が強いので(特に我が国の場合)、インサンプルのモデルの当てはまりもいいです。ただし、あくまでインサンプルです。アウトサンプルの当てはまりはそれほど良い印象はありません。なぜなら、推定パラメータが多すぎるからです。UVARの予測に関する問題点はover-parametrizationです。例えば、先ほどの4変数UVARでラグが6期だったとすると、推定すべきパラメータは31個になります。よって、データ数にもよりますが、パラメータ数がデータ数に近づくとインサンプルの補間に近づき、過学習を引き起こす危険性があります。日次GDP推計は大量の変数を使用するのでこの問題は非常に致命的になります。BVARはこの問題を解決することに主眼を置いています。
BVARについて
UVARの問題点はover-parametrizationであると述べました。BVARはこの問題を防ぐために不必要な説明変数(のパラメータ)をそぎ落とそうとします。ただ、不要なパラメータを推定する前に0と仮置き(カリブレート)するのではなく、1階の自己に関わるパラメータは1周り、その他変数のパラメータは0周りに正規分布するという形の制約を与えます。このモデルの最大の仮定は「各経済変数は多かれ少なかれドリフト付き1階のランダムウォークに従う」というものであり、上述したような事前分布を先験的に与えた上で推定を行うのです。砕けた言い方をすると、BVARの考え方は「経済変数の挙動は基本はランダムウォークだけど他変数のラグに予測力向上に資するものがあればそれも取り入れるよ」というものなんです。さて、前置きが長くなりましたが、具体的な説明に移りたいと思います。
具体的な推定方法(カルマンフィルタ)
上述した事前分布に加えて、BVARがUVARと異なる点はパラメータがtime-varyingであるということです。なんとなく、パラメータがずっと固定よりもサンプルが増えるたびにその値が更新されるほうが予測精度が上がりそうですよね(笑)。推定手法としてはUVARの時のようにOLSをそれぞれにかけることはせず、カルマンフィルタと呼ばれるアルゴリズムを用いて推定を行います。BVARは以下のような状態空間モデルとして定義されます(各ベクトル、行列の次元はUVAR時と同じです)。
状態空間モデルは観測可能なデータ(ex.経済統計)を用いて、観測不可能なデータ(ex.リスクプレミアムや限界消費性向等)を推定します。観測可能なデータと不可能なデータを関連付ける方程式を観測方程式、観測不可能なデータの挙動をモデル化した方程式を遷移方程式と呼びます。ここでは、1本目が観測方程式、2本目が遷移方程式となります。御覧の通り、観測方程式は通常のVARの形をしている一方、遷移方程式はAR(1)となっており、これによってパラメータは過去の値を引きずりながらによって確率的に変動します。は自己回帰係数です。誤差項とは平均0の正規分布に従い、その分散は
で与えられます。ここで、は既知であるとします。今、t-1期までのデータが入手可能であるとすると、そのデータをカルマンフィルタアルゴリズムで推定したとその分散共分散行列を用いて、t期の予想値を以下のように計算します。
観測可能な変数の予測値はこの値を用いて計算します。
次にt期の観測値が得られると次の更新方程式を用いてを計算します。
かつの場合は逐次最小二乗法に一致します。要は入手できるサンプル増えるたびにOLSをやり直していくことと同値だということです。こうして推計を行うのがBVARなのですが、カルマンフィルタは漸化式なので初期値を決めてやる必要があります。BVARの2つ目の特徴は初期値の計算に混合推定法を用いているところであり、ここに前述した事前分布が関係してきます。
カルマンフィルタの初期値をどのようにきめるか
初期値をどうやって計算するのかを考えた際にすぐ思いつく方法としては、カルマンフィルタのスタート地点tの前に、初期値推計期間をある程度用意し、でを推定する方法があります。つまり、観測方程式をGLS推計し、そのパラメータを初期値とする方法です。その際のGLS推定量は
です。これでもいいんですが、これではただ時変パラメータを推計しているだけで先ほど述べたover-parametrizationの問題にはアプローチできていません。そこで、ここではパラメータに対してなにか先験的な情報が得られているとしましょう。つまり、先述した「経済変数の挙動は基本はランダムウォークだけど他変数のラグに予測力向上に資するものがあればそれも取り入れるよ」という予想です。これを定式化してみましょう。つまり、パラメータに対して以下の制約式を課します。
ここで、です。また、はの予想値であり、はその予想値の周りでのばらつきを表しています。取っ付きにくいかもしれませんが、は1階自己回帰係数に関わる部分は1、それ以外は0となるベクトルで、は単位行列だと思ってもらえばいいです。つまり、
みたいな感じです。ここではi番目の方程式のj番目の変数のk次ラグにかかるパラメータを表しています。混合推定では、正規分布に従う観測値とこの事前分布が独立であるという仮定の下で観測方程式とを以下のように組み合わせます。
ここで、
そして、このシステム体系をGLSで推計するのです。こうすることで、事前分布を考慮した初期値の推定を行うことができます。GLS推定量は以下のようになります。
ご覧になればわかるように、GLS推定量は上記2本の連立方程式(実際には行列なので何本もありますが)それぞれのGLS推定量を按分したような推定量になります。ここで、は既知ではないので、いったんOLSで推計しその推定量を用います。問題はの置き方です。の各要素を小さくとれば、事前分布に整合的な推定量が得られます(つまり、ランダムウォーク)。逆に、大きくとれば通常のGLS推定量に近づいていきます。Doan, Litternam and Sims (1984)では以下のように分散を置いています。
ここで、は番目の方程式の自己回帰パラメータ、は番目方程式の他変数ラグ項にかかるパラメータ、は定数項です。そして、はハイパーパラメータと呼ばれるもので、カルマンフィルタにかけるパラメータの初期値の事前分布の分布の広がりを決定するパラメータとなっています。これらは初期値の推定を行う前に値を指定する必要があります。各ハイパーパラメータの具体的な特徴は以下の通りです。はの分散にのみ出現することから自己回帰係数に影響を与えるパラメータとなっています。具体的には、が大きくなればなるほど自己回帰係数は事前分布から大きく離れた辺りを取りうることになります。はの分散にのみ出現することから他変数のラグ項に影響を与えるパラメータとなっています。こちらも値が大きくなればなるほど係数は事前分布から大きく離れた辺りを取りうることになります。は定数項の事前分布に影響を与えるパラメータでこちらも考え方は同じです。はラグ項の分散(つまり定数項以外)に影響を与えるパラメータで、値が大きくなるにつれ、初期値は事前分布に近づいていきます。最後にですが、こちらは全体にかかるパラメータで、値が大きくなるにつれ、初期値は事前分布から遠ざかります。
上式には、ハイパーパラメータ以外にもパラメータや変数が存在します。はをそれぞれAR(m)でフィッティングをかけた時の残差の標準偏差の推定値です。変数間のスケーリングの違いを考慮するために、をで割ったものを使用しています。本来ならば、VARの残差の標準偏差を使用すべきなのですが、推定する前にわかるわけもないので、それぞれAR(m)で推定をかけ、その標準偏差を使用しています*2。は完全に恣意的なパラメータで、DLSではrelative weightsと呼ばれているものです。i番目の方程式のj番目の変数のラグ項にかかるパラメータが0であるかどうかについて、分析者の先験情報を反映するためのパラメータです。分散の式を見ればわかるように、relative weightが大きくなれば分散は小さくなり、推定値は事前分布に近づいていきます。DLSでは、ほとんどの変数はでよいと主張されています。つまり、自己ラグにかかる事前分布の分散に関しては確信をもってランダムウォークであるといえる一方、他変数ラグについては予測力向上に役立つもののあることを考え、値を1と置いているのです。一方、為替レートや株価はランダムウォーク色が強いということから大きい値を使用しています。最後に、とには分母にkがついています。つまり、ラグ次数kが大きくなればなるほど、その係数は0に近づいていくことを先験的情報として仮定していることになります*3。
これらがいわゆるMinnesota Priorの正体です*4。初期値が事前分布に近づけばBVARはランダムウォークに近づきますし、離れるとUVARに近づきます。現実はその間となるのですが、なにを評価尺度としてハイパーパラメータの値を決めるかというと、それは当てはまりの良さということになります。
ハイパーパラメータの決定方法とその評価尺度
当てはまりの良さと言ってもいろいろありますが、DLSはその時点で観測可能なデータから予測できるk期先の予測値の当てはまりの良さを基準としています。DLSでは以下の予測誤差ベクトルのクロス積和を最小化することを目的関数として、ハイパーパラメータのチューニングを行っています。
ここで、はカルマンフィルタによるk期先の予測値です(kをいくつ先にすれば良いかは不明)。このクロス積はであり、これをフィルタリングをかけるt=1期からサンプル期間であるt=T期まで計算していくので、最終的にはT個の予測誤差ベクトルを得ることになり、以下のようなこれらの総和を最小化します。
より厳密にはこのクロス積和の対数値を最小化するハイパーパラメータの値をグリッドサーチやランダムサーチで探索していくことになります*5。
とまあ、BVARの推定方法はこんな感じです。他のVARと違い、恣意的であり、また推定方法が機械学習に近い点が特徴ではないかと思います。そもそも、BVARは予測に特化したVARですから、他のVARとは別物と考える方が良いかもです。
*1:Sims, Christopher A, 1980. "Macroeconomics and Reality," Econometrica, Econometric Society, vol. 48(1), pages 1-48, January.
*2:ランダムウォークが先験情報なので整合性は取れているような気がします
*3:このおかげでVARの次数をこちらで指定する必要がなくなります。適当に大きい次数を指定しておけば、必要のない次数の大きいパラメータに関しては事前と値が0になるので。
*4:実はこれに加えて自己回帰パラメータの総和が1、他変数のラグ項にかかるパラメータの総和が0となる制約を課すのですが、話が複雑になりすぎるので今回は割愛しました