본문 바로가기
데이터 처리 방법

[Excel] 이상치 (Outlier) 확인: 표준 점수 (Z-score)

by 어날켐 2024. 4. 8.
728x90

 

표준 점수 (Z-score)를 이용해서 이상치 (Outlier)를 확인해 보자!

표준 점수 (Z-score)를 알아보자. 

Z-score는 한글 명칭과 같이 모든 데이터를 표준화해서 동일한 값으로 변환하는 것이다.
예를 들면, 평균 (mean)이 10이고 표준편차 (SD)가 1인 정규 분포 데이터를 
"0" 값을 기준으로 데이터의 ± 편차를 정규화된 Z-score로 변환할 수 있다.
Z-score 수식은 다음과 같다.  

  Z-score = (측정값 - 평균) / 표준편차 

다양한 범위 값들이 데이터의 평균과 표준편차를 사용하여 공통적인 값인 Z-score로 변환되는 것이다. 
아래 히스토그램은 정규분포 데이터 300개로 작성된 것으로
데이터는 측정 농도 값으로 평균은 10.007, 표준편차는 0.979를 나타낸다.

위에서 사용된 농도 값을 Z-score로 변환해서 확인된 평균은 0.000, 표준편차는 0.998을 나타낸다.
농도 값의 평균은 10에서 0으로 변경되고, 표준편차는 1에 가까운 동일한 값으로 확인된다.
Z-score로 작성된 히스토그램은 아래와 같다.

농도 값의 히스토그램과 Z-score로 작성된 히스토그램은 차이가 없는 것으로 확인되며,
Z-score는 개별 농도 값과 평균 차이를 표준편차의 비율 값으로 변환된 것이다.
예를 들어, 농도 값이 12라면 평균이 10이므로 차이 값이 2로 확인되고,
표준편차가 1이라면 Z-score는 2로 계산되며 그 값은 표준편차의 2배인 것이다.


표준 점수 (Z-score)로 이상치를 확인해 보자.

Z-score로 이상치를 확인하는 방법은 데이터 개수에 따라서 두 가지로 구분된다.

첫 번째로, 데이터의 개수가 많은 경우
데이터의 개수가 30~50개 이상이라면, 표본 데이터로 계산된 평균과 표준편차는
전체 데이터의 평균과 표준편차에 근사한 값을 얻을 수 있다.
이상치가 포함되더라도 데이터가 많아지면 이상치가 포함된 평균과 표준편차의 오차가 줄어들기 때문이다.

Data n Mean ± SD Max ~ Min Outlier
A 300 10.01 ± 0.98 12.43 ~ 7.63 No
B 100 9.97 ± 0.94   11.99 ~ 7.63   No
C 100 9.98 ± 1.02 13.20 ~ 6.32 13.2, 6.32

위 테이블 내용을 보면, Data 그룹 "A"는 300개 데이터가 있고,
"B", "C"는 "A" 데이터에서 100개를 분리해서 자료를 만들었다. 
"C"는 "B" 데이터 중2개를 이상치로 교체하였다.   
"A", "B", "C" 데이터의 평균과 표준편차는 큰 차이가 없는 것이 확인되며, 
"A"를 기준으로 오차율은 "B"는 -0.4% (mean), -4.1% (SD), "C"는 -0.3% (mean), +4.1% (SD)이다. 

신뢰할 수 있는 평균과 표준편차로 계산된 Z-score는 정규 분포 범위를 나타낸다. 
" -2×SD ~ +2×SD " 범위는 전체 데이터의 95.4%를 차지하고, 
Z-score는 " -2 ~ +2 " 범위로 변환된다.
" -3×SD ~ +3×SD " 범위는 전체 데이터의 99.6%를 차지하고,
Z-score는 " -3 ~ +3 " 범위로 변환된다. 

평가 결과의 내용에 따라서 Z-score의 값이
" -2 ~ +2 " 또는 " -3 ~ +3 "을 벗어난 데이터를 이상치로 평가된다. 

두 번째로, 데이터의 개수가 적은 경우
데이터의 개수가 30~50개 이하인 경우에는 표본 데이터로 계산된 평균과 표준편차는
전체 데이터로 계산된 평균과 표준편차와 차이가 나타난다. 
예를 들어, 이전에 사용된 정규 분포를 가지는 300개 데이터를 
무작위로 10개씩 나누어서 총 30개 그룹의 평균과 표준편차를 계산하면 
각 그룹에서 계산된 평균의 범위는 9.48 ~ 10.41로 나타나며,
오차율은 앞서 계산된 300개의 평균 10을 기준으로 -5.2 ~ +4.1%로 확인된다. 
각 그룹에서 계산된 표준편차의 범위는 0.53 ~ 1.43 로 나타나며, 
오차율은 300개의 표준편차 1을 기준으로 -47 ~ +43% 로 확인된다.  
데이터의 개수가 작아지면서 표준편차의 오차가 커지는 현상이 나타나고, 
데이터의 개수가 작아질수록 표준편차 오차율은 증가하는 것으로 확인된다.

데이터의 감소로 표준편차 오차가 증가하게되면,
Z-score 값은 표준편차 증가로 일정량 감소하게 된다. 
아래 참고문헌 내용에는 이와 관련된 수식이 정의되어 있다.

$ \lvert Z_{max \, or \, min} \rvert = Z_n = \dfrac{(n-1)}{\sqrt{n}} $

참고문헌: Iglewicz, B., & Hoaglin, D. C. (1993). Volume 16: how to detect and handle outliers. Quality Press.

