Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 高斯分布拟合与lmfit_Python_Gaussian_Lmfit - Fatal编程技术网

Python 高斯分布拟合与lmfit

Python 高斯分布拟合与lmfit,python,gaussian,lmfit,Python,Gaussian,Lmfit,我使用lmfit进行高斯分布拟合。我有不同的情况(见图),假设它遵循高斯分布。对于最后一种情况,没有足够的数据进行很好的拟合。然而,我仍然需要在那里进行高斯拟合,我的期望是,我将收到一个拟合参数,但由于数据点的数量非常少,因此具有非常高的不确定性 然而,使用lmfit,我收到了一个我没有预料到的fit参数。在我看来,期望值和sigma非常接近,而且不确定性非常低。我使用了lmfit的本地高斯模型。如果有人能对这种行为做出解释,我将不胜感激:) 我的第二个问题是,是否有任何方法将lmfit的fit

我使用lmfit进行高斯分布拟合。我有不同的情况(见图),假设它遵循高斯分布。对于最后一种情况,没有足够的数据进行很好的拟合。然而,我仍然需要在那里进行高斯拟合,我的期望是,我将收到一个拟合参数,但由于数据点的数量非常少,因此具有非常高的不确定性

然而,使用lmfit,我收到了一个我没有预料到的fit参数。在我看来,期望值和sigma非常接近,而且不确定性非常低。我使用了lmfit的本地高斯模型。如果有人能对这种行为做出解释,我将不胜感激:)

我的第二个问题是,是否有任何方法将lmfit的fit函数中的mu位置锁定为0,类似于scipy-stats.norm.fit函数,您可以使用floc=0将mu固定为0

以下是我使用的拟合函数:

// 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
。有关参数值的更多操作,请参阅文档。