본문 바로가기

그 외 지식

박스 플롯(Box Plot), 바이올릿 플롯(Violin Plot)

데이터 분석을 하다보면 목적성에 맞게 여러가지 시각화를 시도하게 됩니다. 어릴적 배웠던 막대 그래프나 꼭지점 그래프 정도에서 발전된 그래프는 충분히 이해하기 쉬웠는데, 이를 벗어나면 간단한 것임에도 처음보면 굉장히 답답한 그래프들이 많습니다. 저에게는 박스, 바이올린 플롯이 그랬습니다. 그래서 이번에는 이런 특이한 그래프에 대해 간단히 기록하고자 합니다. 내용을 읽은 뒤 코드를 참고하시면 좋을 것 같습니다.

아무것도 모르고 봤을 때도, 좌측이 박스 플롯, 우측이 바이올린 플롯일 것 같습니다. 실제로도 그렇구요. 사실 이 그림 하나만으로 이 글의 모든 내용을 설명할 수 있을 것 같습니다.

1. 박스 플롯(Box Plot)

일변량, 연속형 데이터의 분포(Distribution)를 설명하기 위해 사용되는 이 그래프는, 분포의 중심, 분산(Variance), 치우침(Skewness), 이상치(Outlier), 대칭성(Symmetry)를 쉽게 볼 수 있습니다. 그리는 방법은 보시는 바와 같이 제1사분위(First Quartile, Q1)과 제3사분위(Thrid Quartile, Q3)을 양 끝으로하는 상자를 그리고, 상자 내부에 중앙값(Median)을 수평선으로 긋습니다. 이후 상자의 높이(Inter-Quartile Range, IQR, Q3-Q1)를 계산하여 하위 장벽(Low Fence(Whisker), LF, Q1-1.5IQR), 상위 장벽(Upper Fence(Whisker), UF, Q3+1.5IQR)을 계산한 뒤 하위 근접값(Lower Adjacent Value, smallest value in data>LF)상위 근접값(Upper Adjacent Value, largest value in data<UF)을 다시한번 그려줍니다. 이 때, 하위 근접값보다 작은 값과 상위 근접값보다 큰 값은 이상치로써 대개 동그라미○로 표기합니다. 이 경우에는 중간값이 제1사분위와 제3사분위의 중간 즈음에 있다면 데이터가 균형적임을 의미합니다.

2. 바이올린 플롯(Violin Plot)

박스 플롯과 동일하게 일변량, 연속형 데이터의 분포를 설명하기 위해 사용되는 그래프입니다. 대부분의 내용이 박스 플롯과 같으며, 추후 설명할 커널 밀도 곡선(Kernel Density Curvce)와 박스 플롯을 합친 형태입니다. 카테고리값에 따른 각 분포의 실제 데이터 또는 전체 형상을 보여준다는 장점이 있습니다.

참고 문서
pandas.DataFrame.boxplot
seaborn.violinplot

플롯 그 자체의 뜻을 아는 것도 중요하지만, 그 이전에 머리 속에 넣어야할 것은, 어떤 데이터에 어떤 그래프를 그려야하는가-숙지하는 것 같습니다. 무얼 해야하는지만 기억한다면 자세한 내용은 검색을 통해 해결할 수 있으니까요. 아래는 이와 관련된 분류 그래프입니다. 출처

변수 개수 변수 형태 그래프    
일변량(1개)

연속형 데이터

히스토그램(Histogram)    
커널 밀도 곡선(Kernel Density Curve)    
박스 그래프(Box Plot)    
바이올린 그래프(Violin Plot)    
범주형 데이터 막대 그래프(Bar Chart)    
원 그래프(Pie Chart)    
다변량(2개 이상) 연속형 데이터 선 그래프(Line Chart)    
산점도(Scatter)    
범주형 데이터 히트맵(Heatmap)    

 

'그 외 지식' 카테고리의 다른 글

최대 우도 추정(Maximum Likelihood Estimation, MLE)  (0) 2020.04.16
객체(Object)  (0) 2020.03.29
데이터 타입(Data Type)  (0) 2020.03.11
P-NP 문제  (0) 2020.03.08
휴리스틱(Heuristic)  (0) 2020.03.07