반응형

오늘은 매우 중요한 상자그림과 이상값에 대해 학습하고자 한다.

인공지능을 학습하기 위한 데이터를 처리하는 과정에서 이상값(outlier)를 다루는 것은 매우 중요하다.

이 상자그림을 활용하면 분포를 한눈에 볼 수 있고 이상값을 쉽게 찾을 수 있으므로 이번 학습 주제는 인공지능을 위한 기술통계학에서 반드시 알고 넘어가야 하는 개념이니 여러번 반복해서 학습하길 바란다.

 

상자그림과 이상값

상자그림(box plots, 상자수염그림: box-and-whisker diagrmas)

상자그림(box plots)은 자료의 중심위치, 산포도, 대칭 또는 비대칭의 정도를 한꺼번에 보여주는 그림으로 상자 수염 그림이라고도 한다.

이 그림은 사분위수들과 측정값들의 최댓값 및 최솟값을 이용하여 다음과 같이 그린다.

https://www150.statcan.gc.ca/n1/edu/power-pouvoir/ch12/5214889-eng.htm

위 상자그림을 해석해보자면 아래와 같다.

  • 상자의 가장 왼쪽은 제1사분위수(Q1)이고, 가장 오른쪽은 제3사분위수(Q3)이다.
  • 상자의 중간을 가르는 수직선은 중앙값(median)이자 제2사분위수(Q2)이며 가장 중요한 수치이다.
  • 수염(whisker)은 상자 외부에 있는 2개의 선으로 왼쪽은 제1사분위수(Q1)보다 1.5IQR 작은 수치(minimum)만큼 선을 긋고 오른쪽은 제3사분위수(Q3)보다 1.5IQR 큰 수치(maximum)만큼 선을 긋는다. ~ 수염의 밖에 있는 값들은 이상값(outlier)이라 볼 수 있다.
  • 상자 수염 그림은 위와 같이 가로로 나타낼 수도 있고 세로로 나타낼 수도 있다.

 

아래의 예시를 보고 하나씩 해석해보자.

  • A 상자 그림을 보면 중앙값이 0.11임을 알 수 있고 상자 내부와 수염(whisker)이 오른쪽으로 치우쳐짐을 확인할 수 있다. 즉, 우 비대칭 분포임을 확인할 수 있다. 따라서 왜도는 0보다 큰 값을 갖는다.
  • B 상자 그림을 보면 분포는 거의 대칭임을 확인할 수 있다
  • C 상자 그림을 보면 중앙값은 0.88임을 알  수 있다. 또한 상자 내부와 수염(whisker)가 왼쪽으로 치우쳐짐을 확인할 수 있다. 즉, 좌 비대칭 분포이며 왜도는 0보다 작은 값을 갖는다.
  • 또한 세 상자 그림 모두 이상값을 갖고 있다는 것을 확인할 수 있다.

 

이상값(outlier)

이상값(outlier)들은 자료에 포함된 극단적으로 크거나 작은 측정값들을 말하며, 가끔 기록오류나 입력오류에 의해 발생되기도 한다.

이상값들은 평균과 분산에 큰 영향을 주어, 자료의 중심위치 및 산포도의 측정을 왜곡시킨다. 따라서 이상값을 찾아 그것이 오류에 의한 것으로 판단되면 자료를 수정하거나 이상값을 자료에서 제외시키고, 중요한 의미를 가진 것이면 이를 자료에 포함시켜서 분석하는 것이 필요하다.

 

자료에서 이상값을 찾는 방법은 두 가지가 있다.

  1. 크기가 n ≥ 10인 자료의 도수분포가 종형(종 모양, ex: 정규분포)일 때, 이 자료에서 측정값의 Z점수(표준점수)가 3 이상 또는 -3 이하인 것들은 이상값으로 판단한다.
  2. 자료에서 제1사분위수(Q1), 제3사분위수(Q3) 및 사분위수 범위인 IQR = Q3 - Q1를 계산하고 측정값이 Q1 - 1.5*IQR보다 작거나 Q3 + 1.5*IQR보다 크면 이상값으로 판단한다.

예를 들어, 위 상자 그림의 whisker 밖에 있는 점은 이상값이라고 볼 수 있다.

 

다른 예제도 한번 살펴보자.

예제
다음 자료는 중년 남성 21명의 폐활량을 조사한 것이다. 이들 중에서 마지막 자료 35.78은 이상값인가?
[12.81, 14.95, 15.83, 15.97, 19.90, 18.34, 19.82, 19.94, 20.62, 36.73, 20.88, 20.93, 20.98, 21.15, 22.24, 23.16, 22.24, 23.16, 23.56, 35.78]
본 자료의 n=21이고 Q1의 값은 21*0.25=6(5.25에서 반올림)번째 위치하는 18.27이고 Q3의 값은 21*0.75=16(15.75에서 반올림)번째에 위치하는 22.16이다. 그러면 IQR=Q3-Q1=3.89에 의해 22.26+1.5*3.89=28.095이다.
마지막 자료인 35.78과 이 값을 비교하면 35.78 > 28.095이므로 이상값이라고 할 수 있다.

 

파이썬의 데이터시각화 라이브러리인 matplotlib에서는 plot의 box 메서드를 통해 아래와 같이 시각화를 할 수 있다.