Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么optimize.curve_拟合中的pcov是一个二乘二矩阵,哪个值对应于截距_Python_Numpy_Scipy - Fatal编程技术网

Python 为什么optimize.curve_拟合中的pcov是一个二乘二矩阵,哪个值对应于截距

Python 为什么optimize.curve_拟合中的pcov是一个二乘二矩阵,哪个值对应于截距,python,numpy,scipy,Python,Numpy,Scipy,我试图理解以下代码中的perr,它是一个维度为(2,2)的矩阵。我希望它是一个维度为(1,2)的矩阵。你能解释一下哪个值对应斜率,哪个值对应截距吗。文档说明对角线是参数(斜率、截距)的方差。非对角元素呢?它告诉我们什么 x= np.arange(10) y = np.array([2,4,7,8,11,18,20,24,26,28]) def line(x,m,b): #m and b are parameters return m*x+b pfit,perr = optimiz

我试图理解以下代码中的perr,它是一个维度为(2,2)的矩阵。我希望它是一个维度为(1,2)的矩阵。你能解释一下哪个值对应斜率,哪个值对应截距吗。文档说明对角线是参数(斜率、截距)的方差。非对角元素呢?它告诉我们什么

x= np.arange(10)
y = np.array([2,4,7,8,11,18,20,24,26,28])

def line(x,m,b):   #m and b are parameters
    return m*x+b

pfit,perr = optimize.curve_fit(line,x,y)
error = []
for i in range(len(pfit)):
    gg=np.absolute(perr[i][i])**0.5
    print (gg)

参数在结果中的表示顺序与优化函数采用的顺序相同。由于行定义为
行(x,m,b)
popt
包含的估计值顺序为
[m,p]

curve\u fit
返回的
pcov
(或示例中的
perr
)是估计参数的最大值

  • 对角线元素是方差。它们告诉我们参数变化的可能性有多大,或者我们对估计的信心有多大。较大的方差基本上意味着我们对参数了解不多;
    popt
    中返回的值是最有可能的值,但即使是遥远的值也很有可能
  • 非对角元素是。它们的意思实际上隐藏在名称中:协方差;变量如何一起变化
这就是不同协方差值的含义:

协方差|两个变量是。。。 ------------+----------------------- 0 |完全不相关 1 |完全一样 -1 |完全倒置 在0和1之间|一个可能较大,而另一个也较大 在0和-1之间|一个可能较大,而另一个较小 在本例中,协方差矩阵为

[[ 0.025, -0.114],
 [-0.114,  0.723]]
那么斜率和截距的协方差是-0.114是什么意思呢?它们是相关的:如果截距较大,斜率必须较小,反之亦然

从图形上看,如果将整条线向上移动,则靠近数据点的坡度必须较小;如果你向下移动,它需要更大的坡度。

这在线性回归中非常明显,因此没有那么有用;但请记住,
曲线拟合
可以采用任何复杂的函数,其中参数之间的依赖性并不明显。在这种情况下,这可能是有价值的信息。

pcov:2d数组

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

你说的是参数的方差和协方差,而不是变量

在值中定义的协方差​​不在对角线上的,告诉我们,如果我选择另一个,大的或小的,参数将运行多少以及运行方向

标准偏差告诉我们,在[mean std,mean+std]范围内,测量值在该范围内的概率为68%


方差告诉我们这些值是如何分散的​​是

The,它以
popt
pcov
的形式返回的内容非常清楚。并且说pcov将是一个2d数组。文件的哪一部分不清楚?
pfit
的两个值是斜率(
m
)和截距(
b
),因此您可以绘制
x
直线(x,*pfit)
。在pcov中,第一行包含两个元素。文献表明,该矩阵的对角线是参数估计的方差。非对角元素呢。它们代表什么?请澄清问题的一部分,即“为什么我们忽略协方差的0值,为什么我们将其除以0.5?”。我在代码中既看不到任何被忽略的0值,也看不到0.5的除法。非常感谢,现在我得到了它