Python估算数据拟合后的标准偏差

时间:2017-01-23 02:18:44

标签: python scipy curve-fitting standard-deviation data-fitting

我正在尝试使用ipython --pylab将数据集拟合到hyperpolic方程中: y = ax /(b + x)

这是我的python代码:

from scipy import optimize as opti
import numpy as np
from pandas import DataFrame

x = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8])
y = np.array([0.375, 0.466, 0.509, 0.520, 0.525, 0.536, 0.541])
y_stdev = np.array([0.025, 0.016, 0.009, 0.009, 0.025, 0.019])

def func(x, a, b):
   return a*x / (b + x)

popt, pcov = opti.curve_fit(func, x, y)
print(popt)
print("a = ", popt.ix[0])
print("b = ", popt.ix[1])

a b 的值应该在popt参数中。我想问的是,在将数据集拟合到func(x,a,b)中时,推断出 a b 的值,然后,我们如何估计a和b的标准差? 谢谢。

1 个答案:

答案 0 :(得分:2)

它位于docs

  

pcov :2d数组

     

popt估计的协方差。对角线提供参数估计的方差。要计算参数的一个标准偏差,请使用perr = np.sqrt(np.diag(pcov)) ...