楼主: 雨後彩虹
20288 100

[问答] 极大似然估计的MATLAB程序,哪位大神帮忙看看,多谢了 [推广有奖]

11
magicsun 发表于 2015-6-24 16:39:05
看了,不明白了。f(x)的值呢(就是y值)?我觉得你的程序思路就是错误。X>0怎么设定,你应该左右两侧写出对数,然后求出似然函数(或者这个分布就是似然函数?)

12
雨後彩虹 发表于 2015-6-24 16:42:59
magicsun 发表于 2015-6-24 16:39
看了,不明白了。f(x)的值呢(就是y值)?我觉得你的程序思路就是错误。X>0怎么设定,你应该左右两侧写出 ...
function f=mle(parameter,num,observations)
alpha=parameter(1);
beta=parameter(2);
lambda=parameter(3);
y=beta/alpha*((observations-lambda)/alpha).^(beta-1).*exp((-(observations-lambda)/alpha).^beta)
if num==1
    f=log(y);
else
    f=-sum(log(y));
end

这个 f=-sum(log(y))就是求的似然函数

13
magicsun 发表于 2015-6-24 16:45:57
observations=[1.1101e+03,1.0035e+03,941.2414,971.2918,1.1419e+03];很明显这个只是x的值?好像也可以啊!反正我觉得你的程序还是方向不对,应该求对数,Ln(L(a,b,l)),然后估计,才好些。

14
雨後彩虹 发表于 2015-6-24 16:46:47
magicsun 发表于 2015-6-24 16:39
看了,不明白了。f(x)的值呢(就是y值)?我觉得你的程序思路就是错误。X>0怎么设定,你应该左右两侧写出 ...
x值是根据试验得到的,然后假设x服从三参数威布尔分布,估计威布尔的参数值,这样不对吗?

15
magicsun 发表于 2015-6-24 16:47:40
雨後彩虹 发表于 2015-6-24 16:42
function f=mle(parameter,num,observations)
alpha=parameter(1);
beta=parameter(2);
你这儿不能确保x>0

16
雨後彩虹 发表于 2015-6-24 16:51:46
magicsun 发表于 2015-6-24 16:47
你这儿不能确保x>0
那大神您觉得怎么弄合适,我实在是弄不出来~~~

17
雨後彩虹 发表于 2015-6-24 16:53:05
magicsun 发表于 2015-6-24 16:45
observations=[1.1101e+03,1.0035e+03,941.2414,971.2918,1.1419e+03];很明显这个只是x的值?好像也可以啊! ...
f=-sum(log(y))这个就是求对数之后的值,不对吗?

18
magicsun 发表于 2015-6-24 16:56:33
雨後彩虹 发表于 2015-6-24 16:53
f=-sum(log(y))这个就是求对数之后的值,不对吗?
那是y的值,很明显不是x的值。

19
雨後彩虹 发表于 2015-6-24 16:59:21
magicsun 发表于 2015-6-24 16:56
那是y的值,很明显不是x的值。
大神,你能帮小弟改改吗?

20
magicsun 发表于 2015-6-24 17:06:48
在想呢。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 16:58