私はフィット関数から2つのパラメータ間の共分散を計算する必要があります。このパッケージがPythonでiminuitというパッケージを見つけました。このパッケージは適切に機能し、パラメータの共分散行列も計算します。私は単純な関数でパッケージをテストしました。これは、コードである:イミニュートを使ったPythonの共分散
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))
ただしiはX^2を交換する場合 ((250.24975024975475、249.75024975025426)、 (249.75024975025426、250.24975024975475))
0:(XY)^ 2とy^2 + Iは共分散を得ます
私は混乱しているのですがなぜ私は共分散が1よりも大きいのですか(私は統計的には良くありませんが、それは-1と1の間でなければならないと理解しています)。また、最初のケースでは、マトリックスとはどういう意味ですか?なぜxとyの間に0の相関があり、対角の1は何を意味しますか?
これははるかに意味をなします。どうもありがとうございます。最初のケースについて、私はなぜそれらの値を得るのか説明してもらえますか(主対角線に1つ、側面に0つ)? – Silviu
(x - y)には最小値はなく、関数がゼロである行があります。したがって、誤差は大きくなり、相関は基本的に1です。共変量は無限になりますが、それは数値です。 'x ** 2 + y ** 2'は明確な最小値を持っています。だから、それは見つからず、相関がないので、相関はゼロです。 – MaxNoe