全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
9639 4
2010-09-29
在一篇文章中看到基于广义贝塔2型分布 的mle.
我就试着用MATLAB计算,极大似然函数就是f=-w'*log(l),分布函数是betainc(z/(z+x(1)),x(2),x(3));其中x(1)),x(2),x(3)是待估计的参数。
但是程序出错,得不到结果?求高手赐教呀?(如果分布是简单点的函数,可以出来结果,为什么这个广义贝塔分布就出不来结果?)


code :
clear all
[x,fval] = fminsearch(@myfun,[1000 4 5])

function f=myfun(x)
options=optimset('Display','off');
function y=mybeta(z,x)
y=betainc(z/(z+x(1)),x(2),x(3));
end
w=[0.61 0.09 0.13 0.13 0.17 0.27 0.79 1.23 1.55 0.91 2.07 2.44 4.14 7.95 8.63 8.13 7.93 7.06 6.46 39.29]'./100;
l1=[mybeta(100,x) mybeta(200,x)-mybeta(100,x) mybeta(300,x)-mybeta(200,x) mybeta(400,x)-mybeta(300,x)] ;
l2=[mybeta(500,x)-mybeta(400,x) mybeta(600,x)-mybeta(500,x) mybeta(800,x)-mybeta(600,x)];
l3=[mybeta(1000,x)-mybeta(800,x) mybeta(1200,x)-mybeta(1000,x) mybeta(1300,x)-mybeta(1200,x)];
l4=[mybeta(1500,x)-mybeta(1300,x) mybeta(1700,x)-mybeta(1500,x) mybeta(2000,x)-mybeta(1700,x)];
l5=[mybeta(2500,x)-mybeta(2000,x) mybeta(3000,x)-mybeta(2500,x) mybeta(3500,x)-mybeta(3000,x)];
l6=[mybeta(4000,x)-mybeta(3500,x) mybeta(4500,x)-mybeta(4000,x) mybeta(5000,x)-mybeta(4500,x) 1-mybeta(5000,x)];
l=[l1 l2 l3 l4 l5 l6]';
f=-w'*log(l)
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-9-29 14:38:07
你换成fmincon试一下!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-29 20:17:10
其实在比较新的版本中已经有一个叫做mle.m的函数。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-29 21:31:31
3# Xaero

那个mle函数也不行。
麻烦在那个广义beta分布上,
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-29 21:35:57
2# wansea

这个东西有点不清楚。
怎么有时简单的mle可以估计出来,如
[x,fval] = fminsearch('0.0061*log(betainc(100/(100+x(1)),x(2),abs(x(3))))+0.0009*log(betainc(200/(200+x(1)),x(2),abs(x(3)))-betainc(100/(100+x(1)),x(2),abs(x(3))))',[1000,8,16])
可以出来一个结果,也不知道对不对?
如果在这个函数中再多加几项,又开始报错,
搞不明白。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群