어떻게 하면 교차표를 잘 만들 수 있나?

통계를 사용한 보고서에서 가장 많이 사용되는 기법 중 하나는 교차표(cross-table: 분할표, contingency table라고도 부름)이다. 교차표는 사회과학 전공자들이 대학이나 대학원에서 익혀두면 평생 요긴하게 써먹을 수 있는 통계 지식이다.

그런데, 학생들은 물론이고 전문가들이 작성한 논문이나 보고서(보고서의 부록으로 제시하는 교차표가 아니라 본문에 삽입되는 교차표)에 담긴 교차표를 보면 아쉽다는 생각이 들 때가 많다. 그래서 교차표를 작성할 때 유용하게 적용할 수 있는 몇 가지 원칙을 소개한다.

논문이나 보고서에서 학생들은 흔히 엑셀, SPSS, 파이썬 같은 소프트웨어가 생성하는 교차표를 그냥 옮겨 놓는다. 물론 좀 재치있는 학생들은 그것을 약간 다듬어 보기 좋게 만들거나 보다 신기한 모양의 그래프로 바꾸어 놓기도 한다. 진실은 통계 소프트웨어가 쏟아내는 교차표를 그냥 가져오는 경우가 최악(?)이지만 외양을 바꾼다고 교차표의 품질이 크게 개선되지는 않는다는 사실이다. 문제가 그보다 더 근본적인 수준에서 발생하기 때문이다. 그점들에 관해 한번 살펴 보자.

정보성과 전달력 사이의 균형 잡기

기본적으로 교차표는 범주형 변수(categorical variables)들의 관계를 나타내 주는 도구이다. 수치형 변수와 달리 범주형 변수는 비교적 소수의 범주(category) 혹은 계급(class)으로 구성되어 있다.

예컨대 성별은 남녀 2개, 대학 학년은 1,2,3,4학년 4개, 인종은 대체로 황인, 백인, 흑인 3개, 종교는 좀 많아서 흔히 불교, 유교, 개신교, 천주교, 유대교, 이슬람교,  기타 7개의 범주로 되어 있다. 설문조사에서 자주 사용되는 리커트 척도는 ‘매우 반대’, ‘반대’, ‘보통’, ‘찬성’, ‘매우 찬성’과 같이 5개의 범주로 구성된다.

수치형 변수라고 교차표를 적용할 수 없는 것은 아니다. 원래 측정은 수치형으로 했더라고 얼마든지 범주형으로 전환할 수 있다. 다만 수치형 변수를 범주화(그룹화라고도 한다)하면 정보를 잃는다.

예컨대 가구소득은 흔히 수치형 척도를 사용해서 측정된다. 설문조사 응답자에게 해당 가구의 평균적인 월별 수입을 만 단위까지 직접 기재하게 한다. 연구자가 거주지역(대도시, 중소도시, 농촌)에 따른 소득의 차이를 보여주고자 한다면, 거주지역별 소득 평균을 표나 그래프로 만들어 제시할 수도 있겠지만, 거주지역과 가구소득의 교차표를 만들어 그 두 변수들 사이의 관계를 보여줄 수도 있다. 그런 경우 가구소득을 범주화해야 교차표를 만들 수 있다. 수치형 변수를 사후적(측정후)으로 범주화하는 것이다.

물론 사람들이 가구 소득을 정확히 모르거나 알려주는 것을 기피하기 때문에 현실에서는 아예 정확한 측정을 포기하고,  ‘100만원 미만’, ‘100만원 이상 300만원 미만’, ‘300백만원 이상 500만원 미만’, ‘500만원 이상 700만원 미만’, ‘700만원 이상’처럼 범주를 제시하여 응답자가 선택하게 하기도 한다. 이는 원래 수치형으로 존재하는 변수를 범주형으로 측정하는 경우이다.

연구자는 교차표에 들어가는 각 변수(특징)의 범주를 몇 개로 할 것인가를 결정해야 한다. 성별과 같은 변수는 범주의 수가 2개로 고정되어 있지만 그것은 예외적인 경우이다. 수치형 변수의 볌주화에 있어서 당연히 그것은 중요한 선택이지만, 다수(3개 이상)의 범주로 측정된 범주형 변수인 경우에도 왕왕 재범주화는 중요한 결정이 되곤 한다.

2개의 변수로만 구성된 2차원 교차표의 경우는 비교적 여러 개의 범주들을 무리없이 사용할 수 있지만, 3개, 4개 혹은 그 이상의 변수들로 구성된 다차원 교차표의 경우 변수들의 범주 수는 과감히 줄일 수밖에 없다.

