stanによるニューケインジアン・フィリップス曲線の推定
経済学においては失業率とインフレ率をプロットすると負の相関関係が見られるというのが知られていてフィリップス曲線と呼ばれるそうです。
https://gist.github.com/xiangze/b2a29f5f4ffb2be835b2#file-data_for_phillips-ipynb
その関係は10年程度の長期間では変化していき、原因として国ごとに様々な原因が考察されています。
各時点に対して失業率-インフレ率のプロットをして関係を見るのですが、各時点での値は独立ではなく、確率過程としてモデル化できると考えられます。実際ニューケインジアン・フィリップス曲線(NKPC)というモデル提唱されています。
実際のデータがどの程度当てはまるかを論文賃金版ニューケインジアン・フィリップス曲線に関する実証分析に沿ってstanで計算してみました。
データ
- 失業率 http://www.stat.go.jp/data/roudou/longtime/03roudou.htm#hyo_1 1953年から、2011年3~8月は補間値を用いている。
- インフレ率(消費者物価指数) http://www.stat.go.jp/data/cpi/historic.htm
- 賃金上昇率(時間当たり賃金, 現金給与総額/総実労働時間 30人以上) http://www.e-stat.go.jp/SG1/estat/List.do?lid=000001139499
現金給与総額 季節調整済指数及び増減率(30人以上)
のものを使いました。季節変動の補正はX12-ARIMAというARIMAアルゴリズムの実装を使っているそうです。https://ecitizen.jp/x-12-arima/
所得はボーナスがあるので季節により変動するのは予想できましたが、失業率や労働人口が季節変動するというのが個人的には意外でした。季節変動もベイズ推定する方が本当は良いのでしょうが、計算時間の関係で出来ませんでした*1。
モデル
賃金上昇率を用いたモデル(NKWPC)
論文の(17)の式です。
: インフレ率,
:失業率,
: 自然失業率,
: 係数
この式は元の論文では各時点での労働の需給を定常状態の近傍で線形化したもので
λは賃金の粘着性(変わりにくさ)が小さいときに大きくなりNKWPCの傾きは大きくなり、Φは"労働供給曲線の傾き"(失業率と賃金の間の係数)であり大きければNKWPCの傾きは大きくなります(論文9ページに図参照)。しかし式の上では一緒に出てきていてしまっていて上記式を前提とする限りは効果を分離できません。元論文でも一体化した値を推定しています(図表6)
元論文では時系列をローリング推定していますが、ここでは失業率と係数の時間発展にAR(2)モデルを使った以下のモデルで係数の推定を行いました。λΦ=Lとしています。
data{ int<lower=1> N; real<lower=0,upper=100> pi[N]; real<lower=0,upper=100> u[N]; } parameters{ real L[N]; //lambda*phi real<lower=0> un; //natural unemployment rate real<lower=-20,upper=20> beta[N]; real uc[3]; real cL[3]; real b[3]; real<lower=0> sb; real<lower=0> su; real<lower=0> sL; real<lower=0> s; } model{ real p[N-1]; for(i in 3:(N)){ u[i]~normal(uc[1]+uc[2]*u[i-1]+uc[3]*u[i-2],su); L[i]~normal(cL[1]+cL[2]*L[i-1]+cL[3]*L[i-2],sL); beta[i]~normal(b[1]+b[2]*beta[i-1]+b[3]*beta[i-2],sb); } for(i in 1:(N-1)) p[i]<-beta[i]*pi[i+1]-L[i]*(u[i]-un); for(i in 1:(N-1)) pi[i]~normal(p[i],s); su~inv_gamma(0.0001,0.0001); s~inv_gamma(0.0001,0.0001); sL~inv_gamma(0.0001,0.0001); sb~inv_gamma(0.0001,0.0001); }
NKPCmodels/model_fullstateAR2.stan at master · xiangze/NKPCmodels · GitHub
NKPC_AR.ipynb · GitHub
このモデルは収束し、自然失業率(固定)と係数L,βの時間変動の事後分布を得ることができました。
自然失業率
Lとβ
Lとβの25%~75%区間
係数Lはオイルショック(1974年ごろ)とバブル崩壊後(1994年ごろ)に大きく変動しています。賃金上昇率の時間変動の係数βはやはりバブル崩壊後に変動が大きくなっているように見えます。*2
インデグゼーションありモデル
交渉や契約によって賃金の上昇率にインフレ率が組み込まれているような場合にはインデグゼーションありモデル (論文の(21)) という以下のような物価上昇率に基づいた予測を取り入れたモデルが提唱されています。
: インデグゼーションによるインフレ率の指標
ここではCPIの上昇率を物価上昇率として用いました。CPIと賃金の相対的な関係は以下のようになっています。
data{ int<lower=1> N; real<lower=0,upper=100> pi[N]; real<lower=0,upper=100> c[N]; real<lower=0,upper=100> u[N]; } parameters{ real L[N]; //lambda*phi real<lower=0> un; //natural unemployment rate real alpha; real<lower=-20,upper=20> beta[N]; real gamma[N]; real uu[N]; real cc[N]; real uc[3]; real cL[3]; real b[3]; real g[3]; real<lower=0> su; real<lower=0> sL; real<lower=0> sb; real<lower=0> sg; real<lower=0> s; real<lower=0> soc; real<lower=0> sou; } model{ real p[N]; for(i in 3:(N)){ u[i]~normal(uc[1]+uc[2]*u[i-1]+uc[3]*u[i-2],su); L[i]~normal(cL[1]+cL[2]*L[i-1]+cL[3]*L[i-2],sL); beta[i]~normal(b[1]+b[2]*beta[i-1]+b[3]*beta[i-2],sb); gamma[i]~normal(g[1]+g[2]*gamma[i-1]+g[3]*gamma[i-2],sg); } for(i in 1:(N)){ u[i]~normal(uu[i],sou); c[i]~normal(cc[i],soc); } for(i in 2:(N-1)) p[i]<-alpha+gamma[i]*cc[i-1]+beta[i-1]*pi[i+1]-L[i]*(uu[i]-un); for(i in 2:(N-1)) pi[i]~normal(p[i]-gamma[i]*cc[i-1],s); }
https://github.com/xiangze/NKPCmodels/blob/master/model_indegAR2.stan
NKPC_indeg.ipynb · GitHub
がこのモデルは収束しませんでした*3。
またこの式に失業率のARモデル
を逐次的に代入することでより簡単な
論文の式(22)
というARモデルの形にできるのそうなのですが、この形に即したモデルでも係数δ、γが固定の場合、AR(2)の場合で収束しませんでした。
https://github.com/xiangze/NKPCmodels/blob/master/model_indeg_simpleAR2.stan
課題,ToDo
インデグゼーションモデルに関してはモデルの書き方が悪いのか、データの前処理(四半期、季節調整)が悪いのか、前提が誤っているのか...
Reference
- 賃金版ニューケインジアン・フィリップス曲線に関する実証分析
- http://www.esri.go.jp/jp/others/kanko_sbubble/analysis_06_02.pdf
- http://web.mit.edu/14.461/www/part1/slides4.2.pdf
- https://www.boj.or.jp/research/wps_rev/rev_2005/rev05j06.htm/
- http://www.mizuho-ri.co.jp/publication/research/pdf/argument/mron0601-1.pdf 用いるデータを変えると結果が変わるという話
ためになるリンク
pythonでの状態空間モデルの実装、ガウス分布以外も扱えるのでモデルが線形な場合はこれで充分のようです。MCMC(Metropolis-Hastings)も実行できるようです。
イギリスのインフレ率、失業率のVector autoregression modelによる解析、フィリップス曲線はありません。
なぜかデータをExcel形式でダウンロードしてしまったのですが、既にpandasや使いやすいフォーマットで提供されているようです。
Stanによる「状態空間時系列分析入門」の実装
ためになる本
- 作者: 松浦健太郎,石田基広,市川太祐,高橋康介,高柳慎一,福島真太朗
- 出版社/メーカー: 共立出版
- 発売日: 2016/10/25
- メディア: 単行本
- この商品を含むブログ (3件) を見る
経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)
- 作者: 沖本竜義
- 出版社/メーカー: 朝倉書店
- 発売日: 2010/02/01
- メディア: 単行本
- 購入: 4人 クリック: 101回
- この商品を含むブログ (6件) を見る
- 作者: 岩波データサイエンス刊行委員会
- 出版社/メーカー: 岩波書店
- 発売日: 2015/10/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る