Python 高斯分布拟合与lmfit
我使用lmfit进行高斯分布拟合。我有不同的情况(见图),假设它遵循高斯分布。对于最后一种情况,没有足够的数据进行很好的拟合。然而,我仍然需要在那里进行高斯拟合,我的期望是,我将收到一个拟合参数,但由于数据点的数量非常少,因此具有非常高的不确定性 然而,使用lmfit,我收到了一个我没有预料到的fit参数。在我看来,期望值和sigma非常接近,而且不确定性非常低。我使用了lmfit的本地高斯模型。如果有人能对这种行为做出解释,我将不胜感激:) 我的第二个问题是,是否有任何方法将lmfit的fit函数中的mu位置锁定为0,类似于scipy-stats.norm.fit函数,您可以使用floc=0将mu固定为0 以下是我使用的拟合函数:Python 高斯分布拟合与lmfit,python,gaussian,lmfit,Python,Gaussian,Lmfit,我使用lmfit进行高斯分布拟合。我有不同的情况(见图),假设它遵循高斯分布。对于最后一种情况,没有足够的数据进行很好的拟合。然而,我仍然需要在那里进行高斯拟合,我的期望是,我将收到一个拟合参数,但由于数据点的数量非常少,因此具有非常高的不确定性 然而,使用lmfit,我收到了一个我没有预料到的fit参数。在我看来,期望值和sigma非常接近,而且不确定性非常低。我使用了lmfit的本地高斯模型。如果有人能对这种行为做出解释,我将不胜感激:) 我的第二个问题是,是否有任何方法将lmfit的fit
// transform data into bins
bins_hist = np.linspace( data.min(), data.max(), 40)
quantity, bins = np.histogram(data, bins_hist, density = True)
bins_mean = (bins [1:]+bins [:-1])/2
// initialise model
mod = GaussianModel()
// perform fit
pars = mod.guess(quantity, x=bins_mean )
out = mod.fit(quantity, pars, x=bins_mean )
// get output values
mu = out.params['center'].value
mu_stderr = out.params['center'].stderr
sigma = out.params['sigma'].value
sigma_stderr = out.params['sigma'].stderr
提供一个完整的最小示例。显示您得到的实际结果(打印并粘贴拟合报告),并解释您认为结果不正确的原因。是的,您可以告诉
center
参数的值在拟合中不随pars['center']变化。拟合前vary=False
。有关参数值的更多操作,请参阅文档。