# How to get around flat likelihood function when calibrating GBM parameters?

I want to calibrate jointly the drift mu and volatility sigma of a geometric brownian motion,

$$\log(S_t) = \log(S_{t-1}) + (\mu - 0.5*\sigma^2) \Delta t + \sigma*\sqrt{\Delta t}*Z_t$$

where $Z_t$ is a standard normally distributed random variable, and am testing this by generating data $x = \log(S_t)$ via

x(1) = 0;
for i = 2:N
x(i) = x(i-1) + (mu-0.5*sigma^2)*Deltat + sigma*sqrt(Deltat)*randn;
end


and my (log-)likelihood function

function LL = LL(x, pars)
mu    = pars(1);
sigma = pars(2);
Nt = size(x,2);
LL = 0;
for j = 2:Nt
LH_j = normpdf(x(j), x(j-1)+(mu-0.5*sigma^2)*Deltat, sigma*sqrt(Deltat));
LL = LL + log(LH_j);
end


which I maximize using fmincon (because sigma is constrained to be positive), with starting values 0.15 and 0.3, true values 0.1 and 0.2, and N = Nt = 1000 or 100000 generated points over one year (i.e. $\Delta t$ = 0.0001 or 0.000001).

Calibrating the volatility alone yields a nice likelihood function with a maximum around the true parameter, but for small Deltat (less than say 0.1) calibrating both mu and sigma persistently shows a (log-)likelihood surface being very flat in mu (at least around the true parameter); I would expect also a maximum there; for a reason I think it should be possible to calibrate a GBM model to a data series of 100 stock prices in a year, making the average of Deltat = 0.01.

Any sharing of experience or help is greatly appreciated (thoughts passing through my mind: the likelihood function is not right / this is a normal behaviour / too few data points / data generation is not correct / ...?).

• Is there a particular reason why you're not simply using the sample mean and variance? – ocstl Jul 3 '15 at 10:18

• normpdf should be fine. It might even be better-optimized by the Matlab virtual machine. – Brian B Oct 1 '15 at 12:31
The log likelihood function is indeed rather flat in the $\mu$-direction, for small time horizons (you used $T = 1$ it looks like). As you may have noticed, increasing the number of observations but keeping the time horizon the same DOES NOT IMPROVE the accuracy of the estimate of $\mu$ - this is a bit counterintuitive, if you ask me. But, increasing the time horizon $T$ DOES improve the accuracy of the estimate. To see this, see my question here.
Merton (1980) proposed using a Bayesian technique, in which you first specify a prior distribution for $\mu$ and use Bayes' rule to derive a new log likelihood function. This is nowadays known as "maximum a-posteriori (MAP)" estimation and is one way to try to get better estimate of $\mu$. But the fact remains: MLE estimation of $\mu$ is notoriously inaccurate for short time horizons.