用matlab对给定p?

用matlab对给定p?,matlab,Matlab,在给定的p下,如何使用matlab拟合负二项分布的数据?看起来像是mle中的一项工作。您需要将负二项分布(或它的对数,可能更容易)表示为p和其他任何函数,并发明一些开始参数来提交。如果您的意思是将拟合作为另一个参数R的函数,p固定,下面显示了如何使用mle固定一个参数的值并估计另一个参数的值: x = nbinrnd(20,.5,1000,1); params = nbinfit(x) % unconstrained fit r

在给定的p下,如何使用matlab拟合负二项分布的数据?

看起来像是
mle
中的一项工作。您需要将负二项分布(或它的对数,可能更容易)表示为
p
和其他任何函数,并发明一些开始参数来提交。

如果您的意思是将拟合作为另一个参数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')