Rから米国債イールドデータ収集
ジェネリック国債のデータを確認しようとしたら、ustycなるRのパッケージを見つけたので、簡単な使い方をメモ
ustycは、米国財務省が提供しているDaily Treasury Yield Curve Ratesのデータをまとめて取ってくるという関数が入ったパッケージ。ustycはもちろん、US Treasury Yield Curveの略
(Bloombergのサイトから、GJGB3M, GJGB6M, …, GJGB10, …, GJGB30と各満期の日本のジェネリック国債データを確認したかったが、サイトからでは確認できなくなった?)
使い方はパッケージを読み込んで、関数を実行して多少待つだけ
library(ustyc) yc <- getYieldCurve()
特定の年、月だけ取りたい場合は、getYieldCurve(year = "2014", month = "12")のようにして指定する
yc$df以外は必要ないので、これだけCSVファイルなどに書き出しておく
write.csv(yc$df, file = "TreasuryYield.csv")
利用する時に、xtsに変換してやる
library(xts) yc <- read.csv("TreasuryYield.csv") yc.xts <- xts(yc[-1], order.by = as.Date(yc[, 1]))
BC_30YEARDISPLAYが何を指すのかがよくわからなかったが…
> tail(yc.xts) BC_1MONTH BC_3MONTH BC_6MONTH BC_1YEAR BC_2YEAR BC_3YEAR BC_5YEAR 2014-12-24 0.01 0.01 0.14 0.26 0.73 1.18 1.76 2014-12-26 0.01 0.01 0.10 0.26 0.73 1.19 1.75 2014-12-29 0.01 0.03 0.12 0.25 0.72 1.14 1.72 2014-12-30 0.03 0.03 0.12 0.23 0.69 1.11 1.68 2014-12-31 0.03 0.04 0.12 0.25 0.67 1.10 1.65 2015-01-02 0.02 0.02 0.11 0.25 0.66 1.07 1.61 BC_7YEAR BC_10YEAR BC_20YEAR BC_30YEAR BC_30YEARDISPLAY 2014-12-24 2.09 2.27 2.56 2.83 2.83 2014-12-26 2.07 2.25 2.54 2.81 2.81 2014-12-29 2.02 2.22 2.51 2.78 2.78 2014-12-30 2.00 2.20 2.49 2.76 2.76 2014-12-31 1.97 2.17 2.47 2.75 2.75 2015-01-02 1.92 2.12 2.41 2.69 2.69 > plot(yc.xts[, 9], main = "BC_10YEAR", ylab = "yield (%)")
YieldCurveパッケージを使ったNelson-Siegelモデル、Svenssonモデルへの当てはめ
library(YieldCurve) maturity <- c(1/12, 1/4, 1/2, 1, 2, 3, 5, 7, 10, 20, 30) obs.rate <- yc.xts["2015-01-02", -12] NS.par <- Nelson.Siegel(obs.rate, maturity) NS.rate <- NSrates(NS.par, maturity) SV.par <- Svensson(obs.rate, maturity) SV.rate <- Srates(SV.par, maturity, "Spot") plot(maturity, obs.rate, main = "Fitting yield curve (2015-01-02)", type = "o", ylab = "yield (%)") lines(maturity, NS.rate, col = 2) lines(maturity, SV.rate, col = 4) legend("bottomright", legend = c("observed yield curve", "Nelson-Siegel model", "Svensson model"), col = c(1, 2, 4), lty = 1) grid()