Ornstein–Uhlenbeck process

From Wikipedia, the free encyclopedia
(Redirected from Mean reverting process)
Jump to navigation Jump to search
File:Ornstein-Uhlenbeck-5traces.svg
Five simulations with θ = 1, σ = 1 and μ = 0.
File:OrnsteinUhlenbeckProcess3D.svg
A 3D simulation with θ = 1, σ = 3, μ = (0, 0, 0) and the initial position (10, 10, 10).

In mathematics, the Ornstein–Uhlenbeck process is a stochastic process with applications in financial mathematics and the physical sciences. Its original application in physics was as a model for the velocity of a massive Brownian particle under the influence of friction. It is named after Leonard Ornstein and George Eugene Uhlenbeck.

The Ornstein–Uhlenbeck process is a stationary Gauss–Markov process, which means that it is a Gaussian process, a Markov process, and is temporally homogeneous. In fact, it is the only nontrivial process that satisfies these three conditions, up to allowing linear transformations of the space and time variables.[1] Over time, the process tends to drift towards its mean function: such a process is called mean-reverting.

The process can be considered to be a modification of the random walk in continuous time, or Wiener process, in which the properties of the process have been changed so that there is a tendency of the walk to move back towards a central location, with a greater attraction when the process is further away from the center. The Ornstein–Uhlenbeck process can also be considered as the continuous-time analogue of the discrete-time AR(1) process.

Definition

[edit | edit source]
File:Leonard Ornstein mural, Oosterkade, Utrecht, 2021 - 1 (cropped) - Ornstein's 1930 random walk formula.jpg
Simplified formula for the Ornstein–Uhlenbeck process from the mural shown below.
File:Leonard Ornstein mural, Oosterkade, Utrecht, 2021 - 1.jpg
Dutch artist collective De Strakke Hand: Leonard Ornstein mural, showing Ornstein as a cofounder of the Dutch Physical Society (Netherlands Physical Society) at his desk in 1921, and illustrating twice the random walk of a drunkard with a simplified formula for the Ornstein–Uhlenbeck process. Oosterkade, Utrecht, The Netherlands, not far from Ornstein's laboratory. Translated text: Prof. Ornstein researches random motion 1930.

The Ornstein–Uhlenbeck process xt is defined by the following stochastic differential equation:

dxt=θxtdt+σdWt

where θ>0 and σ>0 are parameters and Wt denotes the Wiener process.[2][3][4]

An additional term is sometimes added:

dxt=θ(μxt)dt+σdWt

where μ is a constant called the (long-term) mean. The Ornstein–Uhlenbeck process is sometimes also written as a Langevin equation of the form

dxtdt=θxt+ση(t)

where η(t), also known as white noise, stands in for the supposed derivative dWt/dt of the Wiener process.[5] However, dWt/dt does not exist because the Wiener process is nowhere differentiable,[6] and so the Langevin equation only makes sense if interpreted in distributional sense. In physics and engineering disciplines, it is a common representation for the Ornstein–Uhlenbeck process and similar stochastic differential equations by tacitly assuming that the noise term is a derivative of a differentiable (e.g. Fourier) interpolation of the Wiener process.

Fokker–Planck equation representation

[edit | edit source]

The Ornstein–Uhlenbeck process can also be described in terms of a probability density function, P(x,t), which specifies the probability of finding the process in the state x at time t.[5] This function satisfies the Fokker–Planck equation

Pt=θx(xP)+D2Px2

where D=σ2/2. This is a linear parabolic partial differential equation which can be solved by a variety of techniques. The transition probability, also known as the Green's function, P(x,tx,t) is a Gaussian with mean xeθ(tt)+μ(1eθ(tt)) and variance Dθ(1e2θ(tt)):

P(x,tx,t)=θ2πD(1e2θ(tt))exp[θ2D(xxeθ(tt)μ(1eθ(tt)))21e2θ(tt)]

This gives the probability of the state x occurring at time t given initial state x at time t<t. Equivalently, P(x,tx,t) is the solution of the Fokker–Planck equation with initial condition P(x,t)=δ(xx).

Mathematical properties

[edit | edit source]

Conditioned on a particular value of x0, the mean is

𝔼(xtx0)=x0eθt+μ(1eθt)

and the covariance is

cov(xs,xt)=σ22θ(eθ|ts|eθ(t+s)).

For the stationary (unconditioned) process, the mean of xt is μ, and the covariance of xs and xt is σ22θeθ|ts|.

The Ornstein–Uhlenbeck process is an example of a Gaussian process that has a bounded variance and admits a stationary probability distribution, in contrast to the Wiener process; the difference between the two is in their "drift" term. For the Wiener process the drift term is constant, whereas for the Ornstein–Uhlenbeck process it is dependent on the current value of the process: if the current value of the process is less than the (long-term) mean, the drift will be positive; if the current value of the process is greater than the (long-term) mean, the drift will be negative. In other words, the mean acts as an equilibrium level for the process. This gives the process its informative name, "mean-reverting."

Properties of sample paths

[edit | edit source]

