我正在尝试使用ipython --pylab将数据集拟合到hyperpolic方程中: y = ax /(b + x)
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的标准差? 谢谢。
答案 0 :(得分:2)
它位于docs:
pcov :2d数组
popt估计的协方差。对角线提供参数估计的方差。要计算参数的一个标准偏差,请使用
perr = np.sqrt(np.diag(pcov))
...