无法获取lmfit参数stderror

时间:2019-08-17 21:46:33

标签: python 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

我没有在此处粘贴所有参数,但是对于所有参数,错误和相关性均为“无”。为什么会这样,我该如何解决?谢谢!

1 个答案:

答案 0 :(得分:0)

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

打印拟合报告(print(out.fit_report()))可能会提示哪些参数没有改变拟合-有可能其中一些参数没有偏离其初始值,而是停留在某个边界上,或具有将模型组件推为零的值。

更新问题以提供更多详细信息可能会使我们提供更好的建议。