我必须从拟合函数计算两个参数之间的协方差。我在Python中找到了一个名为iminuit的包,它很好地拟合了参数的协方差矩阵。我用一个简单的函数测试了这个包。代码如下:
from iminuit import Minuit, describe, Struct
def func(x,y):
f=x**2+y**2
return f
m = Minuit(func,pedantic=False,print_level=0)
m.migrad()
print("Covariance:")
print(m.matrix())
这是输出:
协方差: (1.0,0.0), (0.0,1.0)
但是,如果我用(x-y)^2替换x^2+y^2,我得到
协方差: (250.24975024975475475249.75024975025426), (249.75024975025426、250.249750249754475)
我很困惑为什么协方差大于1(我不擅长统计,但据我所知,协方差必须在-1和1之间),所以了解iminuit的人可以帮助我?还有,在第一种情况下,矩阵是什么意思?为什么x和y之间有0的相关性,对角线上的1意味着什么?在
你把协方差和相关性搞混了。相关性是协方差的标准化版本,它实际上总是在-1和1之间。在
要从协方差矩阵中获得协减量,请计算:
相关问题 更多 >
编程相关推荐