단일 (Single) 이상치 (Outlier) 확인을 위한 Q-test를 알아보자!
Q-test는 1951년 Dixon에 의해서 만들어진 이상치 확인 방법으로
데이터에 개수에 적합한 이상치 판정 임계값 (critical value)을 제시하였고,
임계값은 Q 값으로 정해져 있어서 데이터의 Q 값을 확인해서 이상치를 구분할 수 있다.
Q-test의 판정 기준치들이 데이터 개수에 따라서 제시되고 있어서
적은 수의 데이터에서 이상치 판별하는데 적합한 것으로 알려져 있다.
처음에는 다수의 이상치를 확인하는 방법으로 제시되었지만,
최근에는 단일 이상치 확인에 더 적합하다고 설명하고 있다.
아래 그림은 6개의 데이터와 관련 간단한 기술통계 내용이 작성되어 있다.
모든 데이터 (n=6)를 이용해서 평균, 표준편차, 신뢰구간을 확인하였다.
1개의 데이터 (40.02)가 신뢰구간을 벗어난 것으로 나타났다.
이 결과로 중앙값도 평균과 차이가 발생되었다.
신뢰구간 내용으로 이상치를 예상할 수 있지만,
적은 수의 데이터에서는 평균과 표준편차에 오차가 발생되므로
오차가 포함된 신뢰구간으로 이상치를 평가하는 것은 부정확할 수 있다.
Q-test는 데이터 수에 따른 정규분포 확률과 데이터의 벗어난 정도를 이용해서
이상치를 구분할 수 있는 임계값을 설정한 것으로
부정확한 평균과 표준편차로 계산된 정규 분포 내용보다는
정확히 정규 분포를 예측하고 이상치를 확인할 수 있다는 것이다.
Q-test 장점 및 결과 확인 방법
Q-test는 계산식이 간단하고, 검증된 임계값 정보만 있다면
단일 이상치를 손쉽게 구분할 수 있다.
Q 값을 계산하는 수식은 다음과 같다.
$ Q = \dfrac{gap}{range} $
"gap"은 평가하는 이상치와 이접한 값의 절대적 차이 값이다.
"range"는 전체 데이터의 최대값과 최소값의 차이 값이다.
위 그림의 데이터에서 이상치로 예상되는 40.02 값을 Q-test로 확인하면,
데이터 40.02의 Q 값은 다음과 같이 계산된다.
Q = (40.12 - 40.02) / (40.20 - 40.02) = 0.1 / 0.18 = 0.5556
Q 값이 임계값보다 큰 경우라면 이상치로 구분된다.
n | Confidence level (%) | |||
90% | 95% | 98% | 99% | |
3 | 0.885 | 0.941 | 0.976 | 0.988 |
4 | 0.679 | 0.765 | 0.846 | 0.889 |
5 | 0.558 | 0.642 | 0.729 | 0.782 |
6 | 0.484 | 0.562 | 0.646 | 0.699 |
임계값은 검증된 자료들이 있으므로,
데이터의 개수와 신뢰수준을 확인 후 적용하면 된다.
일반적으로 90% 신뢰수준을 적용하며, 개수에 맞는 임계값을 확인한다.
계산된 Q 값은 6개 데이터에서 얻어진 결과로
90% 신뢰수준의 임계값은 0.484에 해당한다.
데이터 40.02의 Q 값 0.5556이 임계값 0.484 보다 크기 때문에
데이터 40.02은 이상치로 구분된다.
Q-test 이상치 검출 범위
Q-test의 이상치 판정 기준을 정규분포의 표준편차 기준으로 확인해 보았다.
정규분포 데이터에 다양한 이상치를 추가해서 분류되는지 확인하였다.
정규분포 (평균 10, 표준편차 1) 데이터에서 10개의 값을 무작위로 선정하고,
표준편차 2배 (95% 신뢰구간) 초과하는 이상치와
표준편차 3배 (99.7% 신뢰구간) 초과 이상치를 설정하였다.
추가로 2개의 이상치가 같이 존재할 경우에도 이상치로 분류되는지 확인했다.
[표준편차 2배 초과 이상치 1개 포함 데이터]
평균 10, 표준편차 1을 기준으로 표준편차 2배를 초과하는 이상치 12.1을 추가하였다.
No. | Result | Q-test | ||
1 | 8.74 | Test result | 12.10 | |
2 | 9.46 | Gap | = 12.1 - 10.9 = 1.2 | |
3 | 9.49 | Range | = 12.1 - 8.74 = 3.36 | |
4 | 9.49 | Q-value | = 1.2 / 3.36 = 0.3571 | |
5 | 9.52 | Q critical value (90% CL, n = 10) | 0.3492 | |
6 | 9.92 | Q critical value (95% CL, n = 10) | 0.4122 | |
7 | 10.20 | *CL: Confidence level | ||
8 | 10.27 | |||
9 | 10.90 | |||
10 | 12.10 |
이상치 12.1은 Q-test 결과에서 90% 신뢰수준의 임계값 0.3492 보다 큰 값 0.3571로 계산되었다.
Q 값이 임계값 보다 증가한 것으로 확인되어 12.1은 이상치로 분류할 수 있다.
하지만, 큰 차이를 보이지 않아서 95% 신뢰수준의 임계값 0.4122 보다는 낮은 값으로 나타났다.
[표준편차 3배 초과 이상치 1개 포함 데이터]
평균 10, 표준편차 1을 기준으로 표준편차 3배를 초과하는 이상치 6.12을 추가하였다.
No. | Result | Q-test | ||
1 | 6.12 | Test result | 6.12 | |
2 | 9.46 | Gap | = 9.46 - 6.12 = 3.34 | |
3 | 9.49 | Range | = 10.99 - 6.12 = 4.87 | |
4 | 9.49 | Q-value | = 3.34 / 4.87 = 0.6858 | |
5 | 9.52 | Q critical value (90% CL, n = 10) | 0.3492 | |
6 | 9.92 | Q critical value (95% CL, n = 10) | 0.4122 | |
7 | 10.20 | *CL: Confidence level | ||
8 | 10.27 | |||
9 | 10.90 | |||
10 | 10.99 |
이상치 6.12은 Q-test 결과에서 90% 신뢰수준의 임계값 0.3492 보다 큰 값 0.6858로 계산되었다.
Q 값이 임계값 보다 증가한 것으로 확인되어 6.12은 이상치로 분류할 수 있다.
큰 차이를 보이는 값 때문에 95% 신뢰수준의 임계값 0.4122 보다는 증가된 값으로 나타났다.
[표준편차 3배 초과 & 2배 초과 이상치 2개 포함 데이터]
앞서 확인한 이상치 12.1과 6.12를 모두 추가해서 이상치를 평가해 보았다.
No. | Result | Q-test | ||
1 | 6.12 | Test result | 6.12 | |
2 | 9.46 | Q-value | = 3.34 / 5.98 = 0.5585 | |
3 | 9.49 | |||
4 | 9.49 | Test result | 12.10 | |
5 | 9.52 | Q-value | = 1.20 / 5.98 = 0.2007 | |
6 | 9.92 | |||
7 | 10.20 | Q critical value (90% CL, n = 10) | 0.3492 | |
8 | 10.27 | Q critical value (95% CL, n = 10) | 0.4122 | |
9 | 10.90 | *CL: Confidence level | ||
10 | 12.10 |
이상치 6.12은 Q-test 결과에서 90%, 95% 신뢰수준의 임계값 보다 큰 값 0.5585로 계산되었다.
이상치 12.1은 Q-test 결과에서 90%, 95% 신뢰수준의 임계값 보다 낮은 값 0.2007로 계산되었다.
각각의 이상치가 포함된 데이터에 포함된 경우에는 모두 이상치로 확인되었지만,
이상치 2개가 동시에 포함된 경우 정규분포에 가까운 이상치는 구분되지 않았다.
이상치 6.12를 제거하고, 이상치 12.1을 다시 Q-test로 평가해 보았다.
No. | Result | Q-test | ||
1 | 9.46 | Test result | 12.10 | |
2 | 9.49 | Gap | = 12.10 - 10.90 = 1.20 | |
3 | 9.49 | Range | = 12.10 - 9.46 = 2.64 | |
4 | 9.52 | Q-value | = 1.20 / 2.64 = 0.4545 | |
5 | 9.92 | Q critical value (90% CL, n = 9) | 0.3704 | |
6 | 10.20 | Q critical value (95% CL, n = 9) | 0.4363 | |
7 | 10.27 | *CL: Confidence level | ||
8 | 10.90 | |||
9 | 12.10 |
이상치 12.1은 Q-test 결과에서 90% 신뢰수준의 임계값 0.3704 보다 큰 값 0.4545로 계산되었다.
1차 이상치 제거 후 다시 시행한 결과에서 가까운 이상치 12.1은 이상치로 분류되었다.
이상치를 모두 제거 후 남은 데이터로 이상치를 평가해 보았다.
No. | Result | Q-test | ||
1 | 9.46 | Test result | 10.90 | |
2 | 9.49 | Gap | = 10.90 - 10.27 = 0.63 | |
3 | 9.49 | Range | = 10.90 - 9.46 = 1.44 | |
4 | 9.52 | Q-value | = 0.63 / 1.44 = 0.4375 | |
5 | 9.92 | Q critical value (90% CL, n = 8) | 0.3979 | |
6 | 10.20 | Q critical value (95% CL, n = 8) | 0.4673 | |
7 | 10.27 | *CL: Confidence level | ||
8 | 10.90 |
남은 데이터에서 가장 멀리 위치한 10.9의 Q-test 결과를 확인했다.
Q-test 결과에서 90% 신뢰수준의 임계값 0.3979 보다 큰 값 0.4375로 계산되었다.
정규분포에 해당하는 데이터이지만, 이상치로 분류된 것이 확인되었다.
데이터의 정보를 미리 알고서 접근해서 내용을 확인했지만,
Q-test가 필요한 상황은 데이터의 정보가 불분명한 상황에서 사용된다.
반복적인 Q-test로 이상치를 확인하고 제거하는 방법은
정상적인 데이터를 이상치로 만들 수 있으므로 적절하지 않다.
데이터의 분포를 파악하고 다수의 이상치가 의심되는 경우라면
다수의 이상치를 동시에 확인할 수 있는 방법을 사용해야 한다.
내용에 포함된 계산 내용을 엑셀 파일로 작성해서 업로드합니다.
계산 방식을 이해하는데 참고 바랍니다.
'데이터 처리 방법' 카테고리의 다른 글
[Excel] 이상치 (Outlier) 확인: Tietjen-Moore test (0) | 2024.05.06 |
---|---|
[Excel] 이상치 (Outlier) 확인: Grubbs' test (0) | 2024.04.22 |
[Excel] 이상치 (Outlier) 확인: 표준 점수 (Z-score) (0) | 2024.04.08 |
[Excel] 이상치 (Outlier) 확인: 상자 수염 (Box-Plot) (3) | 2024.04.01 |
[Excel] 이상치 (Outlier) 확인: 히스토그램 (Histogram) (0) | 2024.03.25 |