brunch

You can make anything
by writing

C.S.Lewis

by 권순목 Jul 28. 2021

3.1 기초 통계 분석 (하)

데이터 과학 미니북 - 3. 데이터 분석

3.1.3 이상치 제거


기초 통계 분석을 통해 데이터의 특성을 파악하다 보면 이상치(Outlier)를 발견할 수 있습니다. 통계학에서 이상치의 정의는 '다른 관측치와 상당히 다른 측정치'[1]입니다. 이상치를 발견하면 그 발생 원인을 규명하여, 측정 오류로 판명 나는 경우 데이터에서 제거해 줌으로써, 다양한 모델의 성능을 향상시킬 수 있습니다. 다만 데이터 과학에서는 통계학에서처럼 이 이상치가 측정 오류냐 자연 발생적 변동성이냐를 엄밀히 따지지 않습니다. 적당히 데이터의 노이즈를 제거해서 모델의 성능을 올릴 수 있다면 충분합니다.


데이터 이상치는 단변량 분석을 토대로 제거할 수 있습니다. 앞서 단변량 분석에서 붓꽃 꽃받침 너비의 분포 데이터가 단봉형인 것을 살펴보았는데요, 이러한 단봉형 데이터의 경우 정상적인 데이터가 대부분 가운데 몰린다고 가정하고 양 끝의 데이터를 이상치로 판정할 수 있습니다. [그림 9]에서와 같이 하이라이트 된 부분이 이상치 후보군입니다.


[그림 9] 붓꽃 꽃받침 너비 데이터 이상치 후보군


이상치 판정의 구체적인 기준을 설정하는 방법 중 하나는 IQR(Inter Quartile Range, 사분위범위수)을 이용하는 것입니다. IQR이란 백분위 기준으로 25 %에 해당하는 값과 75 %에 해당하는 값의 차이를 말합니다. 꽃받침 너비의 백분위 수는 [표 2]와 같으며 IQR은 3.3 – 2.8 = 0.5 입니다.


[표 2] 꽃받침 너비의 사분위수


단변량 분석에서 IQR 기반의 이상치 판정이란, Q1 - IQR × 1.5 ~ Q2 + IQR × 1.5 범위 밖의 값들을 이상치로 판정하는 것입니다. 꽃받침 너비의 경우 정상치의 범위는 2.05(= 2.80 – 0.5 × 1.5)에서 4.05(= 3.30 + 0.5 × 1.5)까지이고, 그 외의 값들은 이상치로 판정할 수 있습니다. [그림 10]은 히스토그램 상에서 이렇게 판정된 이상치들을 표시한 것입니다.


[그림 10] 붓꽃 꽃받침 너비 데이터 이상치


히스토그램 이외에도 IQR 기반의 이상치를 표시해 주기 좋은 시각화 도구가 있으니, 상자-수염 그림, 또는 박스 플롯(Box-plot)고 불리는 도표입니다. 붓꽃 꽃받침 너비 데이터에 대한 박스 플롯은 [그림 11]과 같습니다.


[그림 11] 꽃받침 너비 박스 플롯


[그림 11]에 나타난 것과 같이 박스 플롯은 사분위 수들을 표시해주면서 이상치 판정 결과도 같이 나타내 줍니다. 박스 플롯은 단순하면서도 기술 통계량을 보여주는 측면에서 히스토그램을 능가하는 부분이 있기 때문에, 히스토그램과 함께 단변량의 분포를 시각화하는데 가장 많이 쓰이는 도표입니다.


단변량 기반 이상치 판정 기법을 사용할 때 주의할 점은, 앞서 언급했던 기술 통계량 사용 시의 주의 사항과 동일하게, 데이터의 분포를 살펴줘야 한다는 것입니다. 예를 들어 IQR 기반의 이상치 판정을 할 때 데이터가 단봉형이 아니라면 이상치 판정 자체가 무의미할 수 있습니다. 이상치는 두 봉우리 사이에 존재할 수도 있으니까요.


이상치 판정 기법은 단변량 기반의 방식만 있는 것이 아닙니다. 다변량 기반 방식도 존재하며 아주 다양한 방식들이 있습니다. 이 책에서는 변수 간의 상관 관계를 고려한 이상치 판정 기법 하나를 맛보기로 소개하겠습니다. 데이터의 변수 간 상관 관계가 높은 경우, 이러한 다변량 기반 방식을 사용하는 것이 좋습니다.


