실제 값이 0 일 때 상대 오차를 계산하는 방법은 무엇입니까?


32

실제 값이 0 일 때 상대 오류를 어떻게 계산합니까?

및 가 있다고 가정하십시오 . 상대 오류를 다음과 같이 정의하면 :xtrue=0xtest

relative error=xtruextestxtrue

그런 다음 상대 오류는 항상 정의되지 않습니다. 대신에 나는 정의를 사용한다 :

relative error=xtruextestxtest

그러면 상대 오차는 항상 100 %입니다. 두 방법 모두 쓸모없는 것 같습니다. 다른 대안이 있습니까?


나는 첫 번째 정의를 사용하여 Monte Carlo 시뮬레이션의 매개 변수 바이어스에 대해 똑같은 질문을했습니다. 나는이 특정 매개 변수에 대한 계산 매개 변수 바이어스하지 않았다, 그래서 내 매개 변수 값 중 하나가 ... 0이었다
패트릭 콜콤

2
이 경우 해결책은 상대 오류를 사용하지 않는 것입니다.
Marc Claesen

2
질문의 문자가 아닌 경우 의도에 응답하는 한 가지 옵션은 와 같이 상대 오류가 작을 때 상대 오류와 밀접하게 일치하는 약간 다른 측정 값을 사용하는 것입니다. . ( 때 사용하십시오 .)이 특정 솔루션은 임의의 상수를 포함하지 않기 때문에 측정 단위가 변경 될 때 변하지 않는다는 점에서 보편적입니다. 2(xtruextest)/(|xtrue|+|xtest|)0xtrue=xtest=0
whuber

@ whuber 기존 의견보다 우수하기 때문에 해당 의견을 답변으로 게시하는 것이 좋습니다.
Silverfish

@Silver 당신 말이 맞아요-답변으로 댓글을 게시 해 주셔서 감사합니다. 따라서 그 의견을 답변으로 약간 확장했습니다.
whuber

답변:


39

목적에 따라 많은 대안이 있습니다.


일반적인 것은 실험실 품질 관리 절차에 사용되는 "상대 백분율 차이"또는 RPD입니다. 겉보기에는 다른 수식을 많이 찾을 수 있지만 두 값의 차이를 평균 크기와 비교하는 방법이 있습니다.

d1(x,y)=xy(|x|+|y|)/2=2xy|x|+|y|.

이것은 인 에 서명 할 때 양의 식 초과 때 네거티브 초과하는 . 값은 항상 와 사이 입니다. 분모에 절대 값을 사용하면 합리적인 방식으로 음수를 처리합니다. New Jersey DEP 사이트 치료 프로그램 데이터 품질 평가 및 데이터 사용성 평가 기술 지침 과 같이 찾을 수있는 대부분의 참조 는 상대 오차의 크기에만 관심이 있으므로 의 절대 값을 사용합니다 .y y x 2 2 d 1xyyx22d1


상대 변화와 차이 관한 Wikipedia 기사

d(x,y)=|xy|max(|x|,|y|)

부동 소수점 숫자 알고리즘에서 상대 공차 테스트로 자주 사용됩니다. 같은 기사는 지적 그런 식 및 일반화 될 수 있습니다d1d

df(x,y)=xyf(x,y)

여기서 함수 는 와 의 크기에 직접 의존합니다 (일반적으로 와 가 양수 라고 가정 ). 예를 들어 최대, 최소 및 산술 평균을 제공하지만 ( 및 의 절대 값을 사용하거나 사용하지 않음 ) 고조파 인 기하학적 평균 와 같은 다른 종류의 평균을 고려할 수 있습니다. 평균 및 는 합니다. ( 은 해당 하고 는fxyxyxy|xy|2/(1/|x|+1/|y|)Lp((|x|p+|y|p)/2)1/pd1p=1dp .) 와 의 예상되는 통계적 거동에 따라 를 선택할 수 있습니다 . 예를 들어, 대략 로그 정규 분포를 사용하면 기하 평균은 해당 상황에서 의미있는 평균이기 때문에 매력적인 선택 이됩니다.fxyf


이 수식의 대부분은 분모가 0 일 때 어려움을 겪습니다. 때 가능하지 않거나 그 차이를 0으로 설정하는 것이 무해한 많은 응용 프로그램에서 .x=y=0

참고는 모든 이러한 정의는 근본적인 속성 불변 나눈다 상대적인 차 함수간에 될 수있다, 상기 인수가 균일하여 재 스케일링 될 때 변하지 않는다 :dλ>0

d(x,y)=d(λx,λy).

상대적인 차이 로 간주 할 수있는 것은이 속성입니다 . 따라서, 특히 불변 함수는d

d(x,y)=? |xy|1+|y|

