我必须从拟合函数计算 2 个参数之间的协方差。我在 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))
但是,如果我用 (xy)^2 替换 x^2+y^2 我得到
协方差:((250.24975024975475, 249.75024975025426), (249.75024975025426, 250.24975024975475))
我很困惑为什么我得到的协方差大于 1(我不擅长统计,但据我了解它必须在 -1 和 1 之间),所以知道 iminuit 的人可以帮助我吗?而且,在第一种情况下,矩阵是什么意思?为什么 x 和 y 之间的相关性为 0,对角线上的 1 意味着什么?