데이터의 개수 (n)와 Z-score 절대값의 최대치는 연관성이 있으며, 
데이터 개수 (n)가 감소할수록 Z-score의 최대치는 감소되는 것으로 확인된다.

n = 10인 경우 Z-score의 최대치는 다음과 같다.

$ Z_{10} = \dfrac{(10-1)}{\sqrt{10}} = 2.85 $

정규분포 데이터에서 무작위로 10개씩 나누어서 30개 그룹을 생성해서
Z-score를 계산한 뒤에 최대값과 최소값을 확인한 결과 
최대값 2.21, 최소값 -2.28 은 계산된 Z-score 최대치 2.85 보다 낮았다.

n = 3 인 경우 Z-score의 최대치는 다음과 같다.

$ Z_3 = \dfrac{(3-1)}{\sqrt{3}} = 1.15 $

정규분포 데이터에서 무작위로 3개씩 나누어서 30개 그룹을 생성해서
Z-score를 계산한 뒤에 최대값과 최소값을 확인한 결과 
최대값 1.15, 최소값 -1.15 은 계산된 Z-score 최대치 1.15와 같았다. 

데이터의 개수가 적으면 Z-score 값으로 이상치를 평가하는 것이 불가하므로
다른 계산 방식으로 Z-score를 계산해서 이상치를 확인하는 방법이 제안되었다.
이전 참고문헌의 저자들이 제시한 내용으로 modified Z-score라고 명칭 하였다.
Modified Z-score $ (M_i) $ 수식은 다음과 같다. 

$ M_i = \dfrac{0.6745 \times (x_i - \tilde{x})}{MAD} $

$ \tilde{x} :\, median $
$ MAD :\,the\,\,median\,\,of\,\,the\,\,absolute\,\,deviations\,\,about\,\,the\,\,median $

수식에 대한 부연 설명을 한다면, 
$ \tilde{x} $는 데이터의 중앙값 (median)을 지칭하는 것이고, 
MAD는 개별 데이터 값들과 중앙값의 절대적 차이 값들의 중앙값이다.  

각 데이터에서 계산된 modified Z-score $ (M_i) $이 3.5 보다 크다면
잠재적 이상치 (potential outlier)로 구분될 수 있다.

해당 평가 방법으로 이상치를 확인할 때
데이터 개수가 영향을 미치는지 추가로 확인해 보았다. 
정규 분포 데이터에서 무작위로 데이터를 가져오고 동일한 이상치를 추가하였다. 
데이터 개수는 3, 5 10으로 설정하고, 같이 이상치를 1개 포함시켰다. 
이상치는 정규분포에서 Z-score -3.9에 해당되는 값으로 설정하였다. 
정규분포는 평균 10, 표준편차 1을 나타내는 값이고, 
이상치는 Z-score -3.9에 해당하는 데이터 6.1을 추가하였다. 

  • [데이터 10개] 이상치 확인 결과 
$ n $ $ x_i $ $ x_i - \tilde{x} $ $ M_i $
1 11.50 1.56 1.44
2 9.74 0.21 -0.19
3 10.70 0.75 0.70
4 9.08 0.87 -0.80
5 11.99 2.05 1.89
6 9.95 0.00 0.00
7 9.24 0.71 -0.65
8 9.94 0.01 0.00
9 10.30 0.36 0.33
10 6.12 3.83 -3.53
Average 9.86 1.03 -0.08
SD 1.60 1.18 1.48
Median 9.95 $ (\tilde{x}) $ 0.73 (MAD) 0.00

데이터 10번의 이상치는 $ M_i $ 값이 3.53으로
기준값인 3.5를 초과한 것으로 이상치로 구분되는 것이 확인되었다. 

  • [데이터 5개] 이상치 확인 결과
n $ x_i $ $ x_i - \tilde{x} $ $ M_i $
1 11.50 1.64 1.52
2 9.74 0.12 -0.11
3 10.70 0.84 0.78
4 9.08 0.78 -0.72
5 6.10 3.76 -3.47
Average 9.42 1.43 -0.40
SD 2.07 1.41 1.92
Median 9.41 $ (\tilde{x}) $ 0.81(MAD) -0.42

 

데이터 5번의 이상치는 $ M_i $ 값이 3.47으로 기준값인 3.5와 반올림하면 동일한 값으로 확인되었다.
데이터 5번은 기준값과 동일하지만, 이상치로 분류될 수 있었다. 

  • [데이터 3개] 이상치 확인 결과
n $ x_i $ $ x_i - \tilde{x} $ $ M_i $
1 11.50 1.64 1.52
2 9.74 0.12 -0.11
3 6.10 3.76 -3.47
Average 9.11 1.84 -0.69
SD 2.75 1.83 2.54
Median 7.92 $ (\tilde{x}) $ 1.94 (MAD) -1.79

데이터 3번의 이상치는 $ M_i $ 값이 3.47 으로 기준값인 3.5와 반올림하면 동일한 값으로 확인되었다.
데이터 3번은 기준값과 동일하지만, 이상치로 분류되었다.

데이터의 개수에 따라서 modified Z-score 값이 다르게 나타나는 것이 확인되었지만, 
이상치 평가는 동일하게 나타나는 것이 확인되었다. 
하지만, 이상치 값이 정규 분포에 가까워질수록 이상치 평가 정확도는 낮아질 것으로 보인다.

위에서 확인된 내용들은 엑셀로 확인하였고, 
작성된 내용이 저장된 엑셀 파일을 첨부합니다. 
자세한 작성 내용은 엑셀 파일을 참고 바랍니다.  

Zscore_test_V1.xlsx
0.15MB

728x90