无法获取 lmfit 参数标准错误



我正在将曲线拟合到某些数据,我想得到拟合参数的错误。在我定义了我需要的函数(我的数据中有 2 个峰值(后,我这样做:

model =  peak1 + peak2 + background
out = model.fit(rate, pars, x=freq)
for param in out.params.values():
print (param.name, param.value, param.stderr, param.correl)

合身看起来不错,但我的打印函数的输出是这样的:

line1_intercept 3053.3123218614182 None None
line1_slope -0.21663082088027244 None None
sv1_center 12842.290728247852 None None
sv1_skew 13.665341159225834 None None
sv1_sigma 0.7078607224978566 None None
sv1_amplitude 39.82090733520796 None None
sv1_gamma 0.7078607224978566 None None
sv1_height 22.442613151830642 None None
sv1_fwhm 2.5492258985387557 None None

我没有将所有参数粘贴到此处,但对于所有这些参数,误差和相关性均为 None。为什么会这样,我该如何解决?谢谢!

为什么不计算误差线和相关性有几种可能性。 如果没有关于您正在做什么的更多详细信息(始终建议包含一个最小的工作示例并显示完整的输出(,就不可能确定,但我猜其中一个参数实际上并没有改变拟合。

打印拟合报告 (print(out.fit_report())( 可能会提供有关哪些参数没有改变拟合的线索 - 其中一些参数可能没有偏离其初始值,卡在某个边界上,或者具有将模型组件推到零的值。

更新问题以提供更多细节可能会让我们提供更好的建议。

最新更新