楼主: 我是学士
1211 1

[统计软件] matlab求极大似然估计的问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

90%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
3.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1291 点
帖子
76
精华
0
在线时间
211 小时
注册时间
2005-8-29
最后登录
2022-9-27

楼主
我是学士 学生认证  发表于 2015-8-15 22:13:47 |AI写论文
20论坛币
代码如下:function [para,fv]=my_mle1(fun,para0,varargin)
para0=para0(:);
[para,fv]=fminsearch(fun,para0,[],2,varargin{:});
fv=-fv;
end

function f=pin(para,num,B,S)
alpha=para(1);
mu=para(2);
eb=para(3);
es=para(4);
delta=para(5);
M=(min(B,S)+max(B,S))/2;
xs=es/(es+mu);
xb=eb/(eb+mu);
yy=(-eb-es + M*(log(xb) +log(xs)) + ...
    B*log(mu+eb)+S*log(mu+es) )+ ...
    log( alpha*(1-delta)*exp(-mu)*(xs.^(S-M)) .*(xb.^sym(-M)) + ...
    alpha* delta*exp(-mu) *(xb.^(B-M)).*(xs.^(-M)) + ...
    (1-alpha)*(xs.^(S-M)).*(xb.^(B-M)));
if num==1
    f=log(yy);
else
    f=-sum(log(yy));
end     
end

输入指令:B=x1PIN(:,3)
S=x1PIN(:,4)
[para,fv]=my_mle1('pin',[0.5;400;1000;1000;0.5],B,S)




结果出错,详细如下:
??? Conversion to double from sym is not possible.


Error in ==> fminsearch at 175
fv(:,1) = funfcn(x,varargin{:});


Error in ==> my_mle1 at 3
[para,fv]=fminsearch(fun,para0,[],2,varargin{:});



有没有会的大牛帮我解答下,万分感谢。详细的代码和数据我都放在附件里
代码调试.zip (2.35 KB) 本附件包括:
  • main.m
  • my_mle1.m
  • pin.m
  • data.txt




关键词:极大似然估计 MATLAB atlab matla 极大似然 matlab

本帖被以下文库推荐

沙发
我是学士 学生认证  发表于 2015-8-16 10:20:41
有没有高手来帮帮忙啊,不胜感激

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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-21 11:29