I. 서론
빅데이터 캠프의 네 번째 주제는 아웃라이어(Outlier)입니다. 아웃라이어란 무엇일까? Wikipedia에 따르면 아웃라이어는 다른 데이터 또는 관찰과 크게 다른 데이터 세트의 데이터 포인트를 말한다. 위의 사진을 보시면 여러 사과가 있지만 하나는 색이 다른데, 이 한 사과는 우리가 이상치라고 부르는 것이다.
아웃라이어는 본질적으로 노이즈(noise)와 다르다. 아웃라이어는 다른 데이터와 크게 다른 데이터이지만 노이즈는 임의의 오류 또는 분산이다. 아웃라이어는 데이터의 일부이지만 노이즈는 임의의 오류일 뿐이다. 즉, 레이블이 잘못 지정되거나 실수하거나 데이터가 누락될 수 있다.
II. 데이터 시각화와 아웃라이어
본격적인 아웃라이어 탐색에 앞서 데이터를 시각적으로 표현하여 잠재적인 아웃라이어 존재 여부에 대한 감을 잠을 수 있다. 물론 시각화가 항상 바른 결론을 도출하지는 않기 때문에 활용에 주의해야 한다.
2.1 산포도
산포도는 데이터의 아웃라이어를 점검해 볼 수 있는 쉬운 시각화 방법이다. PassengerID와 Fare를 점도표로 나타내 보자. X축은 PassengerID를 나타내고, Y축은 요금 수준을 나타낸다. 대부분의 요금 수준은 300이하인데, 4개의 점이 500이상에 위치해 있다. 아웃라이어일 가능성이 높다. PassengerID는 크기가 의미있는 것은 아니며, 이 경우에는 Fare의 아웃라이어 여부만 판별할 수 있다.
Age와 Fare 두 개 변수의 산포도를 작성해 보자. 위쪽에 있는 3개의 점은 아웃라이어처럼 보인다. 다른 점들은 어떨까? 이 그림을 봐서는 명확하지 않다.
2.2 히스토그림
산포도는 데이터가 어떻게 흩어져 있는지를 잘 보여주지만, 데이터 값의 크기별로 얼마나 많은 사례가 있는지를 보여주지는 않는다. 따라서 히스토그램을 그려서 데이터가 어떻게 분포되어 있는지 살펴보자. 아래 차트는 엑셀의 [삽입] 탭에 있는 [통계차트삽입]을 사용하여 그린 히스토그램이다. 히스토그램의 구간은 자동으로 설정이 된다. 이 차트를 보면 구간 갑이 [510, 527]까지 생성된 것을 볼 수 있는데, 이것은 눈에는 보이지 않지만 적어도 이 구간에 하나의 사례가 존재한다는 것을 의미한다.
여기에서 그린 히스토그램은 구간 값을 조정할 수 없다. 맞춤 히스토그램을 그릴려면 엑셀의 [부가기능] 중에서 [데이터 분석]을 설치한 후 아래와 같이 그려볼 수 있다.
2.3 박스 플롯
아웃라이어를 시각적으로 체크할 수 있는 세번째 방법은 박스 플롯(Box Plot)을 사용하는 것이다. 박스 플롯을 이해하기 위해서는 중간값(Median)과 4 분위수의 개념에 대해서 이해해야 한다. 어려운 것이 아니다. 먼저 대상이 되는 데이터를 작은 수에서 큰 수로 나열을 하고, 중앙에 오는 값이 중간값이다. 또한 1분위수(1Q)는 1/4지점의 숫자를 3분위수(3Q)는 3/4 지점의 숫자를 나타낸다. 마지막으로 사분위 범위(Interqutile Range, IQR)라는 것이 있는데 이것은 3Q-1Q가 된다. 칸 아카데미에서 제공하는 예제를 보기 바란다.
자 이제 박스 플롯을 이해해 보자. 먼저 Fare 열을 선택한 후 히스토그램을 그릴 때와 마찬가지로 엑셀의 [삽입] 탭에서 [통계차트삽입]을 선택한 후 [상자 수염그림]을 선택하여 박스 플롯을 생성하자. 이 차트를 자세히 들여다 보자. 우선 박스가 있고 박스 안에는 가로 방향으로 선이 있다. 상자 위쪽에도 선이 하나 있다. 이 선들의 의미를 이해하는 것이 박스 플롯을 이해하는 방법이다. 박스 중앙성은 중갑 값을 나타낸다. 박스 윗부분은 3Q를 아랫부분은 1Q를 나타낸다. 박스 상단의 선은 3Q+1.5IQR을 나타낸다. 이 그림에서는 박스 하단의 선은 없는데, 다른 경우에는 있을 수 있는데 그것은 1Q-1.5*IQR을 나타낸다. 이 상단 또는 하단 선 위 또는 아래에 존재하는 사례들은 아웃라이어로 간주된다.
III. 아웃라이어 탐지 방법
아웃라이어를 찾는 방법은 먼저 하나의 속성만을 기준으로 찾는 방법(일변량 아웃라이어, Univariate Outlier)과 다수의 속성을 기준으로 찾는 방법(다변수 아웃라이어, Multivriate Outlier)으로 구분할 수 있다. 일변량 아웃라이어는 단일 변수에 나타나는 이상치 또는 단일 열에 있는 이상치를 말한다. 즉, 타이타닉 데이터에서 Fare 또는 Age 등을 기준으로 찾는 것을 말한다. 다변수 아웃라이어는 2개(이변량) 또는 그 이상(다변량) 변수의 결합 조합 내에서 발생하는 이상값으로, 이는 단변량 이상값과 대조된다. Age와 Fare을 동시에 고려하여 아웃라이어를 찾은다면 다변량 아웃라이어 탐색이라고 볼 수 있다.
3.1 일변량 아웃라이어 탐지 기법
1) 사분위범위를 사용한 아웃라이어 정의
위에서 설명했던 박스 플롯에서 정의한 사분위범위를 사용하여 아웃라이어 여부를 판단달 수 있다. 즉, 사례가 1Q-1.5*IQR보다 크고 3Q+1.5*IQR보다 작다면 정상이고, 그렇지 않다면 아웃라이어로 정의하는 것이다. 아래 그림에서 먼저 1Q, 3Q를 =QUARTILE(C2:C1310,1) 또는 =QUARTILE(C2:C1310,1)로 구하고, Q3-Q1으로 IQR을 정의하였다. IQR을 기반으로 상한과 하한을 계산한 후 이 값을 참조하여 아웃라이어 여부를 결정하는 IF 함수를 사용하였다.
2) z-score를 사용한 아웃라이어 정의
z-score를 이해하여면 정규분포, 평균, 표준편차 등에 대한 이해가 필요하다. 우리는 앞에서 평균과 표준편차에 대해서 배웠다. 여기에서 정규분포에 대해 알아보자. 데이터는 다양한 방식으로 분포된다. 왼쪽으로 또는 오른쪽으로 치우칠 수도 있고, 무작위로 분포될 수도 있다.
그러나 데이터가 좌우 편향이 없는 중심값을 중심으로 분포되는 경향이 있어 다음과 종 모양의 정규 분포(Normal Distribution)을 갖는 경우가 많다. 아래 그림에서 보면 노란색 히스토그램은 정규 분포를 따르지만 완벽하지는 않다. 많은 데이터가 정규 분포를 밀접하게 따른다(예, 사람들의 키, 기계가 생산하는 물건의 크기, 측정 오류, 혈압 테스트)
자 이제 z-scor에 대해서 알아보자. z-score는 정규분포에서 평균을 중심으로 좌우로 몇 표준편차가 떨어져 있는지를 나타내는 값이다. 그런데, 정규분포의 경우 값의 68%가 평균의 1 표준편차 내에 있고, 값의 95%가 평균의 2 표준편차 내에 있으며, 값의 99.7%가 평균의 3 표준 편차 내에 위치한다고 한다.
특정한 값(X)의 z-score는 아래와 같이 정의된다.
이제 우리는 z-score의 이 특징을 활용하여 우리는 아웃라이어를 정의할 수 있다. 각 개별 값의 z-score를 계산한 후 그 값의 +/- 2 또는 +/-3 이상 또는 이하 되는 값은 아웃라이어로 볼 수 있을 것이다. 엑셀을 활용하여 이를 수행해 보자. 우선 Fare의 평균과 표준편차를 구했다(J열). 그리고 나서 z-score를 구하는 공식을 활용하여 z-score 값을 구했다(F열). 그리고 나서 +/-3 보다 크거나 작은 경우를 아웃라이어로 표기했다.
IV. 결론
이번 강의에서는 아웃라이어의 개념에 대해서 설명했다. 산포도, 히스토그램, 박스플롯 등 단순한 차트를 사용하여 아웃라이어의 존재 여부를 검증해보는 작업도 했다. 마지막으로 단일 변수의 아웃라이어를 수치적으로 계산하여 결정하는 방법으로 사분위범위를 사용하는 방법과 z-score를 사용하는 방법을 보았다. 그런데 이제까지 본 것은 단일 변수만을 고려해서 아웃라이어 여부를 결정해 봤다. 다음 장에서는 다수의 변수를 고려하여 아웃라이어를 찾아보는 과정을 알아보도록 하자.