我正在尝试使用 ipython --pylab 将数据集放入双政治方程中: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 的标准差呢?谢谢。
答案在文档中:
PCOV : 2D 阵列
选择的估计协方差。对角线提供参数估计值的方差。要计算参数上的一个标准偏差误差,请使用
perr = np.sqrt(np.diag(pcov))
...