예컨대 성별, 교육수준, 출신계층에 따른 직업적 성취를 보고자 한다면, 성별 2개, 교육수준 2개(대졸, 대졸 미만), 출신계층 3개(상층, 중간층, 하층), 직업적 성취 4개(생산직, 서비스직, 사무직, 경영자)만으로 구성해도 48개의 칸(cell)을 갖는 복잡한 교차표가 된다. 조금만 디테일에 욕심을 내면 교차표 칸의 갯수는 금방 100개가 넘어가고 직관적 해독이 불가능한 교차표가 될 것이다.

꼭 기억해 둘 점은, 복잡한 교차표 분석을 수행하는 경우(그 경우 로그선형 모형 같은 수학적 모형과 그것을 구현하는 알고리즘이 패턴을 찾아내거나 관계를 드러내준다)를 제외하고 교차표는 직관적인 커뮤니케이션(의사소통)을 위해서 만든다는 사실이다. 직관적 커뮤니케이션! 이 점을 놓치면 교차표는 목표와 방향을 잃고 만다.

실제 사례를 하나 보자. 아래 표는 kiva.org라는 국제적인 소액대출(micro-financing) 사이트가 공개한 대출 데이터이다. 그것은 약 67만 건의 큰 데이터셋으로 아래는 MS 엑셀에 불러들여서 보기 편하게 숨기기(인스턴스 11부터 671,185까지는 숨겨져 있음)를 해놓은 결과이다.

<그림 1> Kiva.org의 대출 내력 데이터셋

이 데이터셋은 대출에 관련된 20 가지 변수를 담고 있는데, 이 그림에는 대출 일련번호, 대출신청액(funded amount), 대출액(loan amount), 대출이 시행된 활동(actor), 대출이 시행된 부문(sector), 대출 사용 용도(use), 대출이 시행된 국가(country)와 지역(region)이 보인다.

엑셀의 피벗테이블 기능을 이용하면 손쉽게 아래와 같은 교차표를 만들 수 있다.

<그림 2> 엑셀의 피벗 테이블로 작성한 교차표(범주화 전)

대출 부문(sector)과 대출액(loan amount)의 교차표인데, 대출 부문은 범주형(15개 범주) 변수이고 대출액은 수치형 변수(25 달러부터 10만 달러까지)이다. 대출액을 범주형으로 변환하지 않으니 좀 말도 안되는 교차표가 생성되었다. 숨기기 기능을 사용했기 때문에 열의 처음과 끝 부분을 볼 수 있지 그렇지 않으면 한꺼번에 교차표 전체를 보는 것은 애시당초 불가능했을 것이다. 이렇듯이 교차표 분석을 하려면 수치형 변수는 먼저 범주화를 해야 한다.

25 달러부터 10만 달러까지 분포하는 대출액을 몇 개의 범주로 어떻게 범주화할 것인가? 이 데이터는 소액 대출에 관한 것이다. 판단 기준이 무엇이냐에 따라 다르기는 하지만 5만 달러나 10만 달러를 소액으로 간주하기는 어려울 것이다. 5천 달러 정도면 소액 대출의 상한선으로 볼 수 있을 않을까? 그렇다면 5천 달러 이상을 하나의 범주로 묶고, 5천 달러 이하를 그룹화(엑셀 용어)하자. 그런데 급간(clas range)을 어느 정도 크기로 할까? 1천 달러로 하면 5개의 범주가 생성된다. 그런데 개도국에서는 500 달러도 큰 돈이다. 5백 달러를 급간으로 해서 10개의 범주를 생성하는 것이 어떨까? 그렇게 해서 생성한 교차표가 아래에 있다.

<그림 3> 대출액을 범주화하여 재작성한 교차표

15_by_11의 교차표가 생성되었다. 교차표에 사용된 변수들의 이름도 붙이고 단위도 표시했다. 이 표를 보면, 전체 대출 건수의 거의 절반이 500 달러 미만임을 알 수 있다. 만약 1,000 달러를 급간으로 삼았다면 그 사실을 모를 뻔 했다.

각 부문별 대출액별 빈도 분포를 보기 위해 행합계비율로 필드 표시를 바꾸어 보자.

<그림 4> Kiva.org의 마이크로파이낸싱 내력(2016. 3~2018.3): 대출규모별 대출건수의 대출 부문별 비율(%). 데이터 출전: Kaggle.com.

