gpt4 book ai didi

python - python 上的 LMFIT 置信区间不确定性估计误差

转载 作者:行者123 更新时间:2023-12-01 03:58:21 28 4
gpt4 key购买 nike

输出错误是: 最小化异常:如果没有合理的不确定性估计,则无法确定置信区间

为什么我收到这个错误?我如何计算不确定性估计并解决这个问题?

for dosya1 in glob.glob("mean*"):
data1=np.genfromtxt(dosya1, skip_header=0, skip_footer=0, names=["wavelength","mean"])
x=data1["wavelength"]

mod=VoigtModel()
pars = mod.guess(y, x=x)
pars['gamma'].set(value=0.7, vary=True, expr="")
out=mod.fit(y,pars, x=x)

pars=lmfit.Parameters()
pars.add_many(('amp', out.params["amplitude"].value), ('sig', out.params["sigma"].value), ("gam",out.params["gamma"].value),("cent",out.params["center"].value))

def residual(p):
amp=p["amp"].value
sig=p["sig"].value
gam=p["gam"].value
cent=p["cent"].value
return ((wofz((x-cent + wofz(gam).imag)/(sig*(sqrt(2)))).real) / (sig*(sqrt(2))))- y

mini = lmfit.Minimizer(residual, pars)
result=mini.minimize()

ci = lmfit.conf_interval(mini, result)
lmfit.printfuncs.report_ci(ci)

最佳答案

如果lmfit.minimize()(实际上是它调用的leastsq())无法通过求逆曲率矩阵来估计不确定性,您将收到此错误消息。它使用这些值(顺便说一句,这些值通常是非常好的估计值)作为显式探索参数空间的尺度。 leastsq() 无法估计不确定性的可能原因有多种。常见原因是未发现一个或多个变量可以改变拟合,或者残差包含 NaN。

很难预测这种情况何时会发生。在调用 conf_interval() 之前,您应该考虑到这种可能性和/或检查初始拟合是否成功,并能够对不确定性进行初步估计(检查 result.errorbars) >.

关于python - python 上的 LMFIT 置信区间不确定性估计误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37045645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com