基于iminui的Python协方差

2024-06-26 07:44:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须从拟合函数计算两个参数之间的协方差。我在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意味着什么?在


Tags: 函数代码fromimport参数returndef矩阵
1条回答
网友
1楼 · 发布于 2024-06-26 07:44:17

你把协方差和相关性搞混了。相关性是协方差的标准化版本,它实际上总是在-1和1之间。在

要从协方差矩阵中获得协减量,请计算:

correlation = cov[0, 1] / np.sqrt(cov[0, 0] * cov[1, 1])

相关问题 更多 >