全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
812 1
2018-04-25
新手小白问一个问题,为什么分别使用两种调用函数的方法进行极大似然估计,后者会报错呢?
(1)方法一:在同一个脚本里,建立匿名函数,进行极大似然估计(出自:http://www.ilovematlab.cn/thread-162705-2-1.html
% 定义样本观测值矩阵
>> x = [0.7917,0.8448,0.9802,0.8481,0.7627
        0.9013,0.9037,0.7399,0.7843,0.8424
        0.9842,0.7134,0.9959,0.6444,0.8362
        0.7651,0.9341,0.6515,0.7956,0.8733];
% 以匿名函数方式定义密度函数,返回函数句柄PdfFun
>> PdfFun = @(x,a,t) a*t*x.^(t-1).*(x>0 & x<1);
% 调用mle函数求参数最大似然估计值和置信区间
>> [phat,pci] = mle(x(:),'pdf',PdfFun,'start',[1,3],'lowerbound',[0,0],'upperbound',[2,6])

phat =

    2.0000    5.1502


pci =

    1.1235    2.8931
    2.8765    7.4073


(2)方法二:我尝试着另外建立m函数文件,再调用,然而总是报错。
主程序:
>> x = [0.7917,0.8448,0.9802,0.8481,0.7627
        0.9013,0.9037,0.7399,0.7843,0.8424
        0.9842,0.7134,0.9959,0.6444,0.8362

  >> [phat,pci] = mle(x,'pdf',PdfFun,'start',[1,3],'lowerbound',[0,0],'upperbound',[2,6])

m函数文件:
>>function [ll] = PdfFun(x,a,t)
     ll = a*t*x.^(t-1).*(x>0 & x<1);

    end

出现错误:
错误使用 PdfFun (line 4)
输入参数的数目不足。

谢谢~!
二维码

扫码加我 拉你入群

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

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

全部回复
2018-4-25 20:42:53
问题已经解决。
经网友提醒,mle命里里面有一句话:
Custom probability distribution function, specified as a function handle created using @.
似乎是在说,只能用@定义,不能用文件函数。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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