全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
13494 7
2010-04-04
我现在已知一组数据和它的概率密度函数(函数中有参数,且这个函数matlab中没有),如何用最大似然估计,估计出参数呢?
请各位大虾帮帮忙,急用啊!谢谢了!!!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-4-5 17:19:53
[cry][dizzy]
二维码

扫码加我 拉你入群

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

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

2010-4-6 15:09:34
我也遇到相同问题。如果你的参数不超过7个  也许我可以帮你

我的是参数有12个  不能用fminsearch()函数

我用fminunc老出错  忘达人帮忙啊。

附我出错的程序如下:看起来很复杂,其实密度函数本来是混合正态分布,只是对参数又进行了假设所以变复杂了。

%----likelihood function  M函数文件
function fun3=myfun(x,s,f,b)
r01=x(1);r11=x(2);r02=x(3);r12=x(4);f01=x(5);
nd01=x(6);nd11=x(7);nd02=x(8);nd12=x(9);f11=x(10);f02=x(11);f12=x(12);

pi1=(1+exp(f01+f11*b))/(2+exp(f01+f11*b)+exp(f02+f12*b));

mu1=(s-r01-r11*f).^2;mu2=(s-r02-r12*f).^2;

sd1=sqrt(2*pi*exp(nd01+nd11*b));
sd2=sqrt(2*pi*exp(nd02+nd12*b));

fun3=-sum(log(pi1*exp(-mu1/exp(nd01+nd11*b)/2)/sd1+(1-pi1)*exp(-mu2/exp(nd02+nd12*b)/2)/sd2));

%窗口主程序
clc
mydata1=xlsread('spot.xls');
mydata2=xlsread('future.xls');
mydata3=xlsread('basic.xls');
s=mydata1(:,1);
f=mydata2(:,1);
b=mydata3(:,1);
options=optimset('fminunc');
[x,fval,exitflag,output]=fminunc(@fun3,[0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5],options,s,f,b)
二维码

扫码加我 拉你入群

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

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

2010-4-6 15:12:46
忘了把出错信息写上了。

??? Error using ==> mrdivide
Matrix dimensions must agree.

Error in ==> fun3 at 13
fun3=-sum(log(pi1*exp(-mu1/exp(nd01+nd11*b)/2)/sd1+(1-pi1)*exp(-mu2/exp(nd02+nd12*b)/2)/sd2));

Error in ==> fminunc at 182
   f = feval(funfcn{3},x,varargin{:});
二维码

扫码加我 拉你入群

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

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

2010-4-6 16:24:40
我已经解决了,是我自己的初值有问题,还有程序有占小问题!
二维码

扫码加我 拉你入群

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

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

2012-9-15 15:24:30
lz,能分享下如何解决的么,我也碰到类似问题,可否粘出相关程序供参考?谢谢
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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