Tuesday , November 12 2019
Home / J. W. Mason: SLACK WIRE / CBO Interest Rate Forecasts, 2011-2019

CBO Interest Rate Forecasts, 2011-2019

Summary:
This is just a brief addition to the previous post. I should have included this figure, which shows the CBO’s 10-year forecasts for the interest rate on the 10-year Treasury bond, compared with the actual interest rate. Forecasts by year made. Source: CBO 10-Year Economic Projections, various yearsOne obvious point here is that, for most of the past decade, the CBO has been projecting a return of interest rates to “normal” levels, which has stubbornly failed to take place. If we compare the interest rate on Treasury bonds at any point since 2010 to the CBO’s forecasts from a couple years before, the actual interest rate is lower than the forecast. This is especially true in the earlier years. Another point, more relevant to my post, is the latest adjustment really is a big deal. While

Topics:
JW Mason considers the following as important:

This could be interesting, too:

Gregor Samsa writes Beam me up, Scotty, it’s getting too real!

Gregor Samsa writes China Still Looking For A Rollback

James Picerno writes Book Bits | 9 November 2019

Gregor Samsa writes Highest Paid Public-Sector Employee In Each State

This is just a brief addition to the previous post. I should have included this figure, which shows the CBO’s 10-year forecasts for the interest rate on the 10-year Treasury bond, compared with the actual interest rate.

CBO Interest Rate Forecasts, 2011-2019
Forecasts by year made. Source: CBO 10-Year Economic Projections, various years

One obvious point here is that, for most of the past decade, the CBO has been projecting a return of interest rates to “normal” levels, which has stubbornly failed to take place. If we compare the interest rate on Treasury bonds at any point since 2010 to the CBO’s forecasts from a couple years before, the actual interest rate is lower than the forecast. This is especially true in the earlier years.

Another point, more relevant to my post, is the latest adjustment really is a big deal. While there have been comparable downward adjustments, there haven’t been any in a while; in fact for the past four years the long-run forecast has been fixed around 3.7 percent.1 This is also the first interest rate forecast since the recession that predicts that interest rates will remain near current levels indefinitely. Of course, it may still end up being an overestimate, if the recent decline in rates continues.

One takeaway is that when trying to guess what interest rates will be in the future, you probably can’t do better than assuming that they’ll be more or less where current rates are. There have been many, many confident predictions over the past decade that interest rates will soon rise — the CBO is far from the worst offender here — and they have consistently been proven wrong. If you want to talk about the future path of government debt, or some similar question where interest rates matter, you need a very good reason to assume interest rates much higher than what we see today. A strong feeling that interest rates just have to go up someday, isn’t enough. And as long as interest rates remain close to current levels, the debt ratio is not going to go up very much, even with deficits significantly larger than today’s.

I should note that while I think pictures like this are clarifying, I don’t find that they’re always effective rhetorically. People who are committed to some variety of hard-money view find it easy to say, “well sure, predictions of rising rates have been wrong for many years. But how do you know they won’t be right this time?”

* * *

If you’re just interested in the policy debate, you can stop reading here. But I can’t help pointing to another takeaway, from a more theoretical perspective: This picture is clearly not the result of a process where expected value of a variable is just an unbiased estimate of its true future value. In that case the errors should be distributed at random around the actual path, instead of all way off to one side.2

To be sure, the CBO’s numbers are not forecasts in a strict sense, but inputs into its legally mandated projections of the future path of the debt. The CBO needs to make forecasts in a way that minimizes not just ex post errors, but challenges to is credibility and neutrality. The relevant question is not whether the forecasts are as accurate as they can be, but whether they are “reasonable” in some broader sense. And this is as it should be! If I were dictator of the CBO, I would not insist on using forecast values that I myself think will be closest to the true values, but would balance this against the need for a consistent and transparent methodology and the costs of getting too far from the views of the relevant community of experts. The CBO is not simply a machine for generating forecasts, it plays a specific role in a concrete political process.

But of course, this isn’t just the CBO. Any institution operates on the basis of a set of shared beliefs about the world, and the process by which those beliefs are generated needs to be compatible with the other activities and reproduction of the institution. In any setting where people have to act collectively, getting as accurate as possible a picture of the relevant facts needs to be weighed against the need for some picture that everyone can agree on. Which, from the point of view of economics, suggests we need to think more carefully about expectations. We need to distinguish between the “expected” value as the central tendency of a given probability distribution; the subjective belief in someone’s head about the likely outcome; and the implicit belief about the outcome that is the basis of the relevant behavior. The essence of the rational expectations revolution was to collapse these three senses into the first one, effectively removing expectations as an independent object of inquiry.


