Tuesday, August 18, 2015

Interest rates and predictions

I've been playing around with the time series forecasting tools with my home-use copy of Mathematica 10.2. Below is an animation of  the 10-year forecast of the information equilibrium model (or see hereupdate: added links) starting from the 1960s to today. A couple of the frames failed to fit using the default settings for TimeSeriesModelFit (for the extrapolations) and NonlinearModelFit (to fit the model), so instead of fixing what was wrong I took the lazy way out and just deleted them. Here's the animation:



There are three key things about the data we'd hope a model could see before they happened: 1) the 'great inflation', 2) the end of the great inflation and 3) the 'great moderation' and the trend toward lower interest rates. I'd argue the IE model sees all three of these things ...

1) The great inflation


It's a bit early, but also is extrapolated from only 10 years or so of data.

2) End of the great inflation


Note that at the point where this prediction was made, interest rates were still rising.

3) Trend towards lower rates


(The above graph is actually a 20-year prediction)

Additionally, the DSGE-form of the model gives a nice way to organize how this works.

Also, a side note -- I discovered that smoothing the monetary base data in the model, but not NGDP data gives a better fit to 10-year interest rates (first figure ... as opposed to e.g. smoothing both, second figure):


Update + 6 hours:

In a remarkable coincidence, John Cochrane discusses the downward trend in 10-year rates as well and links to a study by the Council of Economic Advisers.

Update + 9 hours:

So does Stephen Williamson.

3 comments:

  1. Jason, when you say "failed to fit" do you mean that the routine didn't converge?

    Also, when you say you deleted them, do you mean there are a couple of skipped frames in the animation?

    Also, can you say a few more words about the process? So first you do the non-linear fit to a set of data (up to some year). This gives you the parameters for the ITM, true? Then how do you use the time series fit for the extrapolation?

    ReplyDelete
    Replies
    1. "Jason, when you say 'failed to fit' do you mean that the routine didn't converge?"

      Nah, it just got trapped in a local minimum and effectively fit the data to a constant ... if r ~ k log(N/M) + b, it chose k ~ 0 and b ~ mean(r). One usually has to perturb the starting values in those cases or try a different method.

      "Also, when you say you deleted them, do you mean there are a couple of skipped frames in the animation?"

      Yes.

      "So first you do the non-linear fit to a set of data (up to some year). This gives you the parameters for the ITM, true?"

      Yes. Let's call that nlm = NonlinearModelFit[{r data}, model, parameters, time]. Evaluate nlm and nlm["SinglePredictionBands"] with m0(time) and ngdp(time).

      "Then how do you use the time series fit for the extrapolation?"

      It's quite literally:

      tsm = TimeSeriesModelFit[m0 for years < 'some year']
      forecastm0data = TimeSeriesForecast[tsm, {10 years}]

      Do the same with ngdp.

      Then evaluate nlm and nlm["SinglePredictionBands"] with forecastXdata(time) for both X = ngdp and m0.

      All of the mathematica documentation is online, so you can look up the commands (written with capital letters).

      Delete

Comments are welcome. Please see the Moderation and comment policy.

Also, try to avoid the use of dollar signs as they interfere with my setup of mathjax. I left it set up that way because I think this is funny for an economics blog. You can use € or £ instead.