Tuesday, May 5, 2009

Case-Shiller Housing Index: ARIMA Forecasting Model

3rd in my series on the Case-Shiller Housing Index. You may want to check out the first and second in the series.

Back in early 2007, I first started playing with the Case-Shiller housing index and tried to fit it with an ARIMA time series forecasting model. I was surprised and pleased with how well it fit. At the time, it forecasted a precipitous 20-30% decline coming in the next couple of years. I thought it was ridiculous and discarded it for other things. As the housing market dropped, I kept going back and kicking myself for ignoring the model. This is one of the big reasons I started this blog, I thought that it would be useful and fun to share these kinds of forecasts for better or worse. But I believe strongly in statistical forecasting tools like ARIMA models for the right kind of data sets and I think the Case Shiller is one of those data sets.

AutoRegressive Integrated Moving Average (ARIMA) time series models are a general class of very flexible models for fitting a variety of time series data. I won't go into the technical details, way too much for this blog at this time. But in this case, as I pointed out in my 2nd post in this Case Shiller series, there is some very strong 12 month seasonality in housing prices. The ARIMA model can deal with seasonality well. For those who are interested, the specific form of the model I ended up with for the Case Shiller is a 12 month seasonal, 2nd difference model, with 2 seasonal autoregressive terms.


This plot (click on any chart for a larger view) shows the long term chart of the Case Shiller back to '87 along with a sampling of 18 month forecasts with my ARIMA model. Each red wiggly line is an 18 month forecast from the starting point (the forecast was not adjusted as each additional month of data was available). You can see in general how it fits. Not always perfect of course but it does well at fitting the seasonal behavior and the changing long term trends. The key one to notice here is near the top of the housing market. Quite early this ARIMA model started to forecast prices to start turning down.



So let's examine more closely the top of the housing market. You will see in the chart how the ARIMA 18-month out forecasts evolved from Nov-06 seeing a continuation of the housing bull over the course of the next few months to seeing a bearish shift in the housing market. Notice that this ARIMA model is not just trend following or extrapolating the trend, the 2nd difference model is more complex than that and it can pick up on much more subtle changes in the acceleration of price month to month to anticipate in advance with the trend is going to inflect.



So we see that the ARIMA model saw 4-6 months in advance of the top of the housing market. In fact it started getting some early but mixed signals a year or two earlier. Do you see the top coming? Take a look at the chart here where I only show up to Feb-06, when the ARIMA model saw the top. I realize you now know the rest of the story here, but try to erase that from you short term memory and look at the chart. Do you see any signs of the uptrend stopping there? It is real hard to overcome your caveman bias when you really know the answer but I would say it is nearly impossible to look at that chart alone and say the top was coming.

So you were hoping to see a Case-Shiller Housing Index forecast for the future? Sorry, that will be next in the series! I am going to try to get a few more Case-Shiller posts up in the next week as the launch of the new Case-Shiller housing index ETF's: UMM and DMM are coming next week and many more people will be interested in the Case Shiller and where it is going. I am excited about the opportunity to directly invest in and hedge home prices in the form of a tradable ETF. I will talk more about these ETF's also.

Let me know if you have any questions or comments.



...



2 comments:

  1. Very nice article. Quick question regarding the nitty gritty of the model: Not quite sure how to interpret your wording. Is it a ARIMA(2,2,0)x(2,2,0)_12 model?
    ReplyDelete
  2. I think it should be a ARIMA(2,2,0)(0,1,0)12 model
    ReplyDelete