悬赏 1000 个论坛币 未解决
大家好 我是matlab新手 重金求问一个编程问题
有一段时间序列数据的向量 假设有三段趋势 分别要用最大似然估计用一个GBM拟合: P=aPdt+bPdW.
假如已知分段的点为t1, t2 则可以分别用最大似然估计算出三段数据 (1,t1) (t1+1, t2) (t2+1, end) 的GBM的系数 (a1,b1) (a2,b2) (a3,b3).
现在并不知道分段的点在哪 所以要求出一对点 (t1, t2) 可以使得三个最大似然估计的MLE之和最大
所以整个拟合有八个自由度的未知数 a1 b1 a2 b2 a3 b3 t1 t2.
我尝试用循环做 可是一直没做出来
希望有大神来帮忙
对于一段数据求最大似然估计的code如下
f=@(mu,sigma,div)(div-mu+sigma^2/2).^2/sigma^2+log(2*pi*sigma^2);
theta.div=fminsearch(@(theta)sum(f(theta(1),theta(2),div)),[0 0]);
L_MLE= -sum(f(theta.div(1),theta.div(2),div))/2; % maximum log-likelihood
MLE = exp(L_MLE); %maximum likelihood function
所以问题只是如何循环去求(t1, t2) 使得三段MLE的和最大