단순히 자격이 없습니다. 미덕이 무엇이든간에 상대적인 차이를 나타내지 않습니다 .


이야기는 여기서 끝나지 않습니다. 불변의 의미를 조금 더 추진하는 것이 유익 할 수도 있습니다.

실수의 모든 순서쌍의 집합 여기서 같은 것으로 간주됩니다 는 IS 리얼 사영 라인 . 위상 적 의미와 대수적 의미에서 은 원입니다. 모든 은 원점 통해 고유 한 선을 결정합니다 . 경우 의 기울기가(x,y)(0,0)(x,y)(λx,λy) RP1RP1(x,y)(0,0)(0,0)x0y/x; 그렇지 않으면 우리는 그 기울기를 "무한"(및 음 또는 양)으로 간주 할 수 있습니다. 이 수직선의 이웃은 매우 큰 양의 경사 또는 매우 큰 음의 경사를 갖는 선으로 구성됩니다. 우리는 와 함께 각도로 모든 선을 매개 변수화 할 수 있습니다 . 이러한 모든 와 관련된 것은 원의 한 점입니다.θ=arctan(y/x)π/2<θπ/2θ

(ξ,η)=(cos(2θ),sin(2θ))=(x2y2x2+y2,2xyx2+y2).

상관 원에 정의 된 거리에 따라서 상대적인 차이를 정의하기 위해 사용될 수있다.

이것이 어디로 이끌 수 있는지에 대한 예로, 원에서 일반적인 (유클리드) 거리를 고려하십시오. 두 점 사이의 거리는 그 사이의 각도의 크기입니다. 상대적인 차이는 일 때 ( 와 가 반대 부호를 가질 때 때 가장 적습니다 . 이 관점에서 양수 와 대한 자연의 상대적인 차이는 이 각도까지의 거리입니다.x=y2θ=π/22θ=3π/2xyxy

dS(x,y)=|2arctan(yx)π/2|.

우선, 이것은 상대 거리--y 일 때도 작동합니다 . 또한, 사이에 한정되는 (부호 거리로서) 대신 날려하지 않지만 및 이 그래프에서 알 수 있듯이, :|xy|/|y|y=0π/2π/2

그림

이는 상대적인 차이를 측정 할 방법을 선택할 때 선택이 얼마나 유연한 지에 대한 힌트입니다.


포괄적 인 답변에 감사드립니다.이 줄에 가장 적합한 기준은 다음과 같습니다. "부동 소수점 수치 알고리즘에서 상대 공차 테스트로 자주 사용됩니다. 동일한 기사에서 d1d1 및 d∞d∞와 같은 공식은 일반화 "
Hammad Haleem

1
btw, nevermind 나는 이것에 대한 학문적 참조를 발견했다 :) tandfonline.com/doi/abs/10.1080/00031305.1985.10479385
Hammad Haleem

4
이것이 답변으로 선택되지 않은 이유는 무엇입니까? (이것이 적절한 의견이 아니라면 죄송하지만 이것이 훨씬 더 나은 답변입니다)
Brash Equilibrium

2
@Brash 정서에 감사드립니다. 수락은 독창적 인 제안자의 고유 한 것입니다. 수락 된 게시물을 삭제하는 경우를 제외하고는 누구도이를 무시할 수 없습니다. 당신이 느끼는 느낌에 따라, 어떤 답변이 다른 답변보다 낫거나 더 주목적이라고 생각하는 방법과 이유를 명시 적으로 지적하는 의견을 게시합니다. 그 내용이 바뀌지 않더라도, 그러한 의견은이 자료를 미래 독자들에게 조금 더 유용하거나 이해하기 쉽게 만들 수 있습니다. 궁극적으로이 사이트에 대한 우리의 작업의 핵심입니다.
whuber

1
@KutalmisB "min"은 전혀 속하지 않습니다. 나중에 단순화 한 및 의 가능한 모든 부호를 처리하는보다 복잡한 수식의 흔적 일 것 같습니다 . 나는 그것을 제거했다. xy
whuber

11

먼저 상대 오차를 계산할 때 일반적으로 절대 값을 사용합니다.

이 문제에 대한 일반적인 해결책은 계산하는 것입니다

relative error=|xtruextest|1+|xtrue|.

3
이는 값에 대해 선택된 측정 단위에 따라 달라지기 때문에 문제가됩니다.
whuber

1
그것은 사실이다. 이것은 문제에 대한 완벽한 해결책은 아니지만 크기가 잘 조정 되면 합리적으로 잘 작동하는 일반적인 접근 방식입니다 . x
Brian Borchers 1

