matlab mle用法,MATLAB中的MLE问题

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值