한 개부터 여러 개의 이상치 (Outlier)를 확인할 수 있는
Generalized ESD (Extreme Studentized Deviate) test를 알아보자.
Generalized ESD는 단일 이상치부터 다수의 이상치를 확인하는 방법으로 알려져 있다.
이상치를 구분하는 기준은 동일 조건의 다수의 데이터가 정규분포를 나타내는 것을 기반으로 이상치를 구분한다.
평가 방법의 내용은 아래 참고문헌을 인용해서 작성하였다.
참고문헌 : NIST. EXTREME STUDENTIZED DEVIATE TEST. (2010).
Retrieved from https://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/esd.htm.
Generalized ESD test 는 다른 이상치 평가 방법 (Grubbs test, Tietjen-Moore test) 보다 개선된 방법이다.
Grubbs test, Tietjen-Moore test는 정확한 이상치를 설정해야 이상치 평가 결과의 오류가 나타나지 않는다.
Generalized ESD test 는 의심되는 다수의 이상치들을 선정하고 검증을 진행할 수 있다.
이 방법은 이상치 개수에 적합한 평가 기준과 다수의 이상치들을 동일한 방법으로 평가할 수 있다는 장점이 있지만,
평가 과정에서 이상치를 너무 적게 설정하거나 반대로 많이 설정하면 정확한 결과를 얻을 수 없다.
예를 들어, 실제 이상치가 2개 이상인데 1개로 설정해서 평가하는 경우에는
다른 이상치가 데이터에 포함되어 있어서 이상치로 의심되는 1개의 데이터는 이상치로 선언되지 않을 수 있다.
이런 현상을 "마스킹 (masking)" 이 발생했다고 표현한다.
반대로, 실제로 하나의 이상치가 존재하는데 다수의 이상치를 설정해서 평가하면
설정해서 평가한 다수의 값이 모두 이상치로 선언될 수 있다.
이런 현상을 "스왐핑 (swamping)" 이 발생했다고 표현한다.
이런 단점을 보완하려면 데이터를 그래픽 방법 (Q-Q plot, Box plot, Histogram)으로 확인하는 것이 중요하다.
Generalized ESD test 방법도 데이터의 분포 및 개수에 따라서 정확성에 차이가 있으며,
참고문헌에는 데이터 개수에 따른 정확도 내용이 제시되어 있었다.
데이터 개수가 15개 미만인 경우 정확성의 신뢰도가 낮으며,
15개 이상부터 적합한 결과를 보인고 25개 이상인 경우에는 높은 정확성을 보인다고 했다.
Generalized ESD test 이상치 평가 방법
이상치 평가 필요한 통계량 R은 다음과 같이 계산한다.
$ R_i = max_i \dfrac{|x_i - \overline{x}|}{SD}$
$\overline{x}$는 데이터의 평균 값이고, $SD$는 표준편차 값을 나타낸다.
$i$는 이상치를 나타내는 것으로 모든 개별 데이터의 R 값을 구하고,
첫 번째 이상치는 데이터 중 최대 R로 계산되므로 $R_1$로 규정된다.
통계량은 데이터의 이상치가 없다는 가설을 기반으로 계산된 값이고,
유의 수준 (Significance Level: α)를 기준으로 발생될 확률을 계산한다.
참고문헌에서는 확률 대신 임계값 (Critical value)을 계산해서 비교하는 방법이 소개되어 있다.
확인된 통계량 $R_1$을 임계값 $λ_1$ 보다 큰 경우에는
$R_1$에 대응되는 데이터는 이상치로 확인된다.
이상치를 확인하는 임계값 $λ_i$ 은 다음과 같이 계산된다.
$λ_i = \dfrac{t_{n-i-1, \, p(n-i)}}{\sqrt{(n-i-1+t^2_{n-i-1,\,p})(n-i+1)}} $
$i$는 이상치의 개수이고, $n$은 전체 데이터의 개수이다.
$t_{ν, \, p}$는 자유도 (ν)와 확률분포 (p)에 대한 t-분포 값을 나타낸다.
엑셀에서 t-분포 값을 확인하기 위해서 함수 T.INV (스튜던트 t-분포의 역함수 값)을 이용하였다.
자유도는 데이터의 개수 (n)과 이상치의 개수 (i)에 의해서 정해지며,
확률분포 (p)는 다음과 같은 수식으로 계산된다.
$p = 1- \dfrac{α}{2(n-i+1)} $
α는 통계량 검정에 사용되는 유의 수준이 적용되어 계산된다.
첫 번째 이상치를 확인하고, 그다음 이상치를 평가하기 위해서는
전체 데이터에서 이상치를 제거하고, 남아 있는 데이터를 이용해서
통계량 $R$과 임계값 $λ$를 계산한다.
두 번째 이상치를 확인하는 단계이므로 계산된 값들은 $R_2$, $λ_2$로 규정된다.
$R_2$ > $λ_2$ 로 나타나면, 두 번째 데이터도 이상치로 확인된다.
$R_2$ < $λ_2$ 로 나타나면, 두 번째 데이터는 이상치가 아닌 것으로 확인되고,
남아있는 데이터에는 이상치가 없는 것으로 검증된다.
참고문헌에 소개된 예시의 계산 결과 및 이상치 평가 내용
엑셀로 수식 계산하고 이상치 평가 내용이 동일한지 확인했다.
Generalized ESD test 이상치 평가 예시
데이터: -0.25, 0.68, 0.94, 1.15, 1.20, 1.26, 1.26, 1.34, 1.38, 1.43, 1.49, 1.49, 1.55, 1.56, 1.58, 1.65, 1.69, 1.70, 1.76, 1.77, 1.81, 1.91, 1.94, 1.96, 1.99, 2.06, 2.09, 2.10, 2.14, 2.15, 2.23, 2.24, 2.26, 2.35, 2.37, 2.40, 2.47, 2.54, 2.62, 2.64, 2.90, 2.92, 2.92, 2.93, 3.21, 3.26, 3.30, 3.59, 3.68, 4.30, 4.64, 5.34, 5.42, 6.01
예시로 제시된 데이터의 개수는 총 54개, 평균 2.321, 표준편차 (SD) 1.183 으로 확인된다.
평균을 기준으로 2×SD에 해당하는 범위는 -0.045 ~ 4.687 으로 확인된다.
위 범위를 벗어나는 데이터는 높은 값의 4.64, 5.34, 5.42, 6.01 값이 이상치로 의심된다.
Generalized ESD test로 이상치를 확인하는 방법은 이상치로 의심되는 데이터를 순차적으로 데스트를 진행한다.
첫 번째로 가장 많이 벗어난 데이터 6.01의 이상치 확인하기 위해서
통계량 $R_1$을 확인하고, 임계값 $λ_1$와 비교해서 이상치 유무를 확인한다.
유의 수준 (α)은 0.05 (5%)를 기준으로 계산하면,
$R_1 = 3.119$ < $λ_1 = 3.158$ 으로 6.01 값은 이상치로 선언되지 않는다.
유의 수준 (α)은 0.1 (10%)를 기준으로 계산하면,
$R_1 = 3.119$ > $λ_1 = 2.987$ 으로 6.01 값은 이상치로 선언된다.
설정한 이상치 수가 적어 유의 수준 0.05 기준으로는 이상치로 선언되지 않지만,
정규 분포 범위를 좁게 설정한 유의 수준 0.1 기준으로는 이상치로 선언되었다.
이런 현상을 마스킹(masking)으로 보고 추가 이상치를 설정해서 테스트를 진행하여야 한다.
두 번째로 가장 많이 벗어난 데이터 5.42의 이상치 확인하기 위해서
첫 번째로 확인한 이상치 6.01를 데이터에서 제거한다.
통계량 $R_2$을 확인하고, 임계값 $λ_2$와 비교해서 이상치 유무를 확인한다.
유의 수준 (α)은 0.05 (5%)를 기준으로 계산하면,
$R_2 = 2.943$ < $λ_2 = 3.151$ 으로 5.42 값은 이상치로 선언되지 않는다.
유의 수준 (α)은 0.1 (10%)를 기준으로 계산하면,
$R_2 = 2.943$ > $λ_2 = 2.980$ 으로 5.42 값은 이상치로 선언되지 않는다.
위와 같이 마스킹(masking) 현상으로 이상치로 선언되지 않는 것으로 보이지만,
실제로 이상치가 아닐 수 있으므로 다음으로 의심되는 이상치 데이터를 평가해 봐야 한다.
세 번째로 가장 많이 벗어난 데이터 5.34의 이상치 확인하기 위해서
첫 번째, 두 번째로 확인한 이상치 6.01, 5.42를 데이터에서 제거한다.
통계량 $R_3$을 확인하고, 임계값 $λ_3$와 비교해서 이상치 유무를 확인한다.
유의 수준 (α)은 0.05 (5%)를 기준으로 계산하면,
$R_3 = 3.179$ < $λ_3 = 3.144$ 으로 5.34 값은 이상치로 선언된다.
마스킹(masking) 현상을 일으키는 데이터 6.01, 5.42 값이 제거된 상태에서는
마스킹 현상이 사라져서 정상적으로 이상치가 확인되었다.
이런 결과가 나타나면 처음부터 확인한 모든 데이터 6.01, 5.42, 5.34는 이상치로 선언된다.
추가 이상치가 발생할 수 있으므로 그다음으로 벗어난 데이터 4.64은 이상치로 선언되지 않았고,
그 다음 값 -0.25, 4.30, 3.68, 3.58, 0.68, 3.30은 모두 이상치로 선언되지 않았다.
Box plot을 작성해서 이상치 제거 전과 후를 비교해 보면 다음과 같이 나타난다.
이상치를 제거 전 데이터의 Box plot에서는 예상되는 이상치가 확인되었고,
제거한 이상치의 데이터로 Box plot을 작성하면 또 다른 이상치가 확인된다.
앞서 3개 이외에 추가로 7개의 이상치 여부를 확인했지만,
이상치로 선언되지 않았기 때문에 이상치 제거 후 확인된
추가로 의심되는 이상치들은 데이터로 봐야 한다.
위 예시를 엑셀로 이상치의 통계량과 임계값이 동일하게 계산되는지 확인하였다.
통계량은 "$R_i$"로 표기되어 있는 컬럼에 계산되어 나타나고,
이상치 선정은 "Potential Outliers" 컬럼의 셀의 체크 박스를 선택해야 한다.
이상치로 확인된 데이터를 제거할 때는 체크 박스를 해제해야 한다.
체크 박스의 선택과 해제는 해당 셀을 클릭하면 된다.
엑셀 버전에 따라서 체크 박스가 보이지 않으면, TRUE 또는 FALSE로 나타난다.
체크 상태가 TRUE 이고, 체크 상태가 아닌 것이 FALSE 로 선택하면 동일한 결과를 얻을 수 있다.
이상치 평가가 필요한 데이터는 Potential Outliers 셀과 Selected Datas 셀이 모두 선택되어야 한다.
두 셀이 모두 선택되면 다음과 같은 이상치 평가 결과가 다음 표에 계산되어 나타난다.
이상치로 확인된 데이터는 제거하기 위해서 Selected Datas 컬럼의 셀을 클릭 또는 FALSE 로 설정하면 제거된다.
그 다음으로 의심되는 데이터의 Potential Outliers 셀을 선택하면, 그 데이터의 이상치 평가 결과를 얻을 수 있다.
엑셀 파일은 첨부 파일로 업로드 합니다.
'데이터 처리 방법' 카테고리의 다른 글
[Excel] F-검증 (F-test) | 분산분석 (ANOVA) : "F-통계량" 차이점 (0) | 2024.10.07 |
---|---|
단일 이상치 (Single Outlier) 확인 방법 비교 (0) | 2024.06.10 |
[Excel] 이상치 (Outlier) 확인: Tietjen-Moore test (0) | 2024.05.06 |
[Excel] 이상치 (Outlier) 확인: Grubbs' test (0) | 2024.04.22 |
[Excel] 이상치 (Outlier) 확인: Dixon's Q-test (0) | 2024.04.15 |