2016-06-12 19 views
0

私はフィット関数から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は何を意味しますか?

答えて

0

あなたは相関と共分散を混同しています。相関が共分散行列からcorellationを得るために間に-1と1

常に確かである共分散の正規化されたバージョンであり、計算:

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

これははるかに意味をなします。どうもありがとうございます。最初のケースについて、私はなぜそれらの値を得るのか説明してもらえますか(主対角線に1つ、側面に0つ)? – Silviu

+0

(x - y)には最小値はなく、関数がゼロである行があります。したがって、誤差は大きくなり、相関は基本的に1です。共変量は無限になりますが、それは数値です。 'x ** 2 + y ** 2'は明確な最小値を持っています。だから、それは見つからず、相関がないので、相関はゼロです。 – MaxNoe

関連する問題