Detecting bubbles in real time

Recently, we hear a lot about a housing bubble forming in UK. Would be great if we would have a formal test for identifying a bubble evolving in real time, I am not familiar with any such test. However, we can still do something in order to help us gauge if what we are seeing is indeed a bubbly process, which is bound to end badly.

We will use the ADF test (Augmented Dicky Fuller) for this, so I start with a simple explanation about this test and move on to the implementation. The way this test works is as follows:

    \[\Delta x_t = \beta x_{t-1}+e_t.\]

What we are doing is to check whether the level of the series ‘x’ has any influence on the future change. This is the core idea of the test. Imagine \beta is 1.5, this would mean that the higher the level of the series, the more likely it is to climb up, i.e. the difference next period is positive. This is a characteristic of a bubble series, it is self-feeding and price level goes up just because it goes up. In the other hand, if \beta < 1 it means that the series is mean reverting and not explosive. We can add (augment) a trend term and more lags and call it Augmented-Dicky-Fuller test. Now, in a recent practical research an idea put forward is to conduct a sequence of ADF tests. More specifically, say we have 100 observations, we ADF.test sequentially based on the first 99, then based on the first 98 \dots then lastly, based on the most recent (say) 20 observations and use the maximum of those 99-20=79 test-statistics. Essentially recognizing that we are in a bubble if we move up too much too fast. Let us see how it works.

I proxy the UK housing market with an ETF which offers exposure to UK listed real estate companies and Real Estate Investment Trusts. Data easily accessible using Qaundl.

Real Estate ETF
Now let us implement the idea of the sequential ADF.test. R will choose for you how many lags are appropriate and will look for the correct p.values. Don’t rely on the t.test here as the distribution under the NULL is non-trivial.

Sequential Stats
It does look as if we are moving up quite fast. This is suggestive but only exactly that! There is nothing formal here since the distribution of the maximum of the statistics is complicated and so we can’t say whether the maximum at the moment is ‘abnormally’ high. But it can be useful to cross this kind of evidence with other information or to completely dismiss the notion if the maximum is in the far past. We can do the same with other stationarity tests such as the PP.test or the KPSS.test.

Appendix
The paper mentioned in the text:

Some Matlab code to do the same:

4 comments on “Detecting bubbles in real time”

  1. An alternate form that may work better for geometric processes, which covers most price series, is to use the log price for x_t, rather than the price itself.

Leave a Reply to hlm

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