[그림 12] 꽃받침 길이와 꽃잎 길이 데이터의 상관 관계를 고려한 정상 영역


꽃받침 길이(SL)와 꽃잎 길이(PL) 사이에는 높은 양의 상관 관계가 있습니다. 두 변수의 산포도 [그림 12]에서 데이터는 추세선을 따라 길게 늘어진 타원 형태 안에 대부분 분포하는 것을 볼 수 있습니다. 이러한 타원을 가정하고 여기서 벗어나는 것들을 이상치로 판별하는 것이 다변량 상관 관계 기반 이상치 판정 기법의 기본입니다.


[그림 13] T-스퀘어 통계량 기반의 이상치 판별


[그림 13]은 상관 관계를 활용한 이상치 판별 기법의 하나인 T-스퀘어(Hotelling’s T-Square) 기법을 활용하여 이상치를 계산하여 표시한 것입니다. T-스퀘어 기법은 마할라노비스 거리(Mahalanobis Distance)라 불리는 통계량을 기반으로 그 값이 큰 측정치들을 이상치로 잡는 방식인데, 이 거리는 다음과 같은 수식으로 계산됩니다.



x : 다변량 측정값 (벡터)

μ : 다변량 평균값 (벡터)

S : 다변량 데이터 변수들의 공분산 행렬


수식은 기본적으로 [그림 12] 타원형의 중심점(μ)으로부터 측정값(x)까지의 거리를 의미하는데, 중간에 공분산 행렬이 들어감으로써, 상관 관계가 고려된 거리를 의미하게 됩니다. 참고로 공분산 행렬을 정규화(Normalize) 한 형태가 상관 관계 행렬이며, 두 행렬은 모두 변수들 사이의 상관 관계를 반영한다고 할 수 있습니다.


3.1.4 결측치 보완


앞 단원에서 통계 분석을 통해 데이터에서 이상한 값을 제거하는 방법을 살펴보았습니다. 이것은 데이터에서 넘치는 부분을 버리는 것이라고 할 수 있는데, 때로는 이와 반대로 데이터에서 부족한 부분을 채워줄 필요도 있습니다. 데이터에서 측정치가 누락된 부분을 적당한 값으로 채워 주는 것을 결측치 보완 또는 보간(Interpolation)이라고 합니다. 결측치 보완이 필요한 경우는, 예를 들어, 데이터의 수가 절대적으로 부족하여 변수가 일부 유실된 데이터라도 사용해야 하는 경우, 데이터의 일부 영역에 집중적으로 결측이 발생하여 해당 영역의 특징이 전부 유실될 우려가 있는 경우 등이 있습니다.


보간 기법은 이상치 제거와 동전의 양면과 같은 기술이라고 할 수 있습니다. 이상치 제거가 그랬듯 보간도 단변량 기반 기법과 다변량 기반 기법이 있으며, 다변량 기반 기법의 경우 변수 간 상관 관계를 고려한다는 점도 동일합니다.


[표 3]는 붓꽃 데이터의 일부로, 꽃받침 길이(SL) 값에 결측이 하나 발생했다고 가정한 것입니다.


[표 3] 결측치가 있는 붓꽃 데이터


단변량 보간 기법은 단순하게 ‘어떤 변수의 결측치를 그 변수의 평균값으로 채우는 것’이라고 생각할 수 있습니다. [표 3]의 결측치는 꽃받침 길이(SL)의 평균값 5.8로 채울 수 있습니다. 때에 따라 평균값 이외에 중앙값이나 최빈값 등 다른 기술 통계량으로 채우기도 합니다.


다변량 보간 기법은 다른 변수와의 관계를 고려하여 결측치를 채우는 것입니다. 예를 들어, 꽃받침 길이(SL)와 꽃잎 길이(PL)에는 강한 상관 관계가 있으므로, PL이 큰 경우 SL도 크다고 가정할 수 있습니다. [표 3]에서 결측치에 해당하는 PL은 5.1로 PL평균 3.8에 비해 꽤 큰 값이므로, 결측치는 평균보다 큰 값으로 채워 넣을 수 있습니다. 이것은 다른 변수들을 이용해 결측치를 ‘예측’하는 것으로 볼 수 있으며, 예측을 위해 다양한 통계 모델이나 머신 러닝 모델을 동원하는 것도 가능합니다. 뒤에 살펴볼 선형 모델을 이용하여, 다음과 같은 추세선 함수를 만들어서,



