2016-06-12 2 views
0

적합 함수에서 두 매개 변수 사이의 공분산을 계산해야합니다. 나는이 패키지를 Python에서 iminuit라고 불렀고 좋은 적합성을 발견했으며 매개 변수의 공분산 행렬을 계산했습니다. 나는 간단한 기능으로 패키지를 테스트했다. 이것은 코드 :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))

내가 X^2를 교체하면 ((250.24975024975475, 249.75024975025426) (249.75024975025426, 250.24975024975475))

0 : I 얻을 2^(XY)

공분산과 Y ^

왜 공분산이 1보다 큰지 혼란 스럽습니다 (나는 통계가 좋지 않지만 그것이 -1과 1 사이에 있어야한다는 것을 이해했습니다). 그래서 iminuit을 아는 사람이 나를 도울 수 있습니까? 그리고 첫 번째 경우에 행렬은 무엇을 의미합니까? 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)에는 최소값이 없지만 함수가 0 인 선이 있습니다. 따라서 오류는 커지고 상관은 기본적으로 1입니다. 공변량은 무한해야하지만 수치 여야합니다. 'x ** 2 + y ** 2'는 명확한 최소값을 가지고 있습니다. 그래서 그것은 발견되었고 아무 것도 없기 때문에 상관 관계는 0입니다. – MaxNoe