Stochastic process describing long-term fluctuations

I need to model a process that has large, smooth and mean-reverting long-term fluctuations and some small short term wiggles, a sample path looks like this:

My first idea was to model it as an integral of an Ornstein-Uhlenbeck process (because the graph of the differences of the process look nicely mean-reverting), but this would not capture the long term fluctuations. The mean-reversion level of the differences should somehow incorporate this information, but I don't know how to achieve it. Any ideas which process would be reasonable?

• Why not just take a deterministic process given by an ODE which reverts to a level (eg, simple harmonic motion possibly with a damping term), then add a Brownian motion term to get an SDE? – George Lowther Jan 8 '12 at 18:38
• @GeorgeLowther, could you provide an example so that I could generate a few sample paths and see how it behaves? – Grzenio Jan 8 '12 at 19:58

There are two ways this is commonly handled, both still based on O-U:

1. Deterministic long-term fluctuations.
2. Separate timescale processes

Let's say your real time series of interest is $Y(t)$. In the first case, often used by econometricians to handle seasonality, one sets up a deterministic process $F(t)$, and then run Ornstein-Uhlenbeck as a variation on that process. That is to say, we define the stochastic variable $X(t)=Y(t)-F(t)$ and then specify $$dX_t = -\alpha_t X_t + \sigma_t dW$$

The second case is more physical, and one uses a two-dimensional OU process $$dY^{(1)}_t = -\alpha_t^{(1)} (Y^{(1)}_t - \bar{Y})+ \sigma^{(1)}_t dW_1$$ $$dY^{(2)}_t = -\alpha_t^{(2)} Y^{(2)}_t + \sigma^{(2)}_t dW_2$$ with $\alpha_1 \ll \alpha_2$, after which we define $Y=Y^{(1)}+Y^{(2)}$.

The math is all still quite tractable, particularly so with constant $\alpha,\sigma$.

It's worth noting that, with respect to calibration, you can treat the problem as separable to the extent that $\alpha_1 \ll \alpha_2$ is really true.

That is to say, you get a far better fit using a Fourier transform. Use a low-pass filter to obtain data for finding $\sigma^{(1)}$ and $\alpha^{(1)}$. Then, you use a high-pass filter to get $\sigma^{(2)}$ and $\alpha^{(2)}$.

For example assume $\alpha^{(1)}, \sigma^{(1)}$ are roughly daily and $\alpha^{(2)}, \sigma^{(2)}$ are roughly annual. We define $$f(\omega)={\cal{F}}(Y)$$ and let $$f^{(1)}(\omega) = f(\omega) \times \mathbb{1} \lbrace \omega<(30d)^{-1} \rbrace$$ and $$f^{(2)}(\omega) = f(\omega) \times \mathbb{1} \lbrace \omega\geq(30d)^{-1} \rbrace,$$ taking due care of the degeneracies in fourier transforms for real data sets. Now set $$X^{(1)} = \text{Re} \left[ \cal{F}^{-1}\left( f^{(1)} \right) \right]$$ and $$X^{(2)} = \text{Re} \left[ \cal{F}^{-1}\left( f^{(2)} \right) \right].$$ Running a standard maximum-likelihood estimate on $X^{(2)}$ will find $\sigma^{(2)}$ and $\alpha^{(2)}$. Subsampling $X^{(2)}$ on, say, the same 30 day interval as the cutoff will give a time series appropriate for estimating $\sigma^{(1)}$ and $\alpha^{(1)}$.

Running these two separate two-dimensional calibrations (say as 2-dimensional maximum-likelihood estimates) is far more stable than a single four-dimensional calibration. You still have to be careful. For example if $\sigma^{(2)}$ is too small you have no hope of finding it in all the noise of the lower-frequency process.

• Your second approach seems very interesting! I didn't quite get the estimation details though - could you elaborate a bit and give more details on how I would calibrate it in two separate runs? – Grzenio Jan 23 '12 at 10:37
• Duly expanded. I tested in R and found it works but that R's MLE estimator is not as stable as one might like. – magnetohydrodynamic Jan 24 '12 at 20:07