적합 함수에서 두 매개 변수 사이의 공분산을 계산해야합니다. 나는이 패키지를 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은 왜 의미합니까?
이 훨씬 더 의미합니다. 정말 고맙습니다. 첫 번째 경우에 대해 왜 그 값을 얻었는지 설명해 주시겠습니까 (주 대각선에 1 개, 측면에 0 개)? – Silviu
(x - y)에는 최소값이 없지만 함수가 0 인 선이 있습니다. 따라서 오류는 커지고 상관은 기본적으로 1입니다. 공변량은 무한해야하지만 수치 여야합니다. 'x ** 2 + y ** 2'는 명확한 최소값을 가지고 있습니다. 그래서 그것은 발견되었고 아무 것도 없기 때문에 상관 관계는 0입니다. – MaxNoe