‘필드 표시’에서 행합계비율을 선택했더니 위의 교차표를 얻었다. 이 표를 잠깐 들여다보면, 전체 대출 건수의 49.24%가 500 달러 미만이었고, 74.89%가 1천 달러 미만이었다. 대출 부문별로는 개인 용도의 경우 500 달러 미만이 압도적으로 많았으며, 소매업, 운수, 식품, 예술 부문에서도 500 달러 미만의 대출이 절반 정도를 차지했다. 반면에 도매업, 연예, 교육 부문은 70% 이상의 대출이 500 달러 이상이었다.

이 사례에서 보듯이 교차표를 통해서 제시하려고 하는 것은 두(혹은 그 이상) 변수들의 관계에 대한 데이터 기반의 증거이다. 그것은 최대한 정확한 사실이어야 한다. 정보손실의 관점에서만 보면, 가장 바람직한 범주화(categorization)는 변수들의 최대한 상세한 범주를 유지하는 것이다. 변수의 측정을 지나치게 단순화하면–예컨대 범주의 갯수를 크게 줄이면–많은 정보 손실이 발생하게 된다.

그러나 정보손실을 줄이기 위해 디테일에 집착하면 정보전달에 있어 세 가지 문제가 발생할 수 있다. 1) 이상치(outliers), 측정 오류 등 같은 소음(noise)이 두드러져서 데이터로부터 신호(signals)를 판별해 내기 어려워질 수 있다. 2) 범주가 너무 많아져서 구조적 영(structural zeros)이나 극소수의 빈도만 있는 칸이 늘어나게 된다. 이 현상은 데이터가 적거나 데이터가 편중되어 있는 경우에 발생할 가능성이 높다. 3) 교차표의 칸이 너무 많아져서 교차표가 크게 복잡해지고 그에 따라 직관성이 떨어지게 된다. 

만약 위 사례에서 부문 대신 국가별 대출 분포를 교차표로 만들면, 나라 수만도 120 개국이 넘기 때문에 표를 만드는데 당장 문제가 생긴다. 행이 127개이고 열이 10개라면 교차표에는 총 1,270 개의 칸이 존재하기 때문이다. 그렇다면 분석에 포함될 나라의 수효를 적절하게 줄여야만 할 것이다. 한 가지 방법은 대륙별로 가장 대출 건이 많은 2-3개의 국가만 포함시키고 나머지 국가들은 모두 ‘기타’라는 잔여범주(residual category)로 처리하는 것이다. 그렇게하면 나라(country)는 한 열 개 남짓의 범주로 줄어들 것이다.

그런데, 만약 분석에 포함될 국가 수를 다섯 개 이하로 줄이거나 다섯 개 이하의 범주(‘대륙’이 하나의 사례가 될 수 있다)로 범주화하면 커다란 정보 손실이 발생할 가능성이 대단히 크다. 분석 목적에 따라 정도의 차이가 있겠지만 말이다. “아프리카, 아시아, 중남미, 기타”로 나누었다고 상상해 보라. 만약 분석 목표가 국가별 대출 분포라면 그런 범주화는 심각한 정보 손실을 수반할 것임에 분명하다.

이 사례에서 보듯이 교차표를 작성하는데 전달력에 집착하면 정보성이 떨어지고 정보성을 지나치게 우선시하면 전달력이 저하되는 득실교환(trade-off) 현상이 발생한다. 득실 교환 문제를 해결하는 일반적인 원칙은 없다. 그 때 그 때 연구자의 사려 깊은 대처가 필요한 문제이다.

교차표 작성에 고려되어야 할 한두 가지 원리만 추가하다면, 우선 완결성(completeness)을 들 수 있을 것이다. 교차표는 그것만 보아도 그 표의 속성과 내용을 충분히 파악할 수 있어야 한다. 직관적인 표제, 변수 이름, 그리고 출전, 수집일, 수집 기관 등을 담은 주석이 필요하다. 위 <그림 4>는 완결성이 높은 모습의 교차표이다.

다른 하나는 교차표가 창저적(彰著的, revealing)이어야 한다는 것이다. 즉, 교차표가 변수들의 관계에 관해 흥미 있는 사실을 드러내주어야 한다는 말이다. 예컨대 <그림 4>를 보면, 교육(education) 부문의 건당 대출액이 주택(housing)이나 제조업(manufacturing) 부문보다  상대적으로 크다는 사실이 흥미롭다.

교차표가 아무리 객관적이고 과학적인 의사소통 도구라고 해도 신기하고 예쁘다는 점이 나쁠 수는 없다. 문제는 그것 때문에 교차표가 원래 목표했던 의사소통에 실패한다면, 교차표는 목표와 방향을 잃은 셈이다.

이 간략한 포스팅이 교차표 혹은 표 작성이 도움이 되길 바란다(2019/03/17, 윤영민)

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.