フィット関数から 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))
ただし、 x^2+y^2 を (xy)^2 に置き換えると、
共分散: ((250.24975024975475, 249.75024975025426), (249.75024975025426, 250.24975024975475))
なぜ共分散が1より大きいのか混乱しています(統計は得意ではありませんが、理解したところでは-1と1の間でなければなりません)ので、iminuitを知っている人が助けてくれますか?また、最初のケースでは、行列は何を意味するのでしょうか? x と y の間に 0 の相関があるのはなぜですか?対角線上の 1 は何を意味するのですか?