PL 값 5.1을 입력하여, SL 값을 6.401 (= 0.41 ∙ 5.1 + 4.31)로 채우는 것도 가능합니다. 이런 경우 “선형 모델을 이용하여 보간했다”라고 합니다.


3.1.5 범주형 데이터 분석


지금까지 설명한 단변량, 다변량 데이터 분석의 대상은 모두 수치형 변수였습니다. 이번에는 범주형 데이터 분석에 대해 살펴봅니다. 범주형 데이터도 수치형과 마찬 가지로 단변량과 다변량 분석이 가능합니다. 또한 다변량 변수의 경우 범주형 변수와 수치형 변수를 섞어서 분석하는 것도 가능합니다. 오히려 범주형 변수들만 묶어서 다변량 분석을 하는 것보다 범주형 변수와 수치형 변수를 섞어서 분석하는 경우가 더 일반적입니다.


이번 단원에서는 범주형 데이터의 단변량, 다변량 데이터 분석의 대표적인 사례로 엔트로피 분석과 분산 분석(Analysis of Variance, ANOVA)에 대해서 간단히 살펴보겠습니다.


엔트로피 (Entropy)


엔트로피는 ‘무질서한 정도’를 나타내는 기술 통계량입니다. 데이터가 질서 정연하다면 엔트로피가 낮고, 데이터가 뒤죽박죽이라면 엔트로피가 높게 됩니다. 범주형 데이터의 경우 이 질서 정연함을 나타내는 기준은 “동일한 값이 얼마나 많은가?”입니다. 예를 들어 대통령 선거를 하는데 A나라에서는 두 명의 후보가 50 % 씩 득표했고, B나라에서는 네 명의 후보가 25 % 씩 득표했다면, A나라의 엔트로피가 낮고 B나라의 엔트로피가 높다고 판단합니다.


범주형 변수 값으로 구성된 집합의 엔트로피를 계산하는 공식은 다음과 같습니다.[2]




N : 측정값 개 수 (유권자 수)

x_i : 변수 (기표 결과 = 선택한 대통령 후보)

i : 서로 다른 변수 값의 개수 (기표 결과의 가지 수 = 대통령 후보 수)

P(x_i) : 변수의 발생 확률 (득표율)


이 공식에 따라 A, B 나라의 대통령 선거 엔트로피를 계산하면 다음과 같습니다:


A: -1∙(0.5∙log(0.5) + 0.5∙log(0.5)) = 0.693

B: -1∙(0.25∙log(0.25) + 0.25∙log(0.25) + 0.25∙log(0.25) + 0.25∙log(0.25)) = 1.386   


앞서 말씀드린 대로 A나라의 엔트로피가 낮음을 확인할 수 있습니다. 엔트로피는 ‘순도’의 반대 개념이라고 생각할 수도 있습니다. 예를 들어 99.9 % 순도의 금은 99.0 % 순도의 금보다 엔트로피가 낮은 것입니다.


엔트로피는 범주형 데이터 외에 이산형 수치 변수에 대해서도 계산할 수 있다는 것도 알아두시면 좋습니다.



분산 분석 (Analysis of Variance, ANOVA)


앞서 다변량 분석에서 붓꽃 데이터에서 품종을 분류하고 계산하느냐 다 묶어서 계산하느냐에 따라서 변수간 상관 관계가 큰 차이를 내는 것을 살펴봤습니다. 다변량 분석 관점에서 범주형 변수 ‘품종’과 다른 수치형 변수, 예를 들어 ‘꽃받침 길이’ 변수는 어떤 연관 관계를 가지고 있다고 할 수 있을까요? 연속형 변수 쌍과 같이 상관 계수를 계산할 수는 없습니다. 대신 ‘F-통계량’이라는 것을 계산하여, 두 변수 사이의 관계를 수치화 할 수 있습니다. 이 F-통계량을 계산하는 과정을 분산 분석이라고 합니다.


