Python lmfit参数上的错误并不总是显示出来
我正在尝试使用lmfit将曲线拟合到一些数据点,我需要参数上的误差。调用后:Python lmfit参数上的错误并不总是显示出来,python,lmfit,Python,Lmfit,我正在尝试使用lmfit将曲线拟合到一些数据点,我需要参数上的误差。调用后:out=model.fit(y,pars,x,weights=1/错误)I执行:print(out.fit\u report())。有时输出是这样的(此处发布了部分点击): 这正是我所需要的(即参数有与之相关的错误)。但其他时候是这样的: # fitting method = leastsq # function evals = 9509 # data points = 64
out=model.fit(y,pars,x,weights=1/错误)
I执行:print(out.fit\u report())
。有时输出是这样的(此处发布了部分点击):
这正是我所需要的(即参数有与之相关的错误)。但其他时候是这样的:
# fitting method = leastsq
# function evals = 9509
# data points = 64
# variables = 14
chi-square = 3023.19802
reduced chi-square = 60.4639605
Akaike info crit = 274.731995
Bayesian info crit = 304.956358
## Warning: uncertainties could not be estimated:
sv3_center: at initial value
sv4_amplitude: at boundary
[[Variables]]
line1_c: 49.6633100 (init = 60.35763)
sv1_skew: -19.2947984 (init = 0)
sv1_amplitude: 269.063100 (init = 1)
sv1_center: 13285.0635 (init = 13284)
sv1_sigma: 1.66532381 (init = 1)
sv1_gamma: 1.66532381 == 'sv1_sigma'
为什么不能在第二种情况下估计不确定性。另外,对于完全相同的拟合和数据,有时我会得到参数上的错误,有时我不会,也就是说,我只是连续运行
python code.py
两次,没有任何修改,有时我会得到错误估计值,有时我不会。然而,在这两种情况下,合身的眼睛看起来都很好。有人能帮我理解发生了什么事吗?谢谢大家! 如果一个或多个变量没有引起拟合结果的变化,则无法估计参数值的不确定性。这通常意味着一个或多个参数被固定在初始值(可能是一个非常糟糕的猜测,或者可能导致部分模型无响应)或固定在边界
fit报告试图给出一些好的提示,说明是什么阻止了不确定性的估计。它说:
## Warning: uncertainties could not be estimated:
sv3_center: at initial value
sv4_amplitude: at boundary
除其他外,这意味着您没有包括完整的错误报告,该报告将列出所有14个变量。哦,我明白了!非常感谢你这么做。然而,为什么完全相同的程序有时会给出错误估计,而有时不会?
## Warning: uncertainties could not be estimated:
sv3_center: at initial value
sv4_amplitude: at boundary