2016-07-07 110 views
1

我绘制了一个直方图,并希望将泊松分布拟合到直方图中。为此,我已将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 

我假设的拉姆达我密谋兴趣会是0.013(我认为我的lambda非常小,因为我的直方图是频率直方图)。我用绘制泊松PDF:

x = 0:50 
y = poisspdf(x,0.013); 
plot(x,y,'r') 

而且我得到的叠加导致剧情:

enter image description here

不过,我认为这个拟合分布看起来有点古怪。它似乎并不像“泊松”一样。有谁知道我是否做错了什么?

+0

我认为你的x范围太大(即数据步长太大,所以你没有看到分布的细节),0:50而你的lambda在0.013,也许尝试像0:0.01 :10,看看结果是否更好。 – GameOfThrows

+0

@GameOfThrows而不是使用'x = 0:50',我实际上使用了我的直方图中的x值。 – interstellar

+0

是的,我认为分辨率太低(如果你知道我的意思),你的分配看起来是正确的,你真的想要更高的分辨率,比如0:0.01:10。 – GameOfThrows

回答

2

“我绘制了一个直方图,并想将泊松分布拟合到直方图上。”

我的理解是你需要将泊松分布拟合到现有的测量数据直方图上。我相信你可以使用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; 

会给你一个适合它的泊松分布曲线的直方图。

+0

当我尝试这种方法时,我得到一个红线在0 ... – interstellar

+0

Ohhhhh。我看到我的问题。当我计算频率之前应该使用数据时,我正在使用'fitdist'中x的频率。 – interstellar