Maximum Likelihood Calibration of a Diffusion SDE from Observations
Summary
The note considers estimating unknown drift and volatility parameters in a stochastic differential equation from discrete historical observations. It begins with an Euler-style increment approximation: the observed change is modeled as drift over the time step plus volatility scaled by the square root of that step and a standard normal shock. The proposed likelihood approach transforms each increment into a standardized residual and initially suggests minimizing the sum of squared residuals.
A pure diffusion example exposes a flaw in that objective: treating the residuals’ normal densities alone omits the parameter-dependent scale of the observation density. The answer instead writes the conditional normal density of each next observation given the previous value, including its volatility and time-step normalization, and maximizes the resulting log likelihood. This produces a meaningful estimation problem for volatility. The treatment is a basic discretized likelihood framework; it does not address discretization bias, irregular model features, parameter constraints, or more advanced inference methods.
Key ideas
- Discrete SDE observations can be approximated by drift and diffusion increments over each time step.
- Standardized residuals depend on the unknown model parameters.
- Minimizing squared standardized residuals alone omits the density’s parameter-dependent scale.
- The conditional Gaussian log likelihood includes both the scale term and the squared-error term.
- The method relies on a discretized transition approximation to the SDE.
Tags
Full text
# How to calibrate an SDE's by finite difference equation?
# How to calibrate an SDE's by finite difference equation?
I would like a general framework for the calibration of the unknown parameters in an arbitrary stochastic differential equation. I have a proposed method that seems reasonable in theory, but is problematic in practice. Can you help?
### The method
Suppose we have the SDE $dX=\mu(t,X)dt+\sigma(t,X)dW$, where $W(t)$ is a Wiener process. And suppose we know a time series realization ("historical data") $X(t_n)=X_n$ for $n=0,\ldots,N$. And further suppose that the functions $\mu$ and $\sigma$ contain unknown real parameters.
The idea is to convert the SDE into a finite difference equation (which holds approximately): $$X_{n+1}-X_{n} = \mu(t, X_n) (t_{n+1}-t_n)+ \sigma(t, X_n)\sqrt{t_{n+1}-t_n} Z_n.$$
Here: $n=0,\ldots,N-1$ and $Z_n$ are independent random variables, each with a standard normal distribution. Here, I used the heuristic fact that $dW$ is normal with mean 0 and variance $dt$.
Solving for $Z_n$ gives $Z_n$ as a function of the unknown parameters: $$Z_n =\frac{X_{n+1} - X_{n} - \mu(t, X_n)(t_{n+1}-t_n)}{\sigma(t, X_n) \sqrt{t_{n+1} - t_n}}.$$
The liklihood of the time series is given by $$\prod_{n=0}^{N-1} \phi(Z_n) = \left( \frac{1}{\sqrt{2 \pi}} \right)^N \exp \left( -\frac{1}{2} \sum Z_{n}^{2} \right).$$ Here, $\phi$ is the probability density of the standard normal. Maximizing the liklihood requires minimization of $\sum Z_n^2$. And this gives the maximum liklihood estimators.
### The problem
Consider the SDE $dX = \sigma dW$, with unknown $\sigma$. Given historical data, and following the above method, we get $$\sum Z_n^2 = \frac{1}{\sigma} \sum \frac{X_{n+1} - X_{n}}{\sqrt{t_{n+1} - t_n}}.$$
However, this does not have a minimum wrt $\sigma$ (except for perhaps $\sigma = \infty$, which does not make sense).
## Answer by Gordon (score 1, accepted)
https://quant.stackexchange.com/a/32887
From the SDE $dX_t=\sigma dW_t$, \begin{align*} X_{n+1} - X_n =\sigma \sqrt{t_{n+1}-t_n} Z_n. \end{align*} That is, \begin{align*} X_{n+1}\mid X_n \sim N\left(X_n, \, \left(\sigma \sqrt{t_{n+1}-t_n}\,\right)^2 \right), \end{align*} and the conditional density function is given by \begin{align*} \phi(x\mid X_n) = \frac{1}{\sqrt{2\pi}\sigma \sqrt{t_{n+1}-t_n}}e^{-\frac{(x-X_n)^2}{2 \sigma^2 (t_{n+1}-t_n)}}. \end{align*} Then, the conditional log-likelihood function is given by \begin{align*} L(X_1, \ldots, X_{n+1}) &= \sum_{i=1}^n\ln \Big(\phi(X_{i+1}\mid X_i)\Big)\\ &=-\frac{n}{2}\ln(2\pi) -\frac{n}{2}\ln(t_{i+1}-t_i)-n\ln\sigma - \sum_{i=1}^n\frac{(X_{i+1}-X_i)^2}{2 \sigma^2 (t_{n+1}-t_n)}. \end{align*} Now, you can minimize the function to obtain the $\sigma$ estimation.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.