给定函数形式进行拟合,得出参数取值95%的置信区间

import numpy as np
from scipy.optimize import curve_fit
from scipy.stats.distributions import t as t_distribution
def fun_fit(fun, xdata, ydata):
    '''
    import numpy as np
    from scipy.optimize import curve_fit
    from scipy.stats.distributions import t as t_distribution
    '''
    pars, pcov = curve_fit(fun,xdata,ydata)

    n = len(ydata)
    p = len(pars)

    alpha = 0.05
    dof = n - p

    tval = t_distribution.ppf(1.-alpha/2.,dof)

    sigma = np.sqrt(np.diag(pcov))
    for i in range(p):#fun()里的参数顺序,95%置信区间
        print('p{0}: {1:5.3f} [{2:5.3f}  {3:5.3f}]'\
             .format(i,pars[i],
                    pars[i]-sigma[i]*tval,
                    pars[i]+sigma[i]*tval))
def fun(x,A,b):
    return A*x+b

x = [1 ,2, 3 ]
y = [2 ,4, 6 ]
fun_fit(fun,x,y)

p0: 2.000 [2.000 2.000]
p1: -0.000 [-0.000 -0.000]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值