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)
次のグラフが出てくるので、視覚的に確認する。
ここでは詳しく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)
次のグラフが出てくるので、視覚的に確認する。
コメント
コメントを投稿