"잘 조정 된"의 의미에 대한 답변을 자세히 설명해 주시겠습니까? 예를 들어, 데이터가 에서 moles / liter 사이의 농도를 위해 설계된 수성 화학 측정 시스템의 교정에서 발생한다고 가정하면 3 자리의 정밀도를 얻을 수 있습니다. 따라서 "상대 오류"는 명백히 잘못된 측정을 제외하고 지속적으로 0입니다. 이러한 관점에서 그러한 데이터의 규모를 정확히 어떻게 조정 하시겠습니까? 00.000001
whuber

1
귀하의 예는 변수의 규모가 적절하지 않은 예입니다. "잘 조정 됨"이란 변수가 1 근처에있는 작은 범위 (예 : 몇 자릿수)의 값을 취하도록 크기가 조정됨을 의미합니다. 변수가 자릿수보다 큰 자릿수보다 큰 경우 더 심각한 확장 문제가 있으며이 간단한 접근 방식으로는 적합하지 않습니다.
Brian Borchers

2
이 접근법에 대한 참조가 있습니까? 이 방법의 이름은? 고맙습니다.
CroCo

0

나는 이것에 대해 잠시 혼란 스러웠다. 결국, 0에 대한 상대 오차를 측정하려고하면 단순히 존재하지 않는 것을 강요하려고하기 때문입니다.

당신이 그것에 대해 생각하면, 0에서 측정 된 오류가 측정 된 값과 동일하기 때문에 상대 오류를 0에서 측정 된 오류와 비교할 때 사과를 오렌지와 비교하는 것입니다. 시험 번호).

예를 들어 게이지 압력 (대기압의 상대 압력)과 절대 압력의 오차를 측정 해보십시오. 완벽한 대기 조건에서 계측기를 사용하여 게이지 압력을 측정하고 장치에서 대기압 스폿을 측정하여 0 % 오류를 기록한다고 가정합니다. 제공 한 방정식을 사용하고 먼저 측정 된 게이지 압력을 사용하여 상대 오차를 계산한다고 가정합니다. 그러면 및 이고 0 % 오류가 발생하지 않으며 대신 정의되지 않습니다. 실제 퍼센트 오류는 다음과 같은 절대 압력 값을 사용해야하기 때문입니다.

relative error=Pgauge,truePgauge,testPgauge,true
Pgauge,true=0Pgauge,test=0
relative error=Pabsolute,truePabsolute,testPabsolute,true
이제 및 0 % 오류가 발생합니다. 이것은 상대 오류의 올바른 적용입니다. 게이지 압력을 사용한 원래 응용 프로그램은 "상대 오류"와 다른 "상대 값의 상대 오류"와 비슷했습니다. 상대 오차를 측정하기 전에 게이지 압력을 절대로 변환해야합니다.Pabsolute,true=1atmPabsolute,test=1atm

귀하의 질문에 대한 해결책은 상대 오차를 측정 할 때 절대 값을 처리하여 0이 될 수 없도록하는 것입니다. 그런 다음 실제로 상대 오류가 발생하고이를 실제 백분율 오류의 불확실성 또는 메트릭으로 사용할 수 있습니다. 상대 값을 고수해야하는 경우 상대 오차 (%)는 기준점에 따라 변경되므로 절대 오차를 사용해야합니다.

0에 구체적인 정의를 적용하기는 어렵습니다 ... "Zero는 0으로 표시된 정수로, 계수 숫자로 사용될 때 객체가 없음을 의미합니다." -Wolfram MathWorld http://mathworld.wolfram.com/Zero.html

nit pick을 자유롭게 느끼십시오. 그러나 0은 본질적으로 아무것도 의미하지 않습니다. 그렇기 때문에 상대 오차를 계산할 때 게이지 압력을 사용하지 않는 것이 좋습니다. 게이지 압력은 유용하지만 대기압에는 아무것도 없다고 가정합니다. 우리는 이것이 1 기압의 절대 압력을 가지기 때문에 그렇지 않다는 것을 알고 있습니다. 따라서 아무것도에 관한 상대적인 오류는 존재하지 않으며 정의되지 않습니다.

이것에 대해 자유롭게 논쟁하십시오. 간단히 말해서 최저값에 하나를 추가하는 것과 같은 빠른 수정은 잘못되었으며 정확하지 않습니다. 단순히 오류를 최소화하려는 경우에도 여전히 유용 할 수 있습니다. 그래도 불확실성의 정확한 측정을 시도한다면 그렇게 많이하지는 않습니다 ...


0

MAPE 공식

MAPE 찾기,

매우 논쟁의 여지가있는 주제이며 많은 오픈 소스 기고자들이 위의 주제에 대해 논의했습니다. 지금까지 가장 효율적인 접근 방식은 개발자들입니다. 자세한 내용은 이 PR 을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.