Kuschning, N., Vashold, L. (2021) BVAR: Bayesian Vector Autoregressions with Hierarchical Prior Selection in R. Journal of Statistical Software, 100(14).
RパッケージBVARの解説。これ、いまやりたいこととはちょっと違うんだろうなとうすうす感じてはいたのだが、どんな話か気になって。
1. イントロダクション
[…VARの紹介…]
VARをベイジアンで推定するときに難しいのは事前分布である。Giannone, Lenza, Primiceri (2015 Rev.Econ.Stat.)は階層モデリングによる解決を提案している。
VARのRパッケージとしてはvarsパッケージの登場が基盤を提供した。他にMTS, BigVAR, tsDynがある。しかしvarsパッケージのベイジアン版にあたるのはない。mvasvパッケージは時変パラメータと確率的ボラタリティに、mfbvarは頻度混合VARに特化している。bvartoolsは便利な関数を提供しているがあいにく推定はしてくれない。
というわけで、ご紹介します。BVARパッケージ! 事前分布選択の階層モデリングアプローチを採用!
2. 計量経済学的フレームワーク
2.1 モデルの特定
まずはVAR(p)モデルについて。長さ\(M\)の内生変数ベクトル\(\mathbf{y}_t\)について、$$ \mathbf{y}_t = \mathbf{a}_0 + \mathbf{A}_1 y_{t-1} + \cdots + \mathbf{A}_p y_{t-p} + \epsilon_t$$ $$ \epsilon_t \sim N(0, \Sigma)$$ パラメータは\(M + M^2 p\)個もある。大変です。
2.2 事前分布の選択と指定
Giannoneらの提案はこういうの。\( \mathbf{y} = (\mathbf{y}_{p+1}, \mathbf{y}_\top \)とする[AR(1)なら時点2から最後までの観察を縦に積んだベクトルね]。パラメータをまとめて\(\theta\)とする。ハイパーパラメータを\(\gamma\)として、$$ p(\gamma | \mathbf{y}) \propto p(\mathbf{y} | \theta, \gamma) p(\theta|\gamma) p(\gamma) $$ [うん、まあ、そうだよね…] でもって、$$ p(\mathbf{y}|\gamma) | \int p(\mathbf{y}| \theta, \gamma) p(\theta | \gamma) d\theta $$ これはデータの密度をハイパーパラメータの関数として表現していて、周辺尤度ともいう。周辺尤度の最大化は経験ベイズ法を構成し、明確な頻度主義的解釈が可能となる。
[なあんだ。なんのことかと思ったら経験ベイズじゃん! パラメータを消した周辺尤度を最大化するようにハイパーパラメータを決めましょうって話ね]
Giannoneらは共役事前分布、特に正規逆Wishart族に焦点を当てていた。これはいろんな事前分布をカバーしている。
\(\mathbf{A} = [\mathbf{a}_0, \mathbf{A}_1, \ldots, \mathbf{A}_p]^\top, \beta = vec(\mathbf{A})\)としよう。Giannoneらの共約事前分布はこう書ける。$$ \Sigma \sim IW(\Psi, d) $$ $$ \beta|\Sigma \sim N(\mathbf{b}, \Sigma \otimes \Omega)$$ \(\mathbf{b}, \Omega, \Psi, d\)はハイパーパラメータの関数ね。
Gionnoneraは特に以下の3つの具体的な事前分布について考えている。ミネソタ事前分布、係数和事前分布、単一単位根事前分布。順に説明しよう。[ありがとう、でもノーサンキュー]
3. BVARパッケージ
そんなわけでね、階層的アプローチで事前分布を選択するBVARパッケージをつくったんですよー。使ってね![とは書いてないけど、まあそういう主旨の話だと思う。ちゃんと読んでないけどな]
4. 応用例
[まるごとパス。でもこういうチュートリアルがあるのはいざというときにありがたいですね]
5. 結論
[…]
というわけで、BVARパッケージはベイジアンVARモデルのための万能ツールをご提供する。ちなみにBVARverseパッケージというのをつくってまして、tidyワークフローに準拠してます。云々。
————
よくわかったよ! 要はvarsパッケージの経験ベイズ版なのね! 階層っていうから、なんか時系列データが階層構造になっているような壮大なモデルを推定すんのかと思ったけど、そうじゃないのね! もちろんマルコフスイッチングとかが載っているわけではないのね! 了解!