A temporally homogeneous Ornstein–Uhlenbeck process starting at x0=0 can be represented as a scaled, time-transformed Wiener process:

xt=σ2θeθtWe2θt1

where Wt is the standard Wiener process. This is roughly Theorem 1.2 in Doob 1942. Equivalently, with the change of variable s=e2θt this becomes

Ws=2θσs1/2x(lns)/(2θ),s>0

Using this mapping, one can translate known properties of Wt into corresponding statements for xt. For instance, the law of the iterated logarithm for Wt becomes[1]

lim suptxt(σ2/θ)lnt=1,with probability 1.

Formal solution

[edit | edit source]

The stochastic differential equation for xt can be formally solved by variation of parameters.[7] Writing

f(xt,t)=xteθt

we get

df(xt,t)=θxteθtdt+eθtdxt=eθtθμdt+σeθtdWt.

Integrating from 0 to t we get

xteθt=x0+0teθsθμds+0tσeθsdWs

whereupon we see

xt=x0eθt+μ(1eθt)+σ0teθ(ts)dWs.

From this representation, the first moment (i.e. the mean) is shown to be

E(xt)=x0eθt+μ(1eθt) 

assuming x0 is constant. Moreover, the Itō isometry can be used to calculate the covariance function by

cov(xs,xt)=E[(xsE[xs])(xtE[xt])]=E[0sσeθ(us)dWu0tσeθ(vt)dWv]=σ2eθ(s+t)E[0seθudWu0teθvdWv]=σ22θeθ(s+t)(e2θmin(s,t)1)=σ22θ(eθ|ts|eθ(t+s)).

Kolmogorov equations

[edit | edit source]

The infinitesimal generator of the process is[8]Lf=θ(xμ)f+12σ2fIf we let y=(xμ)2θσ2, then the eigenvalue equation simplifies to: d2dy2ϕyddyϕλθϕ=0which is the defining equation for Hermite polynomials. Its solutions are ϕ(y)=Hen(y), with λ=nθ, which implies that the mean first passage time for a particle to hit a point on the boundary is on the order of θ1.

Numerical simulation

[edit | edit source]

By using discretely sampled data at time intervals of width t, the maximum likelihood estimators for the parameters of the Ornstein–Uhlenbeck process are asymptotically normal to their true values.[9] More precisely,[failed verification]n((θ^nμ^nσ^n2)(θμσ2))d 𝒩((000),(e2tθ1t20σ2(e2tθ12tθ)t2θ0σ2(etθ+1)2(etθ1)θ0σ2(e2tθ12tθ)t2θ0σ4[(e2tθ1)2+2t2θ2(e2tθ+1)+4tθ(e2tθ1)]t2(e2tθ1)θ2))

File:Ornstein-Uhlenbeck-traces-a-mu.svg
Four sample paths of different OU-processes with θ = 1, σ = 2:
blue: initial value a = 10, μ = 0
orange: initial value a = 0, μ = 0
green: initial value a = −10, μ = 0
red: initial value a = 0, μ = −10

To simulate an OU process numerically with standard deviation

Σ

and correlation time

τ=1/Θ

, one method is to apply the finite-difference formula

x(t+dt)=x(t)Θdtx(t)+Σ2dtΘνi where νi is a normally distributed random number with zero mean and unit variance, sampled independently at every time-step dt.[10]

Scaling limit interpretation

[edit | edit source]

The Ornstein–Uhlenbeck process can be interpreted as a scaling limit of a discrete process, in the same way that Brownian motion is a scaling limit of random walks. Consider an urn containing n black and white balls. At each step a ball is chosen at random and replaced by a ball of the opposite colour. Let Xk be the number of black balls in the urn after k steps. Then X[nt]n/2n converges in law to an Ornstein–Uhlenbeck process as n tends to infinity. This was obtained by Mark Kac.[11]

Heuristically one may obtain this as follows.

Let Xt(n):=X[nt]n/2n, and we will obtain the stochastic differential equation at the n limit. First deduce Δt=1/n,ΔXt(n)=Xt+Δt(n)Xt(n). With this, we can calculate the mean and variance of ΔXt(n), which turns out to be 2Xt(n)Δt and Δt. Thus at the n limit, we have dXt=2Xtdt+dWt, with solution (assuming X0 distribution is standard normal) Xt=e2tWe4t.

Applications

[edit | edit source]

In physics: noisy relaxation

[edit | edit source]

The Ornstein–Uhlenbeck process is a prototype of a noisy relaxation process. A canonical example is a Hookean spring (harmonic oscillator) with spring constant k whose dynamics is overdamped with friction coefficient γ. In the presence of thermal fluctuations with temperature T, the length x(t) of the spring fluctuates around the spring rest length x0; its stochastic dynamics is described by an Ornstein–Uhlenbeck process with

θ=k/γ,μ=x0,σ=2kBT/γ,

where σ is derived from the Stokes–Einstein equation D=σ2/2=kBT/γ for the effective diffusion constant.[12][13] This model has been used to characterize the motion of a Brownian particle in an optical trap.[13][14]

