- This topic has 3개 답변, 2명 참여, and was last updated 9 years, 9 months 전에 by chobo.
-
글쓴이글
-
-
chobo회원
안녕하세요.
mpfit을 이용하여 (x1, y1) .. (x5, y5) 지점에 대한 선형관계를 구하고자 합니다. IDL(mpfit) 결과와 엑셀 결과를 비교 했을 때 조금 차이가 나고 있습니다. 두 가지 질문이 있습니다.1) 제가 mpfit을 맞게 이용한 것인지…
2) 엑셀의 R2값에 상응하는 값을 mpfit에서도 출력할 수 있는지요?
3) 동일한 자료에 대한 IDL/엑셀의 결과가 다를 경우, 어느 결과를 더 신뢰해야하는지요?
감사합니다.; –1. IDL mpfit ————–
IDL> x = [22, 151, 242, 349, 478]
IDL> y = [250, 245, 239, 235, 231]
IDL> yerr = replicate(0, 4) ; no error
IDL> weights = replicate(1, 4) ; no weighting = same weighting
IDL> expr=’p[0]+p[1]*x’
IDL> result=mpfitexpr(expr, x, y, error, weights=weights)
IDL> print, result[0], result[1]
% MPFITEXPR: Number of parameters: 2 (initialized to zero)
Iter 1 CHI-SQUARE = 234871.00 DOF = 2
P(0) = 0.000000
P(1) = 0.000000
Iter 2 CHI-SQUARE = 125414.15 DOF = 2
P(0) = 40.1352
P(1) = 0.138532
Iter 3 CHI-SQUARE = 14457.139 DOF = 2
P(0) = 142.042
P(1) = 0.295155
Iter 4 CHI-SQUARE = 1.5471971 DOF = 2
P(0) = 251.286
P(1) = -0.0473097
Iter 5 CHI-SQUARE = 1.5471971 DOF = 2
P(0) = 251.286
P(1) = -0.0473097
251.28615 -0.047309704
IDL>; –2. 엑셀의 결과 ————–
Y = -0.043X + 250.68
R2 = 0.9846- 이 게시글은 chobo에 의해 9 years, 9 months 전에 수정됐습니다.
-
chobo회원
위 글을 삭제할 수가 없군요.. *^^*
아래 부분에 실수가 ^^*
이제 엑셀 결과와 거의 비슷해졌습니다…
그런데, 엑셀의 R2값에 상응하는 값을 mpfit에서도 출력할 수 있는지요?
yerr = replicate(0, 5) ; no error
weights = replicate(1, 5) ; no weighting = same weighting -
jhleeKeymaster
우선 1번째 질문은 해결이 된 것으로 판단합니다.
2번째 질문을 보고 정말 없나? 하고 소스코드를 보니 정말 없네요 ㅎㅎ
하지만 다행히도 mpfit에는 yfit이라는 키워드가 있습니다. yfit 키워드를 통해 획득되는 값은 y = ax+b에서 x에 정확히 1:1 매칭이 되는 y 값이 산출됩니다(정확히 표현하자면 1:1 매칭보다는 error값이 최소가 되는 방향으로의). 이렇게 획득된 값을 실제 y값과의 variance 비로 표현해주면 됩니다.
R2 = variance(yfit)/variance(y)
또는 regress 함수의 correlation 키워드를 사용하여 R값(상관계수)을 산출 후 제곱을 해주셔도 됩니다. R은 상관계수, R2는 결정계수를 나타냅니다. -
chobo회원
글쿤요..
감사합니다. *^^*
-
-
글쓴이글