2019-09-07 Oscillators

Linear dynamic model

There are many hints in the data and the analytical results that point towards a wave motion - the ‘ripple effect’. To an analyst with physical science background, this is an invitation to unearth a differential equation based more or less closely on the wave equation. It has been observed that economists have ‘physics envy’ and would love to find a more profound and universal foundation for their arts - here we take a step in that direction.

This is an exploration of the feasibility of modelling the behaviour of residential prices using a diferential equation. Taking tentative steps we see whether the observed phenomena are broadly consistent with a simple physical analogue model, sketching the dimensions of the problem. The description here is as succinct as possible, and the process is described as steps in a numerical simulation with graphical results.

Relative value - cyclical component

In the earlier section on value we saw ‘value vs trend’. The decomposition uses factor analysis to break price (£/m2) on each index into four components in the log domain: the market index, a cyclical component, and a relatively small balancing item. Whilst all the components are interesting, we focus here on the cyclical component.

  • If we can model the cyclical component using something like a differential equation, this is significantly interesting

  • Throughout the model motion is one-dimensional (vertical) and has a direct analogue with a physical system where vertical coordinate is log(£/m2). Velocity therefore corresponds to rate of return (capital gain)

  • Consider the following simple system of coupled oscillators: 8 weights suspended one below the other, joined by springs, each damped independently with a ‘dashpot’ i.e. a viscous damper

  • To make it as simple as possible, consider equal unit masses and equal damping on each. Solve the static problem (displacement = intercept) for the spring constants

  • Drive the suspension point with a known displacement through time

  • Solve the resulting motion using finite differences at a suitably high frequency

  • Resample time to obtain timeseries corresponding to the price paid indices

There are quite a lot of parameters here, so lets enumerate them. We have fixed the masses and dampings and solved spring constants from the static problem. There remains the initial conditions and the driving function. In a realistic simulation we could set these using the starting values in our index data, but for now, for illustrative purposes, we start with all masses at rest and drive the ‘suspension point’ with a sine wave.

To get some feeling for what this means, see that the ‘suspension point’ corresponds to Prime Central London, and the vertical coordinate is log(£/m2), so the displacement to NW is -.47, or .63 (a 37% discount to Prime), and TS is -1.95, which exponentiated is 0.14, corresponding to static housing prices in Teesside at 14% of Prime london.

Now we drive the suspension point with a sine wave with a period of 16 years and simulate the response.


The results are shown together with the measured price timeseries’ cyclical component for reference.

The simulation shows how each mass in turn gradually picks up the oscillation from the one above, with a lag.

Note two points of special interest:

  • The middle masses move relatively least, the top and bottom masses the most - this is what we observe in the data series, but might not be immediately intuitively obvious since the driving force is at one extremity

  • The movement of TS is in antiphase to WC - this is what we observe in the data series.


This is really very exciting! A very simple model of coupled harmonic oscillators has straightaway captured some of the essential features of the property indices across the price spectrum. There are differences to be sure, but there are also free parameters currently set arbitrarily which will be calibrated to the data to minimise the error.

How to proceed? One way is as follows. We treat this as a problem to solve with the Kalman Filter, since in effect we already used a state space model to simulate the finite difference problem. For given masses and dampings solve the static problem for the spring constants and drive the system with the known WC price history (not a sine wave) and simulate. Then minimise the one-step-ahead prediction errors as a function of mass and damping, using numerical methods to tune the 2n-1 (i.e. 15) parameters if we stick to the arbitrary 8 free ‘cases’. This is a high-dimensional surface to solve over, and convergence is not guaranteed.

Another way is to solve each stage independently where a single stage is a single mass between two damped springs, with displacement driven from above and below using data values. Then numerically minimise this timeseries of pricing errors corresponding to mass i, but with much lower dimensionality. The problem can be solved closed-form by regression, provided we are happy that the regressors are sufficiently noise-free. This is probably a better way to start, and then couple them together to check that the coupled system shows fidelity to the data, using the first method described above.

This development is ongoing.