데이터 집산을 활용한 시각적 분석 3 : 범주형 변수 활용하기
시각적 데이터 탐색 및 분석을 위한 데이터 집산(Data Aggregation) 이야기를 이어가 봅시다. 지난 글에서는 데이터 집산 개념과 수치형 변수를 활용한 데이터 집산에 대해 알아보았습니다. 이번 글에서는 범주형 변수를 활용한 데이터 집산의 개념과 시각화 유형에 대해 자세히 알아보겠습니다.
범주형 변수란 무엇일까요? 범주형 변수(dimension)란 개별 항목(category)으로 구분되는 데이터 값을 갖는 변수를 말합니다.
일반적으로 값은 텍스트, 날짜 형태를 띱니다. 간혹 숫자 형태의 값을 갖는 변수를 범주형 변수로 활용하기도 하는데, 이 경우 수학적으로 계산할 수 없다는 점에서 수치형 변수와 구별됩니다. 이를 범주형 변수의 종류로 설명할 수 있는데, 좀 더 세분화하여 4가지 -1) 텍스트 2) 지역 3) 날짜 4) 숫자-로 정리할 수 있습니다.
범주형 변수의 데이터 집산은 전체 데이터를 ‘여러 그룹으로 나누는 것’을 의미합니다. 전체 데이터를 성별, 연령별, 지역별 그룹으로 나눈 것이 대표적인 예입니다. 이는 ‘수학적 계산’ 과정을 통해 데이터를 집산하는 수치형 변수의 데이터 집산과 구별됩니다. 시각화 차트는 범주형 변수와 수치형 변수의 데이터 집산 결과를 시각적 요소로 표현한 것입니다. 전체 데이터를 범주형 변수 기준으로 여러 그룹으로 나누고, 그룹별로 수치형 변수의 값을 계산한 결과를 시각적으로 표현합니다.
시각화 차트를 활용한 데이터 분석을 할 때, 범주형 변수의 데이터 집산을 활용하면 다양한 관점에서 데이터를 탐색하고 인사이트를 도출할 수 있습니다. 데이터 하나에 여러 개의 범주형 변수가 포함된 경우가 대다수이며, 이를 어떻게 활용하느냐에 따라서 수십 개 혹은 그 이상의 기준으로 데이터를 나눌 수 있기 때문입니다. 각기 다른 기준으로 집산한 결과 데이터로 시각화 차트를 만들면, 서로 다른 시각적 패턴을 근거로 다양한 인사이트를 도출할 수 있습니다.
위 자료는 1912년 타이타닉 침몰 사고 당시 탐승객 분포 시각화입니다. 4개의 범주형 변수(생존 여부, 성별, 연령, 등급)별로 집산한 결과를 한 번에 시각화하였습니다. 이와 같은 시각화 유형을 Parallel Sets이라고 하는데, 각 범주형 변수를 기준으로 탑승객의 비중이 어떻게 달라지는지 한눈에 알 수 있습니다. 생존 여부를 기준으로 전체 탑승객의 그룹을 나누어보면, 생존자보다 사망자가 많았음을 알 수 있습니다. 또 여성보다는 많은 남성이 탑승해 있었으며, 아이보다는 어른의 비중이 압도적이었습니다. 탑승객 등급별로 그룹을 나누었을 때는 선원이 가장 많았습니다. 범주형 변수 기준별로 각기 다른 데이터 인사이트를 도출 할 수 있습니다. 다양한 데이터 인사이트를 도출하기 위해서 여러 범주형 변수를 기준으로 데이터 집산을 해봐야합니다.
효과적인 시각적 분석을 위해 범주형 변수를 활용한 데이터 집산 결과를 어떤 시각화 유형으로 만들지 생각해봐야 합니다. 셀 수 없이 많은 시각화 유형 중 범주형 변수의 특징을 직관적으로 표현해 인사이트 도출에 도움이 되는 시각화 유형은 무엇일까요?
앞서 범주형 변수를 그 값의 형태나 의미에 따라 세부 유형-1) 텍스트(때에 따라 ordinal), 2) 지역(Geographic), 3) 날짜(Temporal), 4) 숫자(Numeric)-로 나눌 수 있다고 했는데요. 범주형 변수의 세부 유형에 따라서 적합한 시각화 유형이 달라집니다. 간단히 먼저 이야기하면 지역 정보를 포함한 범주형 변수라면 지도 시각화, 시계열 정보를 포함한 범주형 변수라면 시계열에 적합한 시각화 유형을 사용하는 것이 좋습니다. (물론 데이터를 비교하는데 기본이면서도 가장 효과적인 시각화 유형을 막대 차트라고 생각합니다. 다만 여기서 ‘적합한 시각화 유형’이란 범주형 변수 세부 유형별 특징에 초점을 맞춰 데이터를 효과적으로 표현할 수 있는 시각화 유형입니다.)
지금부터 범주형 변수의 세부 유형별 데이터 집산과 활용 가능하며 적합한 시각화 유형은 무엇인지 사례를 통해 자세히 알아보도록 하겠습니다.
텍스트 변수는 범주형 변수 가운데 텍스트 형태의 값을 데이터로 갖는 경우를 의미합니다. 따라서 데이터값은 독립적인 항목(category)으로 구분됩니다. 이를 활용해 시각화 차트를 만드는 방법은, 범주형 변수의 항목별로 시각화 요소를 표현하되, 그 크기나 색을 수치형 변수의 데이터 집산 결과에 따르는 것입니다.
항목별 개별 시각화 요소로 데이터를 표현하는 모든 시각화 유형, 막대 차트, 파이(pie) 차트, 트리맵(tree map), 버블(bubble) 차트, 워드 클라우드(word cloud) 등을 활용할 수 있습니다.
위 사례는 범주형 변수(종교, 인종, 성적 취향, 교육, 인구, 성별, 지역, 소득 등) 12개를 기준으로 데이터를 집산, 그 결과를 시각화한 것입니다. 인구 피라미드 차트(Population Pyramid chart)와 유사해 보이나, 정확하게는 나비 차트(butterfly chart)입니다. 2개의 데이터 값을 갖는 범주형 변수 하나를 활용해 Diverging bar chart를 그린 뒤, 같은 방식으로 그린 12개의 Diverging bar chart를 일렬로 나열하였습니다. 범주형 변수 기준별로 데이터 집산 결과가 다르다는 것을 한눈에 파악할 수 있습니다. 미국 의회 투표에서 백인보다는 흑인, 종교가 없는 사람의 경우에 민주당에 투표할 가능성이 크네요!
특정 텍스트 변수의 경우 데이터값이 갖는 의미 정보를 기준으로 특징을 세분화할 수 있습니다. 순서(ordinal)상의 의미가 있는 경우가 대표적입니다. 계절을 떠올리면 쉽게 이해할 수 있는데요! 텍스트 형태의 값인 동시에 ‘봄, 여름, 가을, 겨울’이라는 의미적 순서가 있습니다. 이 경우 항목별 개별 시각화 요소로 데이터를 표현하는 시각화 유형을 사용하되, 항목의 순서를 고려하여 요소를 배치하는 것이 좋습니다. 데이터 자체의 의미적인 특성이 고려된 시각화 차트이므로, 데이터 인사이트를 찾는데 더욱 효과적입니다.
또 텍스트 변수 2개 이상이 의미상 계층(hierarchy) 구조를 갖는 경우도 있습니다. 계층 구조를 갖는 텍스트 변수 2개 이상을 활용한 데이터 집산 결과를 시각화할 경우, 계층 구조를 표현하는데 효과적인 시각화 유형을 활용합니다.
계층형 트리맵(tree map), 써클 패킹(Circle Packing), 선버스트 차트(Sunburst Chart) 등을 예로 들 수 있습니다. 시각화 사례를 바탕으로 계층형 시각화에 대한 이해를 더 해볼까요?
위 시각화는 2015년 기준 국내 우울증 환자에게 처방된 항우울제를 계열별, 성분별 비중을 보여줍니다. 두 개의 텍스트 변수(계열, 성분)를 기준으로 데이터를 집산하여 시각화한 것입니다. 첫 번째 텍스트 변수인 계열(SSRI, TCAs, SNRI, SSRE, MAOI, 기타)을 기준으로 할 때 SSRI 계열(남색)의 항우울제가 가장 많이 처방된 것을 알 수 있습니다. 다음으로 두 번째 텍스트 변수인 성분을 기준으로 보면, SSRI 계열 항우울제 중에서도 ‘에스시탈로프람’ 성분 처방이 가장 많았음을 알 수 있습니다. 이처럼 계층형 데이터 시각화 유형은 데이터의 계층 구조와 계층별 데이터 비중을 한 번에 볼 수 있다는 장점이 있습니다.
텍스트 변수 중에서도 지역 이름이 데이터값인 경우, ‘지역 변수’로 구분합니다. 지역 변수를 활용하되 각 지역의 지리적 정보(위치, 영역 등)를 접목하여 다양한 지도 시각화 유형을 만들 수 있습니다. 단순히 지역별 데이터의 크기를 비교하는 데에서 나아가, 지역의 위치적 특성, 영역(면적)의 특성 등을 고려해 보다 종합적인 인사이트를 찾을 수 있습니다.
대표적인 지도 시각화 유형은 도형 표현도(Symbol map)와 단계 구분도(Choropleth map)입니다. 도형 표현도는 지역별 데이터의 크기를 시각화 요소(원, 사각형, 막대, 파이 차트 등)로 표현합니다. 반면, 단계 구분도는 지역의 영역 범위마다 데이터의 크기를 색으로 표현합니다.
더불어 지역 변수는 그 자체로 계층적인 의미 정보를 갖고 있으므로, 이를 바탕으로 다양한 인사이트를 도출할 수 있습니다. 예를 살펴볼까요? 서울시 자치구별 인구수 데이터를 단계 구분도로 시각해봅니다. 범주형 변수인 자치구를 기준으로 인구수를 합산한 결과를 시각화하는 것입니다. 자치구의 영역에 인구 수의 크기에 따라서 색을 달리 표현합니다. 나아가서 개별 자치구를 범주화할 수 있는 상위 계층 단위인 ‘시/도’, ‘생활 권역’별로도 데이터를 집산하고 시각화 할 수 있습니다. 결과적으로 어떤 지역 계층 단위로 시각화하느냐에 따라서 같은 데이터를 사용하더라도 서로 다른 시각적 패턴을 보이는 시각화를 근거로 인사이트를 도출할 수 있습니다.
범주형 변수 중 날짜 형태의 값을 갖는 변수를 ‘날짜 변수’로 구분합니다. (‘날짜’라고는 하지만, 경우에 따라서 시간 정보를 포함하는 경우도 있습니다. ‘날짜 변수’를 포함한 데이터는 시간에 따라 데이터를 수집한 것으로, 시계열((時系列, time series) 데이터라고도 합니다.)
날짜 변수를 활용한 데이터 시각화는 시간의 흐름에 따른 데이터의 변화를 직관적으로 보여주는 것이 중요하기 때문에, 선 차트, 영역 차트, 간트 차트 등을 사용하는 것이 일반적입니다. 선 차트, 영역 차트는 데이터의 변화를 선의 높낮이를 기준으로 보여주며, 간트 차트는 막대의 길이로 기간 데이터를 시각화합니다.
날짜 변수 역시 그 자체로 계층적인 의미 정보를 갖는데요! 예를 들어 일간으로 수집된 데이터라도 이를 범주화할 수 있는 주(week), 월, 분기, 계절, 연(year) 등의 계층을 기준으로 데이터를 집산해 다수의 시각화 차트를 만들 수 있습니다. 물론 각 기준에 따라서 차트의 시각적 패턴이 달라지고 이를 근거로 다양한 인사이트를 도출할 수 있습니다. 위 사례는 지난 2016년 12월 서울시의 콜택시 이용 건수 데이터를 활용해 만든 선 차트입니다. 일간으로 수집된 데이터이지만, 집산의 기준이 되는 계층을 다르게 하여, 요일별 이용 건수, 주별 이용 건수 현황을 파악할 수 있습니다. (시계열 데이터를 활용한 데이터 분석 및 시각화 사례가 궁금하신 분은 ‘시계열 데이터를 활용한 시각적 분석’을 주제로 한 글 (1), (2)를 읽어보세요.
날짜 변수의 데이터 집산 결과를 시각화하는 방법으로 우리에게 다소 낯설지만 유용한 시각화 유형도 있는데요! 몇 가지 사례를 통해 간단히 알아봅시다.
가장 먼저 시계열 데이터 시각화 유형 중 하나로 캘린더 차트(Calendar Chart)를 이야기할 수 있습니다. 캘린더 차트는 일 단위의 데이터 수치값을 달력과 같은 형태로 시각화한 것입니다. 데이터의 크기는 일별 영역의 색으로 표현합니다. 일반적으로 색이 진하면 데이터의 크기도 큰 것을 의미합니다.
캘린더 차트와 비슷해 보이지만 알고 보면 다른 XY 히트맵(XY heatmap)도 시계열 데이터를 시각화하는데 유용합니다. 날짜 변수의 데이터 집산 계층 중 2가지를 선택해 XY 히트맵으로 시각화할 수 있습니다. 위 사례는 지난 1924년부터 2018년까지 미국의 벚꽃 개화 시기를 XY 히트맵과 유사한 형태로 제작한 것입니다. 보통의 히트맵은 데이터의 크기를 X, Y의 값별 영역의 색을 달리하여 표현하는데, 여기에서는 벚꽃이 처음 핀 시기만 분홍색으로 표시했습니다. X축은 연도(year), Y축은 일(day, 3~4월)을 의미합니다. 연도별, 일자별 데이터를 파악할 수 있을 뿐만 아니라 추세선(trend line)을 바탕으로 벚꽃 개화 시기가 앞당겨지고 있음을 알 수 있습니다.
나아가 최근에는 시계열 데이터를 방사형 선 차트(Radial Line Chart)로 표현한 사례를 자주 볼 수 있는데요! 방사형 선 차트는 일반적인 선 차트를 동그랗게 말아 놓은 것과 같은 형태입니다.
위 사례는 날짜 변수 데이터 집산 기준으로 ‘요일’과 ‘시간’을 활용하여 데이터 집산 결과를 방사형 선 차트로 시각화한 것입니다. 애니메이션 효과를 사용해 월요일부터 일요일까지의 데이터가 자동으로 시각화되도록 하였습니다. 시계 방향에 따라 요일별 데이터를 차례대로 확인할 수 있습니다. 그뿐만 아니라 요일별 데이터를 시간대별로도 알 수 있습니다. 선의 형태를 근거로 주중과 주말의 데이터가 서로 다른 패턴을 보이는 것을 쉽게 파악할 수 있습니다.
시간에 흐름에 따른 데이터의 변화를 애니메이션 효과를 사용해 보여주는 경우도 있지만, 시간별 개별 차트를 그린 뒤 한 번에 나열하는 방식도 있습니다. 이를 스몰 멀티플즈(Small Multiples)라고 하는데요!
스몰 멀티플즈란 같은 시각화 유형을 활용하되, 시점별 혹은 항목별로 개별 차트를 그린 뒤 나열한 것입니다. 위 사례는 미국에서 발생한 연도별 주요 홍수 현황 데이터를 스몰 멀티플즈를 활용한 지도 시각화로 표현한 것입니다. 연도별 데이터를 개별 지도로 표현한 뒤 차례대로 나열하여 배치했습니다. 시점에 따른 데이터의 변화를 직관적으로 확인할 수 있습니다.
앞서 언급하였듯이 범주형 변수의 대부분은 텍스트나 날짜 형태의 값을 갖습니다. 예외적으로 숫자 형태의 값을 가진 숫자 변수를 범주형 변수로 활용하여 시각화하는 경우가 있습니다. 이때 주로 활용하는 시각화 유형은 히스토그램(Histogram)입니다. 히스토그램은 어떤 변수에 대해 구간(bin)별 빈도수를 시각화한 것인데요! 사례를 통해 자세히 알아보겠습니다.
위 시각화는 여성 청바지의 허리 사이즈를 기준으로 브랜드의 수를 센 결과를 표현한 히스토그램입니다. 데이터를 집산한 기준인 x축의 항목 값이 숫자 형태임을 알 수 있습니다. 숫자 값을 데이터로 갖는 변수를 수치형 변수가 아닌 범주형 변수로 활용한 것입니다. 다시 말해 숫자라고 해서 무조건 수치형 변수라고 할 수 없습니다. 데이터의 의미상 계산을 할 수 없는 경우가 이에 해당합니다. ‘나이’ 역시 숫자 형태의 데이터이지만, 계산이 무의미하므로 범주형 변수로 사용하는 것이 일반적인데요! ‘나이’ 데이터를 활용해 만든 히스토그램을 예로 이해를 더 해보겠습니다.
2017년 국내 인구수 데이터를 활용해 만든 3개의 히스토그램입니다. 숫자 변수인 나이를 기준으로 데이터를 집산하였습니다. 같은 데이터를 활용해 만든 3개의 히스토그램은 무엇이 다를까요? 연령을 나누는 범위를 1세, 5세, 10세로 달리하였습니다. 0세부터 100세 이상인 경우까지를 시각화할 때, 1세를 기준으로 하면 최소 100개의 막대를 그리고, 1세별 인구수를 막대의 길이로 표현해야 합니다. 5세를 기준으로 하면 0세부터 4세까지의 데이터를 합친 뒤 하나의 막대로 표현하게 되는데, 이 경우 히스토그램에는 총 20개의 막대가 표현됩니다. 10세를 기준으로 하면 같은 방식으로 데이터를 집산, 그 결과를 10개의 막대로 표현하게 됩니다. 즉, 연령별 인구수를 시각화한다고 할 때, 연령의 범위를 어떻게 하느냐에 따라서 서로 다른 시각적 형태를 보이는 차트가 만들어지는 것을 알 수 있습니다.
이처럼 숫자 변수를 범주형 변수로 활용하면, 개별 값 단위로 시각화할 수 있을 뿐만 아니라 데이터를 묶는 범위를 기준으로도 시각화할 수 있는데요. 이를 데이터 변수의 구간(bin, interval)을 설정한다고 합니다. 구간 값을 어떻게 하느냐에 따라서 히스토그램에서의 시각적 패턴이 달라지고, 이를 근거로 다양한 데이터 인사이트를 도출할 수 있습니다.
지금까지 범주형 변수의 데이터 집산에 대해 자세히 알아보았습니다. 범주형 변수의 데이터 집산은 데이터를 여러 그룹으로 나누는 것을 의미합니다. 어떤 기준으로 데이터를 나누는지에 따라서 같은 데이터로도 다양한 시각화 차트를 만들고 인사이트를 도출할 수 있습니다. 여기에 범주형 변수의 세부 유형의 특성을 고려한 시각화 차트를 활용하면 인사이트 도출에 더욱 효과적입니다. 범주형 변수 가운데 의미상 계층적 성격을 갖는 경우 계층 구조를 직관적으로 파악할 수 있는 시각화 유형을 활용합니다. 지역 정보를 갖는 변수라면, 지도 시각화를 이용하면 더욱 효과적입니다. 예외적으로 숫자 변수를 범주형 변수로 활용할 경우 히스토그램으로 시각화하는 것이 일반적입니다. 이때 데이터 집산의 기준이 되는 구간 범위를 어떻게 하느냐에 따라 서로 다른 시각적 패턴을 보이는 차트를 확인할 수 있습니다.
한 시각화 보고서에서는 데이터 집산 결과가 시각화 결과물 형태의 변화로 이어지는 것을 ‘시각적 집산(Visual Aggregation)’으로 표현하였습니다. 데이터 시각화 차트의 시각적 패턴을 근거로 인사이트를 도출하는 것이 시각적 분석임을 고려하면, 시각적 집산을 활용한 데이터 탐색과 인사이트 도출을 시각적 분석이라고 재정의할 수 있습니다. 쉽고 빠르게 데이터 인사이트를 찾을 수 있는 시각적 분석을 하고자 한다면, 시각적 집산에 대한 이해가 필요하다는 것을 의미하기도 합니다.
같은 맥락에서 여러 데이터 시각화 솔루션에 데이터 집산을 쉽게 할 수 있는 기능이 있는 이유를 시각적 집산을 위한 것이라고 설명할 수 있습니다. 데이터 정제 과정 없이 집산 기준에 따른 결과를 바로 시각화 차트로 확인할 수 있으니, 시각적 분석을 하고자 하는 사람들에게 매우 유용합니다. 시각적 집산을 활용한 데이터 분석에서 ‘차트’는 우리가 흔히 생각하던 ‘보여 주기용’이 아니라 데이터를 탐색하고 인사이트를 도출하기 위한 ‘분석 방법’으로 중요한 역할을 합니다. 이 글을 통해 여러분에게도 ‘차트’가 데이터 분석을 위해 필요한 존재가 되었길 바라며, ‘데이터 집산을 활용한 시각적 분석’을 주제로 한 마지막 글을 마무리합니다.
[참고자료]
· Zhicheng Liu, Biye Jiang and Jeffrey Heer, 「imMense : Real-time Visual Querying of Big Data」
· Niklas Elmqvist, Member, IEEE, and Jean-Daniel Fekete, Member, IEEE, 「Hierarchical Aggregation for Information Visualization: Overview, Techniques and Design Guidelines」
· Jason Davies, Parallel Sets
· Aran Lunzer, Amelia McNamara, ‘Exploring Histograms’
· The Economist, ‘How to forecast an American’s vote’
· The Wasㄱhington Post, ‘Spring is springing earlier and earlier’
· AXIOS, ‘Thirty years of major flooding in the U.S.’
· QUARTZY, ‘Women’s clothing retailers are still ignoring the reality of size in the US’
· 뉴스젤리, ‘대한민국 우울증 보고서’
· 뉴스젤리, ‘위치데이터의 시각적 분석(1) 어떻게 할 수 있을까?’
* 이 글의 원문 출처는 데이터 시각화 전문기업 뉴스젤리 블로그 '성별, 연령별, 지역별... 데이터를 나누면 인사이트가 보인다!'입니다.