For anyone interested, here is the R code that generates the above figure. I think including the relevant code whenever you present quantitative results is best practice, for blogs as much as anywhere else.

# can update this as new projections become available
files <- c('https://www.cbo.gov/system/files/2018-06/51135-2011-08-economicprojections.xlsx',
'https://www.cbo.gov/system/files/2018-06/51135-2012-08-economicprojections.xlsx',
'https://www.cbo.gov/sites/default/files/recurringdata/51135-2013-02-economicprojections.xls',
'https://www.cbo.gov/sites/default/files/recurringdata/51135-2014-08-economicprojections.xlsx',
'https://www.cbo.gov/sites/default/files/recurringdata/51135-2015-08-economicprojections.xlsx',
'https://www.cbo.gov/sites/default/files/recurringdata/51135-2016-08-economicprojections-2.xlsx',
'https://www.cbo.gov/sites/default/files/recurringdata/51135-2017-06-economicprojections2.xlsx',
'https://www.cbo.gov/system/files/2018-08/51135-2018-08-economicprojections.xlsx',
'https://www.cbo.gov/system/files/2019-08/51135-2019-08-economicprojections_1.xlsx')
# using the August reports where available. For some reason there's none in summer 2013.

n <- length(files)
cbo.projections <- list()

for (i in 1:n) {
temp <- tempfile()
download.file(files[i], temp)
x <- read.xlsx(temp, sheetIndex = 3)
unlink(temp)
cbo.projections[[i]] <- x
}

names(cbo.projections) <- 2011:2019

cbo.interest <- as.data.frame(matrix(nrow=n*2, ncol=12))
names(cbo.interest) <- c('forecast.year', paste0('y', 1:11))
cbo.interest[,1] <- rep(2011:2019, each=2)

s <- c(7, 7, 8, rep(7, n-3))
# for some reason in 2013 the data starts one column further over.

for (i in 1:n){
x <- cbo.projections[[i]]
yearrow <- subset(x, x[,4]=='Units', select=s[i]:(s[i]+10))
interestrow <- subset(x, x[,2]=='10-Year Treasury Note', select=s[i]:(s[i]+10))
for (j in 1:11){
cbo.interest[i*2-1, j+1] <- levels(yearrow[1,j])[yearrow[1,j]]
cbo.interest[i*2, j+1] <- levels(interestrow[1,j])[interestrow[1,j]]
}

}

interest <- read.delim('https://fred.stlouisfed.org/data/GS10.txt', skip=16, sep =' ')[,-2:-3]
names(interest) <- c('date', 'GS10')
interest$year <- substr(interest$date, 1, 4)
interest.ann <- aggregate(interest$GS10, by=list(interest$year), FUN=mean)

y1 <- 2010
y2 <- 2029

plot(x=y1:y2, y =y1:y2, ylim=c(0,6), xlab='', ylab='Projected Interest Rate')
for (i in seq(1, n*2, by=2)){
lines(x=cbo.interest[i,-1], y=cbo.interest[i+1,-1], col=rainbow(n*2)[i])
}
lines(x=2010:2019, y=interest.ann[58:67,2], lwd=2)
legend(x='bottomright', legend = 2011:2019, col=rainbow(n*2)[seq(1, n*2, by=2)], bty='n', lty=1, ncol=2)
title(main='CBO forecasts for the 10-Year Treasury Bond, 2011-2019')
# the correct thing to do here would be to convert the data to long format and produce the plot with ggplot.
# would be simpler and give prettier results. But this works and I am too lazy to redo it.
  1. The CBO generally makes two forecasts a year; the exceptional size of the current adjustment would be even clearer if I showed all of them, instead of just one per year. But that would make the figure too cluttered.
  2. People who have been exposed to an economics education may be tempted to reply that, yes, the interest rate in 2015 was 2.1 percent, but the true expected value of the 2015 rate as of 2013 was still 3.5 percent. It’s hard to convey how insane this way of thinking is.
About JW Mason
JW Mason
Assistant professor of economics at John Jay College - CUNY, and fellow at the Roosevelt Institute. RT = Read This

Leave a Reply

Your email address will not be published. Required fields are marked *