[표 4] ‘꽃받침 길이’에 대한 ‘품종’ 변수 분산 분석


[표 4]분산 분석 결과를 표로 나타낸 것입니다. 자세한 계산 내용에 대한 설명은 생략합니다. "품종이라는 변수로 꽃받침 길이 값을 몇 개 집단으로 나누고, 각 집단 내의 분산과 집단 간의 분산 간의 비율을 살펴본다." 정도로 만 이해하고 넘어갑시다. 표에서 ‘품종’ 변수가 ‘꽃밭침 길이’에 대해 가지는 F-통계량은 119.3, 그에 따른 P-value는 소수점 이하 16자리까지 가는 매우 작은 수 임을 확인할 수 있습니다.


P-value는 미리 정해진 분포를 따르는 어떤 값이 주어졌을 때, 그것이 ‘우연히 발생했을 확률’을 의미합니다. 즉, 그 값 또는 그 사건이 ‘무의미할 가능성’을 나타내는 지표라고 생각하시면 됩니다. F-통계량도 정해진 분포가 있기 때문에 P-value를 계산할 수 있습니다. P-value가 낮은 것은 ‘품종’ 변수가 ‘꽃받침 길이’에 대해서 ‘무의미할 가능성’이 낮다는 뜻입니다. P-value가 이처럼 낮다는 것은 두 변수 사이에 유의미한, 매우 강한 연관 관계가 있다는 뜻입니다.


P-value가 높고/낮음에 대한 명확한 기준이 있을까요? 예를 들어 P-value 0.1은 낮다고 봐야 할까요 높다고 봐야 할까요? 일종의 불문율로서 0.05라는 기준이 자주 사용됩니다. 통계학자들은 많은 경우 P-value를 계산하여 0.05보다 낮기만 하면 어떤 사건이 유의미하다고 판정을 내립니다. 다만, 통계학자의 기본 입장은 회의주의이며[3], 그들의 역할은 대부분의 경우 P-value가 높은 것을 확인하는 쪽입니다.


진짜 그런가 볼까? 어디 보자, P-value가 0.05보다 높네. 아니야. 어쩌다 그렇게 된 거야. 의미 없어.


밥만 먹어도 살이 찐다고? 진짜 그런까 볼까?


옆집이 시끄러워서 공부를 못하겠다고? 진짜 그런가 볼까?


통계학자는 그리 유쾌한 사람들은 아닙니다.


F-통계량과 그에 따른 P-value를 계산하여, ‘품종’ 변수가 ‘꽃받침 길이’ 변수 사이의 연관 관계가 유의미함을 확인하였습니다. 그러나, 복잡한 계산에 들어가기 전에 눈으로 쉽게 연관 관계 여부를 추측할 수 있는 방법이 있습니다. 범주형 변수를 이용해 데이터를 몇 개 집단으로 나눈 후 그에 따른 분포를 살펴보는 것입니다. 이때 많이 사용되는 것이 박스 플롯입니다.


[그림 14] ‘품종’, ‘꽃받침 길이’ 변수에 대한 박스 플롯


[그림 14]는 3개 품종의 ‘꽃받침 길이’ 데이터를 한 개 도표 안에 보여주고 있습니다. 이 도표에서 각 그룹의 분포는 한눈에 보기에도 큰 차이를 보이고 있습니다. 이것 만으로도 품종이라는 변수에 의해 꽃받침 길이에 큰 차이가 발생한다, 즉, 변수 ‘품종’과 ‘꽃받침 길이’ 에는 연관 관계가 있을 것이라고 예상할 수 있습니다.





[1] "A data point that differs significantly from other observations." 여기서 ‘significantly’는 ‘유의미하게’로 번역하는 것이 더 정확합니다. https://en.wikipedia.org/wiki/Outlier

[2] 엔트로피 공식 https://en.wikipedia.org/wiki/Entropy_(information_theory)

[3] 대부분의 다른 과학자들과 마찬가지 입니다. 회의주의를 기본 입장으로 채택하지 않으면서 ‘과학자’라고 불리는 건 데이터 과학자가 유일할 지도 모릅니다.


이전 09화 3.1 기초 통계 분석 (상)
brunch book
$magazine.title

현재 글은 이 브런치북에
소속되어 있습니다.

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari