使用matlab来拟合给定p下负二项分布的数据?

时间:2014-12-04 08:26:37

标签: matlab

如何在给定的p?

下使用matlab来拟合负二项分布的数据

2 个答案:

答案 0 :(得分:0)

statistics toolbox中看起来像mle的工作。作为p及其他任何函数的函数,你需要表达负二项分布(或者它的日志,这可能会更容易),并发明一些起始参数。

答案 1 :(得分:0)

如果您认为拟合作为另一个参数R的函数且P已固定,则下面显示如何使用mle来修复一个参数的值并估算另一个参数的值:

x = nbinrnd(20,.5,1000,1);
params = nbinfit(x)                                   % unconstrained fit
r = mle(x,'pdf',@(x,r)nbinpdf(x,r,.5),'start',23)     % constrain P=0.5

% Plot log likelihood as a function of R
rr = linspace(15,25);
yy = zeros(size(rr));
for j=1:length(rr)
   yy(j) = sum(log(nbinpdf(x,rr(j),.5)));
end
plot(rr,yy,'-',...
     params(1),sum(log(nbinpdf(x,params(1),params(2)))),'o')
legend(sprintf('r=%f,p=.5',r), sprintf('r=%f,p=%f',params),'location','sw')