无法使泊松适合直方图

时间:2018-08-04 04:47:52

标签: python scipy distribution poisson

我在这里查看了很多示例,并尝试使用其他代码片段,但它们对我没有用。我有4个数据集,但这里只包含一个。我的教授告诉我,数据似乎是泊松分布的,所以我正在尝试使泊松适合数据的直方图。这是我的代码:

######## Poisson fit ########

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy.special import factorial

data = data59[4]
entries,bin_edges,patches = plt.hist(data59[4],60,[1,10],normed=True)
bin_middles = 0.5*(bin_edges[1:]+bin_edges[:-1])

def poisson(k, lamb):
    return np.exp(-lamb)*(lamb**k)/factorial(k)

popt,pcov = curve_fit(poisson,bin_middles,entries)

x = np.linspace(1,10,100)

plt.plot(x,poisson(x,*popt))

plt.show()

type-checked pointers

我尝试使用scipy.stats而非curve_fit在直方图的顶部绘制其他分布,例如正态分布和瑞利分布。这类工作仅是因为它们具有scale参数,而scipy.stats.poisson没有。它的分布看起来与curve_fit完全相同。我不确定如何解决此问题。也许数据甚至不是泊松分布的!

感谢您的帮助!

更新:数据是来自TXS 0506 + 056 blazar。link to plot的IceCube数据。第一列是经过修改的儒略日,最后一列是能源代理的日志。我正在使用最后一列。我对此数据有零假设和替代假设,并且正在使用最大似然估计(根据某种分布,我的第一种情况为Poisson)来分析数据。

此外,这是我获得数据的地方: I used SkyDrive to get a URL for the file. I hope it works

1 个答案:

答案 0 :(得分:1)

直方图does not have a Poisson distribution中显示的数据。泊松是一种计数分布(每单位时间或空间获得0、1、2,...观测值的概率),其支持为正整数。直方图清楚地表明您具有分数值,因为峰值在非整数位置处具有不同的非零高度。