我正在对某些数据拟合曲线,但我想获取拟合参数的错误。定义好所需的功能后(我的数据中有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
我没有在此处粘贴所有参数,但是对于所有参数,错误和相关性均为“无”。为什么会这样,我该如何解决?谢谢!
答案 0 :(得分:0)
为什么不计算误差线和相关性有几种可能性。如果没有关于您正在做的事情的更多详细信息(总是建议您包括一个最小的工作示例并显示完整的输出),就不可能确切知道,但是我想其中一个参数实际上并不会改变拟合度。
打印拟合报告(print(out.fit_report())
)可能会提示哪些参数没有改变拟合-有可能其中一些参数没有偏离其初始值,而是停留在某个边界上,或具有将模型组件推为零的值。
更新问题以提供更多详细信息可能会使我们提供更好的建议。