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 here;*update: 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.

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

ReplyDeleteAlso, 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?

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

DeleteNah, 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).

Thanks, that makes sense.

Delete