At equilibrium, the spring stores an average energy E=k(xx0)2/2=kBT/2 in accordance with the equipartition theorem.[15]

In financial mathematics

[edit | edit source]

The Ornstein–Uhlenbeck process is used in the Vasicek model of the interest rate.[16] The Ornstein–Uhlenbeck process is one of several approaches used to model (with modifications) interest rates, currency exchange rates, and commodity prices stochastically. The parameter μ represents the equilibrium or mean value supported by fundamentals; σ the degree of volatility around it caused by shocks, and θ the rate by which these shocks dissipate and the variable reverts towards the mean. One application of the process is a trading strategy known as pairs trade.[17][18][19]

A further implementation of the Ornstein–Uhlenbeck process is derived by Marcello Minenna in order to model the stock return under a lognormal distribution dynamics. This modeling aims at the determination of confidence interval to predict market abuse phenomena.[20][21]

In evolutionary biology

[edit | edit source]

The Ornstein–Uhlenbeck process has been proposed as an improvement over a Brownian motion model for modeling the change in organismal phenotypes over time.[22] A Brownian motion model implies that the phenotype can move without limit, whereas for most phenotypes natural selection imposes a cost for moving too far in either direction. A meta-analysis of 250 fossil phenotype time-series showed that an Ornstein–Uhlenbeck model was the best fit for 115 (46%) of the examined time series, supporting stasis as a common evolutionary pattern.[23] This said, there are certain challenges to its use: model selection mechanisms are often biased towards preferring an OU process without sufficient support, and misinterpretation is easy to the unsuspecting data scientist.[24]

Generalizations

[edit | edit source]

It is possible to define a Lévy-driven Ornstein–Uhlenbeck process, in which the background driving process is a Lévy process instead of a Wiener process:[25][26]

dxt=θxtdt+σdLt

Here, the differential of the Wiener process Wt has been replaced with the differential of a Lévy process Lt.

In addition, in finance, stochastic processes are used where the volatility increases for larger values of X. In particular, the CKLS process (Chan–Karolyi–Longstaff–Sanders)[27] with the volatility term replaced by σxγdWt can be solved in closed form for γ=1, as well as for γ=0, which corresponds to the conventional OU process. Another special case is γ=1/2, which corresponds to the Cox–Ingersoll–Ross model (CIR-model).

Higher dimensions

[edit | edit source]

A multi-dimensional version of the Ornstein–Uhlenbeck process, denoted by the N-dimensional vector 𝐱t, can be defined from

d𝐱t=𝜷𝐱tdt+𝝈d𝐖t.

where 𝐖t is an N-dimensional Wiener process, and 𝜷 and 𝝈 are constant N×N matrices.[28] The solution is

𝐱t=e𝜷t𝐱0+0te𝜷(tt)𝝈d𝐖t

and the mean is

E(𝐱t)=e𝜷tE(𝐱0).

These expressions make use of the matrix exponential.

The process can also be described in terms of the probability density function P(𝐱,t), which satisfies the Fokker–Planck equation[29]

Pt=i,jβijxi(xjP)+i,jDij2Pxixj,

where the matrix 𝑫 with components Dij is defined by 𝑫=𝝈𝝈T/2. Like for the one-dimensional case, the process is a linear transformation of Gaussian random variables, and therefore itself must be Gaussian. Because of this, the transition probability P(𝐱,t𝐱,t) is a Gaussian which can be written down explicitly. If the real parts of the eigenvalues of 𝜷 are larger than zero, a stationary solution Pst(𝐱) moreover exists, given by

Pst(𝐱)=(2π)N/2(det𝝎)1/2exp(12𝐱T𝝎1𝐱),

where the matrix 𝝎 is determined from the Lyapunov equation 𝜷𝝎+𝝎𝜷T=2𝑫.[5]

See also

[edit | edit source]

Notes

[edit | edit source]
  1. ^ a b Doob 1942.
  2. ^ Karatzas & Shreve 1991, p. 358.
  3. ^ Gard 1988, p. 115.
  4. ^ Gardiner 1985.
  5. ^ a b c Risken 1989.
  6. ^ Lawler 2006.
  7. ^ Gardiner 1985, p. 106.
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Aït-Sahalia 2002, pp. 223–262.
  10. ^ Kloeden, Platen & Schurz 1994.
  11. ^ Iglehart 1968.
  12. ^ Nørrelykke & Flyvbjerg 2011.
  13. ^ a b Goerlich et al. 2021.
  14. ^ Li et al. 2019.
  15. ^ Nelson 1967.
  16. ^ Björk 2009, pp. 375, 381.
  17. ^ Leung & Li 2016.
  18. ^ Advantages of Pair Trading: Market Neutrality
  19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  22. ^ Martins 1994, pp. 193–209.
  23. ^ Hunt 2007.
  24. ^ Cornuault 2022.
  25. ^ Jespersen, Metzler & Fogedby 1999.
  26. ^ Fink & Klüppelberg 2011.
  27. ^ Chan et al. 1992.
  28. ^ Gardiner 1985, p. 109.
  29. ^ Gardiner 1985, p. 97.

References

[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]