Easy way to get yield curve : what you need is only "FRBData" package !

[This article was first published on My Life as a Mock Quant in English, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

I made FRBData package and registerd it on CRAN.
This package allow you to download financial data from FRB’s website.
This website provide many economical data such as consumer credit, money stock.

This article show you how to use this package.
(But, it has only a function about interest rate now. I will create other functions to download other macro-economical data in next version.)

First, because some mirror-site don’t update this package at this time, you should install it via CRAN.
(you may need to install the R which has version more than 2.12.)

install.packages("FRBData", repos = "http://cran.r-project.org")

Load library.

As an example, we download treasury and swap curve from 2005 to 2011.
start <- as.Date("2005-12-31")
end   <- as.Date("2011-03-31")
curve.treasury <- GetInterestRates("TCMNOM", from = start, to = end)
curve.swap     <- GetInterestRates("SWAPS",  from = start, to = end)

these data are an xts object.
> class(curve.swap)
[1] "xts" "zoo"
> head(curve.swap)
             1Y   2Y   3Y   4Y   5Y   7Y  10Y  30Y
2006-01-03 4.83 4.81 4.80 4.82 4.83 4.86 4.90 5.05
2006-01-04 4.79 4.76 4.76 4.78 4.80 4.84 4.90 5.08
2006-01-05 4.79 4.76 4.76 4.77 4.79 4.83 4.89 5.06
2006-01-06 4.81 4.78 4.78 4.80 4.81 4.85 4.90 5.08
2006-01-09 4.81 4.77 4.77 4.78 4.80 4.83 4.88 5.05
2006-01-10 4.83 4.81 4.80 4.82 4.83 4.86 4.92 5.08

plot "10Y swap spread"
#plot 10Y swap spread
plot(curve.swap[, "10Y"] - curve.treasury[, "10Y"], main = "swap spread")

plot time-varying treasury term structure
#plot yield curve by each year
curve.treasury.each.year <- t(curve.treasury[endpoints(curve.swap, on = "years")])
matplot(curve.treasury.each.year, main = "time-varying treasury yield curve",
 type = "l", lwd = 2,lty = 1, xlab = "Term", ylab = "Yield")
legend(8.5, 2.0, legend = substr(colnames(curve.treasury.each.year), 1, 4),
 col=1:ncol(curve.treasury.each.year), lty = 1, lwd = 2)
par(xaxt = "s")

If you would like to get other interest rate data, please check Reference manual.

I think that this package will provide you good chance of analyzing yield curve such as yield curve e arbitrage.
Enjoy !
(...and tell me interesting quant job in secret 🙂 )

To leave a comment for the author, please follow the link and comment on their blog: My Life as a Mock Quant in English.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)