おめさんの備忘録

特定の金融商品/銘柄の売買の勧誘/推奨等を目的とするものではないです。市場全般の推奨や証券市場等の動向の上昇/下落を示唆するものでもないです。掲載の金融商品/資金運用等による投資によって生じたいかなる損失について、一切の責任を負いません。

レジーム転換モデル+ベイジアンニューラルネットで景気後退確率を予測する方法

これは何

↓を読んでいたら面白そうなことを思いついたので勢いで記す。

Kim, Y. and Kang, K. (2022) "Bayesian Inference of Multivariate Regression Models with Endogenous Markov Regime-Switching Parameters", Journal of Financial Econometrics, 20(3), 391–436.
https://academic.oup.com/jfec/article/20/3/391/5909218

内生的レジーム転換モデル

観測可能な確率ベクトル  (\textbf{y}_t, \textbf{x}_t) について次のDGPを仮定。

 \underset{j \times 1}{\textbf{y}_t} = \underset{j \times 1}{\textbf{m}(s_t)} + \underset{j \times k}{\textbf{B}(s_t)} ~ \underset{k \times 1}{\textbf{x}_t} + \underset{j \times j}{\textbf{L}(s_t)} ~ \underset{j \times 1}{\textbf{e}_t}

ここで、
 \textbf{L}(s_t)\textbf{L}(s_t)':\text{正定値}, \quad s_t \in S:=\{1,...,N\}, \quad t \in \mathbb{Z}.

追加的に、次の仮定が置くことで、レジーム転換を endogenous とする。

 
\underset{(N-1 + j) \times 1}{\begin{bmatrix} \textbf{z}_t \\ \textbf{e}_t \end{bmatrix}}
\stackrel{\text{iid}}{\sim}
\mathcal{N} \left(
\begin{bmatrix} \textbf{z} \\ \textbf{e} \end{bmatrix} \mid
\begin{bmatrix} \textbf{g}_{s_{t-1}} \\ \textbf{0}_j \end{bmatrix},
\begin{bmatrix} \textbf{S}_z & \textbf{R} \\ \textbf{R}' & \textbf{I}_j \end{bmatrix}
\right),
\qquad
s_t = f_{\textbf{z}}(\textbf{z}_t)

ここで、

  •  \textbf{S}_z \in \mathbb{R}^{(N-1) \times (N-1)} は正定値;
  •  \textbf{R} = \textbf{0}_{(n-1) \times j} \Leftrightarrow (\textbf{z}_t \bot \textbf{e}_t) (i.e. レジーム転換が exogenous).

適当に事前分布を設定したのちに、下のパラメータを推定したい。

  •  (\textbf{m}(s), \textbf{B}(s), \text{vech}(\textbf{L}(s)))_{s \in S};
  •  (s_t)_{t\in\mathbb{Z}};
  •  (\textbf{S}_z, \textbf{R})

拡張

元論文では、 \textbf{g}_{s_{t-1}} \in \mathbb{R}^{N-1} は定数であった。
多分、こうすることで、 (s_t)_{t \in \mathbb{Z}} の Markovian property を明確に保持したかったんだと推測。

一方、状態の予測(フォアキャスト)に生かしたいのであれば、 \textbf{z}_t の marginal な mean  \mathbb{E}\textbf{z} は予測に使えそうな time-varying な量でもあってほしい。そこで、

 f_s = f_1 \circ \dots \circ f_{L-1} \circ f_L  : \mathbb{R}^{N-1} \rightarrow \mathbb{R}^{N-1}; \quad \mathbb{E}\textbf{z} = f_s(\textbf{x}_{t-1})

という (Bayesian) feedforward neural network を組み込む。FFNNでなければならない理由はない。とにかく、↑は、ある状態への遷移確率を NN でモデル化したことに相当する。特に、それは  \textbf{x}_{t-1} に依る。

従って、Filardo (1994) と異なる点は、

  • 時変的遷移確率を多項ロジット的な単純なモデルでパラメータ化せず、agnostic に Bayesian Neural Net を取り入れた点;
  • Kim and Kang (2022) の枠組みのもとで、endogeneity を含む点;
  • (かつ、 1次元の潜在変数による endogeneity でなく、 N-1次元の潜在変数による endogeneity においてBayesian Neural Net を取り入れた点)

など。

簡単な設定で試す

データ

McCracken and Ng (2015) の FRED-MD の

の月次データ(2000-10 ~ 2023-01)をフィーリングで選択。追加でFF先物も入れている。

観測方程式(レジームスイッチング・2変量VAR)


\textbf{y}_t = \textbf{m}(s_t) + \textbf{B}(s_t) ~ \textbf{y}_{t-1} + \textbf{L}(s_t) ~ \textbf{e}_t;
\qquad
\textbf{y}_t = \begin{bmatrix} \text{米 鉱工業指数}_t \\ \text{米 失業率}_t \end{bmatrix}.

NNのアーキテクチャ

計算リソース的な観点から、むやみにパラメータ数を増やせないため、
(1) 入力次元は5次元( \textbf{x}_t \in \mathbb{R}^5 \text{ for } t=1,...,T-1 だから);
(2) 隠れ層は2層、10次元;
(3) 出力次元は N-1=2-1=1次元
と、割と conservative(もといテキトー)に設定した。

結果

  • 景気後退の定義

任意の s_t' \in Sに対し、 \hat{m}_1(s_t) \leq \hat{m}_1(s_t') を満たす  s_t \in S を景気後退期と定義する。

トレース

この場合、景気後退期とは  s_t=1。なお、収束診断をしていない暫定的なものであることに注意。


遷移確率の事後分布の例:


もう少しオサレなアニメーション

ココ
github.com

気になる点

  • 遷移確率の変動が少ない
  • MCMCに時間がかかる
  • VIで試したけど、出力結果を評価しづらい
  • model selectionは難題か

参考

  • Filardo, A. J. (1994). "Business-cycle phases and their transitional dynamics", Journal of Business & Economic Statistics, 12(3), 299–308.
  • Kim, Y. and Kang, K. (2022). "Bayesian Inference of Multivariate Regression Models with Endogenous Markov Regime-Switching Parameters", Journal of Financial Econometrics, 20(3), 391–436.
  • McCracken, M. W. and Ng, S. (2015). "FRED-MD: A Monthly Database for Macroeconomic Research", Working Papers 2015-12, Federal Reserve Bank of St. Louis.