我在这里查看了很多示例,并尝试使用其他代码片段,但它们对我没有用。我有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()
我尝试使用scipy.stats
而非curve_fit
在直方图的顶部绘制其他分布,例如正态分布和瑞利分布。这类工作仅是因为它们具有scale参数,而scipy.stats.poisson
没有。它的分布看起来与curve_fit
完全相同。我不确定如何解决此问题。也许数据甚至不是泊松分布的!
感谢您的帮助!
更新:数据是来自TXS 0506 + 056 blazar。的IceCube数据。第一列是经过修改的儒略日,最后一列是能源代理的日志。我正在使用最后一列。我对此数据有零假设和替代假设,并且正在使用最大似然估计(根据某种分布,我的第一种情况为Poisson)来分析数据。
此外,这是我获得数据的地方: I used SkyDrive to get a URL for the file. I hope it works
答案 0 :(得分:1)
直方图does not have a Poisson distribution中显示的数据。泊松是一种计数分布(每单位时间或空间获得0、1、2,...观测值的概率),其支持为正整数。直方图清楚地表明您具有分数值,因为峰值在非整数位置处具有不同的非零高度。