在一篇文章中看到基于广义贝塔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