Matlab 对数据拟合泊松分布
我已经绘制了一个柱状图,并希望将泊松分布拟合到柱状图中。为此,我将x和y直方图坐标向量传递给Matlab 对数据拟合泊松分布,matlab,curve-fitting,poisson,Matlab,Curve Fitting,Poisson,我已经绘制了一个柱状图,并希望将泊松分布拟合到柱状图中。为此,我将x和y直方图坐标向量传递给poissfit()函数,以估计lambda 例如,以下是我所做的: expecteddata = cat(2,x,y) [l,lci] = poissfit(expecteddata) 我的输出如下所示: l = 44.3766 0.0130 lci = 42.8887 0.0003 45.8645 0.0724 我假设我对绘制感兴趣的lambda是0.0
poissfit()
函数,以估计lambda
例如,以下是我所做的:
expecteddata = cat(2,x,y)
[l,lci] = poissfit(expecteddata)
我的输出如下所示:
l =
44.3766 0.0130
lci =
42.8887 0.0003
45.8645 0.0724
我假设我对绘制感兴趣的lambda是0.013
(我认为我的lambda很小,因为我的直方图是频率直方图)。我使用以下方法绘制泊松pdf:
x = 0:50
y = poisspdf(x,0.013);
plot(x,y,'r')
我得到了结果的叠加图:
然而,我认为这种拟合分布看起来有点奇怪。它看起来不像“泊松效应”。有人知道我是否做得不正确吗?“我已经绘制了一个直方图,希望将泊松分布拟合到直方图中。”
我的理解是,您需要将泊松分布拟合到测量数据的现有直方图。我相信您可以使用fitdist()
函数
例如,如果您的数据是x
[n,bin]=hist(x,100);
m=n/trapz(bin,n);
bar(bin,m,'w');
hold on
pd=fitdist(x,'poisson');
y=pdf(pd,bin);
plot(bin,y,'k');
hold off;
将为您提供一个拟合泊松分布曲线的直方图。我认为您的x范围太大(即数据步长太大,因此您看不到分布的精细程度),0:50,而lambda为0.013,也许可以尝试类似于0:0.01:10的方法,看看结果是否更好。@GameOfThrows没有使用
x=0:50
,实际上我使用了直方图中的x值。是的,我认为分辨率太低(如果你知道我的意思),你的分布看起来不正确,你真的想要更高的分辨率,所以像0:0.01:10。@GameOfThrows我也试过你的方法。不幸的是,它产生了一个更奇怪的结果。我想我的分布并不符合泊松分布。我明白我的问题了。当我在计算频率之前应该使用数据时,我在fitdist
中使用了x的频率。