直方图曲线拟合的剧烈变化,每增加1个单元

2024-06-26 00:29:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难将柯西分布拟合到我的数据直方图中。我是这样做的:

counts,binEdges = np.histogram(nozero_data,bins=nBins,density=True)  
xlist=np.linspace(nozero_data.min(),nozero_data.max(),nBins)
fitErrors=np.sqrt(counts+1.)

#make an initial guess for the parameters
initialGuess = [np.mean(nozero_data), np.std(nozero_data)]

#fit the data
params,pcov=curve_fit(cauchy_dist,xlist,counts,p0=initialGuess,sigma=fitErrors)

仅供参考,定义柯西分布的代码如下:

def cauchy_dist(x,loc,scale):
    return 1/((np.pi*scale)*(1+np.power(((x-loc)/scale),2)))

我使用了Diaconis-Freedman规则来确定适当数量的箱子,但是注意到曲线与直方图的拟合非常差。我手动更改了nBins,当nBins=103时,曲线拟合得很差,当nBins=104时,曲线拟合得很好,当nBins=105时,曲线拟合得很差。但奇偶关系并不成立(当nBins=97时,它工作得很好,但nBins=96时就不行)。你知道这是怎么回事吗?你知道吗


Tags: thedatadistnp直方图fitscalecounts