Quick Update on the Components of Bond Returns

[This article was first published on Timely Portfolio, 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.

In Real Squeeze, -1% Guaranteed Real Real Return! Yummy??, and Historical Sources of Bond Returns, I offer some historical perspective on the only sources of bond returns: inflation, real returns, and credit.  Assuming no credit risk in US Treasuries (probably not a good assumption given this Bloomberg quote on CDS on US Treasuries), the formula is fixed, and all inputs except inflation are provided ex-ante.  While bond prices can fluctuate wildly (Extreme Bond Returns), the experience over the life of a bond and a bond index is predetermined by the yield to maturity.  Unfortunately, that guaranteed experience in inflation or deflation is not so pleasant.

While everyone should know R, I understand that some readers would prefer an easier route.  FRED as usual comes to the rescue.  Unfortunately though, labeling is not allowed.  The codes can be translated as follows:

  • DBAA = total return on BAA
  • DBAA – (DGS10 – DFII10) = credit return
  • DGS10 – DFII10 = inflation (expected)
  • DGS10 = real return

In the spirit of continuous improvement, here is the chart now using lattice and latticeExtra.

From TimelyPortfolio

R code now in GIST:

require(quantmod)
require(PerformanceAnalytics)
require(lattice)
require(latticeExtra)
getSymbols("GS10",src="FRED") #load 10yTreasury
getSymbols("BAA",src="FRED") #load Corporate for credit
getSymbols("CPIAUCSL",src="FRED") #load CPI for inflation
bondReturnSources<-na.omit(merge(ROC(CPIAUCSL,12,type="discrete")*100,
BAA-GS10,GS10-ROC(CPIAUCSL,12,type="discrete")*100))
bondReturnSources<-merge(bondReturnSources,
bondReturnSources[,1]+bondReturnSources[,2]+bondReturnSources[,3]) #add for total
colnames(bondReturnSources)<-c("Inflation","Credit","Real","Total")
chart.TimeSeries(bondReturnSources,legend.loc="bottom",
main="Historical Sources of Bond Returns",
ylab="Yield as %",
colorset=c("darkolivegreen3","cadetblue","goldenrod","gray70"))
xyplot(bondReturnSources,
col = c("darkolivegreen3","cadetblue","goldenrod","gray70"),
lwd = 3,
par.settings = theEconomist.theme(box = "transparent"),
lattice.options = theEconomist.opts(),
main = "Sources of US Bond Returns")

To leave a comment for the author, please follow the link and comment on their blog: Timely Portfolio.

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)