当前位置: 代码迷 >> python >> 在python中使用lmfit的数据本身的置信区间
  详细解决方案

在python中使用lmfit的数据本身的置信区间

热度:34   发布时间:2023-06-13 15:07:59.0

这是参数的置信区间的LMFIT实现的链接: ://lmfit.github.io/lmfit-py/confidence.html这是我正在使用的代码:

import lmfit
import numpy as np

# x = np.linspace(1, 10, 250)
# np.random.seed(0)
# y = 1. -np.exp(-(x)/10.) +  0.1*np.random.randn(len(x))

pars = lmfit.Parameters()
pars.add_many(('n', 1.),  ('tau', 3.))

# def residual(pars,data=None):
def residual(pars):
    v = pars.valuesdict()
    # if data is None:
    #     return 1.0 - np.exp(-(x**v['n'])/v['tau'])
    return 1.0 - np.exp(-(x**v['n'])/v['tau'])-y

# create Minimizer
mini = lmfit.Minimizer(residual, pars)

# first solve with Nelder-Mead
out1 = mini.minimize(method='Nelder')

out2 = mini.minimize(method='leastsq', params=out1.params)

lmfit.report_fit(out2.params, min_correl=0.5)

ci, trace = lmfit.conf_interval(mini, out2, sigmas=[0.95],
                                trace=True, verbose=False)
lmfit.printfuncs.report_ci(ci)

使用python中的lmfit来理解数据本身的标题置信区间有点困难(没有数据),或者我正在使用lmfit包进行曲线拟合的第一句话(您需要数据来拟合)。

我认为您所要求的是一种获取与您的数据最匹配的模型函数的极值的方法。 如果是的话,它会工作与参数值的所有组合来评估你的函数best +/- delta (其中delta可能是你喜欢的任何不确定性水平),并采取模型函数的极值? 这不是很自动化,但不应太难。