- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 27819 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 195 点
- 帖子
- 17
- 精华
- 0
- 在线时间
- 81 小时
- 注册时间
- 2010-7-23
- 最后登录
- 2022-6-26
大专生
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 27819 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 195 点
- 帖子
- 17
- 精华
- 0
- 在线时间
- 81 小时
- 注册时间
- 2010-7-23
- 最后登录
- 2022-6-26
 | 开心 2014-11-27 08:22:49 |
|---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
|
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的和最大
|
|