我想联合校准几何布朗运动的漂移μ和波动度sigma,
log(S_t) = log(S_{t-1}) + (mu - 0.5*sigma^2)*Deltat + sigma*sqrt(Deltat)*Z_t
其中Z_t是标准的正态分布随机变量,并通过
生成数据x = log(S_t)进行测试x(1) = 0;
for i = 2:N
x(i) = x(i-1) + (mu-0.5*sigma^2)*Deltat + sigma*sqrt(Deltat)*randn;
end
和我的(log-)似然函数
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
我使用fmincon最大化(因为sigma被约束为正),起始值为0.15和0.3,真值为0.1和0.2,并且N = Nt = 1000或100000个生成点超过一年(=> Deltat = 0.0001或0.000001)。
单独校准波动率会产生一个很好的似然函数,其最大值在真实参数附近,但对于小的Deltat(小于0.1),校准mu和sigma持续显示(log-)似然表面非常平坦(至少在真实参数附近);我希望在那里最大化;出于某种原因,我认为应该可以将GBM模型校准到一年内100个股票价格的数据系列,使得Deltat的平均值= 0.01。
任何经验或帮助的分享都非常感激(想法贯穿我的脑海:可能性函数不对/这是正常行为/数据点太少/数据生成不正确/ ......?)。登记/> 谢谢!