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

[Excel] 이상치 (Outlier) 확인: 상자 수염 (Box-Plot)

by 어날켐 2024. 4. 1.
728x90
반응형

이상치 (Outlier) 확인을 위한 상자 수염 (Box-Plot)을 엑셀로 작성하기

※ 엑셀로 상자 수염 (Box-Plot) 만들기

엑셀로 상자 수염을 작성하는 방법은 간단하다. 
하지만, 2016 이전 버전에서는 차트에서 진원하지 않는다.
이런 경우라면 대체 방법이 복잡하기 때문에 다른 프로그램을 사용하기를 권장한다. 

  • [방법] 차트로 만들기
    데이터 영역을 선택하고, 아래 메뉴를 선택하면 그래프가 만들어진다. 
    "삽입 > 차트 > 상자 수염"

* 세로로 나열된 데이터는 "열(column)" 마다 다른 그룹으로 설정된다. 


※ 상자 수염으로 이상치 (Outlier) 확인 방법

먼저 상자 수염의 구성을 이해하는 것이 필요하다. 

그래프에 표시된 박스 (Box)는 사분위수 (Quartile)를 표현한 것으로 
사분위수는 전체 데이터를 정렬하고 순위를 지정해서 4등분으로 표현한 것이다.
"제1사분위수"는 전체 데이터의 25% 순위의 값이고, 
"제2사분위수"는 전체 데이터의 50% 순위의 값으로 중앙값 (Median)에 해당한다.  
"제3사분위수"는 전체 데이터의 75% 순위의 값이고,
"제4사분위수"는 전체 데이터의 100% 순위의 값으로 최대값 (Max)에 해당한다.
마지막 제4분위수는 박스에 표기하지 않고, 최소값과 같은 방식으로 표기된다.
"×"로 표기된 내용은 평균값으로 
데이터의 분포가 정규분포의 형태인 좌우 대칭인 분포를 나타내면
평균값과 중앙값은 가까워져서 비슷한 위치에 나타난다. 
데이터에 이상치가 포함된 경우라면 그래프는 다음과 같이 나타난다. 

이상치가 포함된 데이터의 사분위수와 다른 항목들의 계산 결과들은 
모두 이상치를 제외하고 계산된 내용들이다.  
상자 수염에는 이상치를 자동으로 인식해서 그래프에 반영한다.
그래프에서 이상치를 확인하는 방법은 다음과 같다. 
먼저, 사분위간 범위 (IQR: InterQuartile Range)를 계산한다. 
사분위간 범위는 제1사분위수에서 제3사분위수까지를 나타내며,
전체 데이터 중 중앙의 50%가 분포하는 영역이다.
IQR 은 다음과 같이 계산한다.

IQR = Q3 - Q1 

이상치 허용 범위는 IQR 값을 이용해서 설정되며, 계산은 다음과 같다. 

 Q1 - 1.5 × IQR < Normal data < Q3 + 1.5 × IQR

허용 범위를 벗어난 값은 이상치로 설정되고, 상자 수염 그래프에서 제외된다. 
IQR을 사용해서 범위를 설정하는 이유는
데이터의 끝에 위치한 값들은 변동이 심해서 정확한 값으로 보기 어려워
빈도가 높은 중앙값들을 이용해서 정규분포를 예측하고, 이상치를 확인하는 것이다.  

사분위수를 계산할 때 IQR 값이 변동되는 항목이 존재한다. 
그 항목이 중앙값을 포함 또는 미포함 조건이다.

해당 조건을 변경하면, Q1, Q3 값에 차이가 발생된다.  
엑셀에서 설명하는 내용을 보면 
데이터의 개수가 홀수인 경우에는 중앙값을 포함시켜 계산하고, 
짝수인 경우에는 중앙값을 제외하고 계산하라고 설명되어 있다. 
짝수인 경우 중앙값도 두 개로 존재하기 때문에 
값이 다른 경우 두 값의 평균값으로 계산하는 방식을 사용한다. 
이런 경우에는 존재하지 않는 데이터가 추가 되므로 데이터의 정렬 순서가 변경된다.

다음 예시는 데이터의 개수에 따라서 중앙값에 차이가 발생하는지 확인한 결과이다. 
정규 분포의 랜덤 데이터에서 홀수 (29개), 짝수 (30개)로 설정해서
Q1, Q2, Q3, IQR 값의 차이를 비교해 보았다. 

  중앙값 포함 중앙값 제외
n 29 30 29 30
Q1 0.30 0.30 0.26 0.28
Q2 (median) 0.92 1.03 0.92 1.03
Q3 1.61 1.60 1.65 1.63
IQR 1.31 1.30 1.39 1.35

위 테이블의 결과를 보면 
빨간색으로 표기된 내용이 올바른 계산법으로 
이 방법으로 계산된 IQR 값은 4개 중에 중앙에 위치한다. 
다른 계산법으로 진행하면 IQR 값은 
4개 중에 최소값 또는 최대값이 되는 것이 확인된다. 
같은 분포의 데이터에서 확인된 IQR 값도 
계산 방식에 따라서 오차가 발생할 수 있다는 것이 확인된다.
데이터 내용에 IQR 편차는 차이가 있을 수 있다.

이상치는 IQR 값으로 정해지는데 
데이터의 개수가 IQR 값에 영향을 미치므로 
몇 개의 데이터까지 이상치를 구분할 수 있는지 확인해 보았다. 
정규 분포를 이루고 있는 데이터를 임의로 개수를 줄여서 상자 수염 그래프를 작성하였다. 
정규 분포의 평균은 10.0 이고, 표준편차는 1.0 이다. 
이상치는 표준편차의 3배에 해당하는 "7"과 5배에 해당하는 "15"를 모든 데이터에 포함시켰다. 
표준편차 3배에 해당하는 값은 정규분포 끝에 위치하는 값이고, 
표준편차 5배에 해당하는 값은 정규분포 보다 멀리 떨어져 위치하는 값이다.

300개 부터 50개 까지의 상자 수염 그래프는 이상치 2개를 확인하였고, 
50개 이하 부터는 데이터의 분포에 따라서 더 많은 이상치를 설정하기도 하였다. 
5개는 이상치를 포함해서 상자 수염을 작성하였다. 

위 결과를 보면 상자 수염 그래프를 통해서 정확한 이상치를 확인하려면
데이터가 50개 이상은 필요하다고 생각된다. 
낮은 데이터의 개수에서는 데이터의 분포에 따라서 이상치가 다르게 설정될 수 있으므로 주의가 필요하다.

728x90
반응형