RパッケージmFilterによるHPフィルターの簡単な使い方

Rパッケージ mFilter によるHPフィルターの簡単な使い方。HPフィルターの処理のみでRを用い、それ以降の加工はExcelに移ることを想定しているので、Rでのグラフ設定などはしない。

 

HPフィルターは景気循環分析ではトレンド線の抽出のために用いる。

パラメータのλは小さいほどトレンド線を直線に近づけるもので、年次データでは100、四半期データでは1600、月次データでは14400を使うのが標準である。GDPのように指数関数的に変化し続ける場合には自然対数をとって直線に近づけてから用いる。

 

ここでアメリカの名目GDPの四半期データの元データをQQの名前で用いる。

元データはhttps://fred.stlouisfed.org/series/GDP

データの入力方法はいろいろあるので、ここではQQにデータがあるものとして始める。

Rのコードは以下の通り。

まずmFilterパッケージのインストール

install.packages("mFilter")

これは最初の一度だけよい。

次にパッケージの読み込み

library(mFilter)

これは毎回、始める前に読み込む。

指数関数的に増加するベクトルがQQの名で入っているとする。ここではラベルは無しで数字のみのベクトルである。

QQ.hp=hpfilter(log(QQ), freq=1600,type=c("lambda"),drift=F)

par(mfrow=c(2,1))

plot(QQ,typ="l")

lines(exp(QQ.hp$trend),typ="l",col="red")

plot(QQ/exp(QQ.hp$trend),typ="l",col="blue")

write(exp(QQ.hp$trend),file="exp.hpQtrend.xls", ncolumns=1)

次のグラフが出てくるので、視覚的に確認する。

 

上のグラフは黒い線が元のデータ、赤い線がトレンド成分である。
下のグラフは元のデータをトレンド成分で割ったものでサイクル成分となる

QQ.hp$trend の名前でHPフィルターによるトレンド成分がデータがPCにExcel形式で書き出されているので、それをExcelで使う。サイクル成分と、NBERによる不況の時期(四半期)を重ねると次のようになる。




なお、GDPの伸び率で示すと以下のようになる。(コロナの時期は振幅が大きく枠を超えている)
 

伸び率でもよさそうに見えるかもしれないが、よく見ると好況末期の違い(トレンドは上昇、伸び率では緩やかに減速)、急速減少の後の動き(トレンドでは急減前に戻る、伸び率では急減に比べて増加が過度に強調)などがわかる。景気循環ではトレンドの方がわかりやすい。

ここでは詳しくHPフィルターの説明はしないが、簡単にサイクル成分が出てくるので便利である。ただし、データの端の部分は不安定なので、直近の分析には使えないことになっている。景気循環では中長期の分析に適している。

次にアメリカの名目GDPの年次の元データをAAの名前で用いる。

元データは https://fred.stlouisfed.org/series/GDPA

Rのコードは以下の通り。

AA.hp=hpfilter(log(AA), freq=100,type=c("lambda"),drift=F)

par(mfrow=c(2,1))

plot(AA,typ="l")

lines(exp(AA.hp$trend),typ="l",col="red")

plot(AA/exp(AA.hp$trend),typ="l",col="blue")

write(exp(AA.hp$trend),file="exp.hpAtrend.xls", ncolumns=1) 

次のグラフが出てくるので、視覚的に確認する。




最後に月次のデータとしてアメリカのIndustrial Production(季節調整済)を用いる 

元データは https://fred.stlouisfed.org/series/INDPRO

Rのコードは以下の通り。

MM.hp=hpfilter(log(MM), freq=14400,type=c("lambda"),drift=F)

par(mfrow=c(2,1))

plot(MM,typ="l")

lines(exp(MM.hp$trend),typ="l",col="red")

plot(MM/exp(MM.hp$trend),typ="l",col="blue")

write(exp(MM.hp$trend),file="exp.hpMtrend.xls", ncolumns=1) 


次のグラフが出てくるので、視覚的に確認する。


このサイクル成分と、NBERによる不況の時期(月次)を重ねると次のようになる。


















コメント

人気の投稿