1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python模型参数估计_python – 从scipy.optimize.curve_fit获取与参数估计值相关的标准错误...

python模型参数估计_python – 从scipy.optimize.curve_fit获取与参数估计值相关的标准错误...

时间:2022-02-01 06:05:06

相关推荐

python模型参数估计_python – 从scipy.optimize.curve_fit获取与参数估计值相关的标准错误...

参数的方差是方差 – 协方差矩阵的对角元素,标准误差是它的平方根. np.sqrt(np.diag(pcov))

关于获取inf,请查看并比较这两个示例:

In [129]:

import numpy as np

def func(x, a, b, c, d):

return a * np.exp(-b * x) + c

xdata = np.linspace(0, 4, 50)

y = func(xdata, 2.5, 1.3, 0.5, 1)

ydata = y + 0.2 * np.random.normal(size=len(xdata))

popt, pcov = so.curve_fit(func, xdata, ydata)

print np.sqrt(np.diag(pcov))

[ inf inf inf inf]

和:

In [130]:

def func(x, a, b, c):

return a * np.exp(-b * x) + c

xdata = np.linspace(0, 4, 50)

y = func(xdata, 2.5, 1.3, 0.5)

ydata = y + 0.2 * np.random.normal(size=len(xdata))

popt, pcov = so.curve_fit(func, xdata, ydata)

print np.sqrt(np.diag(pcov))

[ 0.11097646 0.11849107 0.05230711]

在这个极端的例子中,d对函数func没有影响,因此它将与inf的方差相关联,换句话说,它可以是任何值.从func中删除d将获得有意义的东西.

实际上,如果参数的比例非常不同,请说:

def func(x, a, b, c, d):

#return a * np.exp(-b * x) + c

return a * np.exp(-b * x) + c + d*1e-10

由于浮点溢出/下溢,您也会得到inf.

在你的情况下,我认为你从未使用过a和b.所以它就像这里的第一个例子.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。