생활데이타/이토록 쉬운 통계&R

이토록 쉬운 통계&R 12일차 - 차이를 설명하는 통계 개념 - 아낌없이 주는 의사 결정나무

개발의 여름 2018. 3. 10. 20:29

part 2

차이를 설명하는 통계 개념

아낌없이 주는 의사결정나무

  • 데이터의 차이를 확인하고 설명하기 위해선 조건부 확률, 조건부 평균을 구헤야하는 건 알지만, 방법을 생각하는 건 참 어렵습니다.
  • 관심변수는 하나밖에 없다지만, 설명 변수는 여러개일 수도 있어서 도무지 어떤 변수를 어떻게 활용해야할지 막막합니다.
  • 그러나 너무 걱정할 필요는 없습니다. 통계학자들이 데이터를 효과적으로 분석히기 위한 많은 도구를 만들어 놨으니까요.

모자이크 그림

  • 의사 결정 나무 모현을 살펴보기 전에 분할 정복 전략을 살펴 봅시다.
  • 전체 데이터를 한눈에 파악하고 차이를 잡아내는 것은 어려운 일입니다.
  • 그래서 데이터를 여러 개의 작은 부분으로 쪼개고, 나눈 부분별로 분석하는 방법을 분할정복(Divide and conquer) 이라고 합니다.
  • 분할 정복 개념을 살펴보기 위해 목숨이 위태로운 비극정인 상황 속에서도 여자와 어린 아이들은 먼저 구한 이야기로 깊은 감명을 준 타이타닉 호의 인명 피해 데이터를 한번 살펴 봅시다.


  • 타이타닉 호에는 2,201 명이 타고 있습니다. 빙산에 부딪친 타이타닉 호는 침몰했고 711명만 살아남았습니다. 이 중에는 남자도 있고 여자도 있고 성인도 있고 아이도 있었습니다. 비싼 돈을 주고 1,2 등석에 탄 사람, 3등석에 탄 사람 그리고 선원도 있었습니다.
  • 2,201명의 승객을 좌석등급, 성별, 연령 구분에 따라 정리하고 생존 여부를 데이터로 정리했습니다. 변수가 4개라서 단순한 교차표로 표현하긴 어렵지만 교차표를 묶어서 정리해봤습니다.
  • 교차표를 보면 연령, 성별, 좌석 등급에 따라 생존자와 사망자 수를 확인할 수 있습니다. 예를 들면, 1등석에 탄 성인 여자 중에서 140명은 생존했고, 4명은 사망했습니다. 선원은 모두 성인이며 그중 남자는 670명이 사망하고 192명만 살았습니다.
  • 이렇게 교차표에서 좌석등급, 성별, 연령에 따라 몇 명이 생존했고 사망했는지 확인할 수 있습니다.
  • 그렇지만 역시 숫자로 하나하나 표현하는 것은 데이터를 한눈에 보기가 어렵기 때문에 그림으로 표현해 봅시다.


  • 사각형의 폭은 좌석등급에 타고 있던 사람들에 수에 비례에서 결정됩니다.
  • 그림만 봐도 3등석 탑승자와 선원이 1, 2 등석 탑승자보다 많다는 것을 확인할 수 있습니다. 이렇게 큰 사각형을 좌석 등급에 따라 작은 사각형으로 나눈 다음, 다시 각 등급을 나타낸 사각형을 성별에 따라 가로로 2등분합니다.
  • 생존 여부에 따라 사각형을 가로로 나누고 생존자는 파란색, 사망자는 회색으로 표현해 보겠습니다.
  • 회색과 파란색을 묶은 총 16개의 사각형들은 좌석등급, 성별, 연령 구분의 조합으로 만들어진 작은 그룹들입니다.
  • 각 그룹에서 파란색 상자의 비율이 높으면 생존자가 더 많고, 회색의 비율이 높으면 사망자가 더 많은 것을 의미합니다.
  • 전해 듣던 대로 여자와 아이들 그리고 좌석등급이 높은 사람들의 생존율이 확연히 높은 것을 눈으로 확인할 수 있습니다.
  • 그러나 한가지 의문이 남습니다. 이게 최선일까요? 예를 들면, 3등석 여자 승객을 살펴보면, 아이와 성인의 생존율에 큰 차이가 없습니다. 그 두 사각형을 합쳐도 큰 문제가 없죠.
  • 만약 나눠진 그룹들끼리 큰 차이가 없다면 굳이 나눠서 설명할 필요가 없을 겁니다. 그렇다면 두 그룹의 차이를 보다 명확하게 볼 수 있는 방법은 없을까요? 바로 이떄 필요할 것이 의사결정나무 모형입니다.

의사결정나무 모형

  • 히스토그램이나 막대그래프를 그려보면 관심 변수 속 관측치들이 서로 다른 값을 가지는 것이 보입니다. 그리고 데이터 분석을 통해 그 차이를 다른 변수들로 설명하려고 합니다.
  • 여러개의 설명 변수는 다양한 조건을 만들고 이 조건에 따라 관심 변수가 차이가 있다는 것은 확인할 수 있지만, 변수가 많이질수록 가능한 조건의 수도 너무 많아집니다.
  • 이를 설명하기 위해서 시작한 분석인데, 큰 차이도 없는 조건들까지 다 살펴보는 것은 무의미합니다.
  • 앞서 모자이크 그림의 예제와 같이 타이타닉 호 탑승자의 생존율의 차이를 설명하기 위해서 세 개의 설명 변수로 조합 가능한 16개의 조건을 모두 살펴볼 필요는 없다는 것이죠.
  • 그래서 휼륭한 통계학자들은 모든 설명 변수가 아니라 중요한 변수들만 선택해서 차이를 설명하는 다양한 통계 모형(Statistical Model) 을 만들었습니다.
  • 모형의 알고리즘을 이해하는 것은 어렵지만, 원리를 이해하고 잘 활용하면 손쉽게 정보를 얻을 수 있습니다. 그중에서 직관적으로 이해할 수 있는 의사결정나무 모형(Decision tree) 에 대해 살펴봅시다.
  • 의사결정나무가 가지를 뻗는 방식을 그림으로 살펴보면 다음과 같습니다.


  • 예를 들어 초등학교에서 안경을 쓴 학생의 비율이 30%라고 합시다. 학년을 기준으로 고학년과 저학년을 나눠봤더니, 고학년 중에서 안경 쓴 학생의 비율은 29% 였습니다.
  • 반면, 성별을 기준으로 나눠봤더니, 남학생들의 비율은 40% 여학생들의 비율은 20%가 되었습니다. 그럼 '학년'과 '성별' 중에서 어느 변수가 '안경을 쓸 확률'을 더 잘 설명할까요?
  • 당연히 더 큰 차이를 만들어 내는 '성별'입니다
  • 의사결정나무 모형은 이렇게 그룹끼리 더 큰 차이를 만드는 변수를 찾아줍니다. 심지어 한 번이 아니라 계속해서 가지를 뻗고, 또 변수를 찾습니다.


  • 최적의 조건으로 나뉜 각각의 그룹에서 또 다시 조건을 찾습니다. 더 작은 2개의 그룹을 만들 최적의 조건을 찾으면, 전체 관측치를 더 잘게 나누죠.

  • 그냥 나눠지는 것이 아니라 더 큰 차이를 보이는 그룹별로 나누어 차이는 점점 벌어집니다.

  • 그리고 이후 적절한 순간이 오면 가지치키를 해서 의미 없는 잔가지를 덜어내죠.

  • 타이타닉호에 탑승했던 2,201명 중 생존율이 높았던 사람들은 누구일까요?

  • 앞서 모자이크 그림에서 다뤘듯이 타이타닉 호의 탑승자들을 좌석등급, 성별, 연령으로 구분해서 16개의 그룹으로 나눌 수도 있겠지만, 굳이 복잡하게 16개 그룹을 다 쓸 필요는 없습니다.

  • 이번에는 좀 더 간단하게 분석 도구 R에서 구현된 의사결정나무 모형을 써써 최적의 조건을 찾아보겠습니다.


  • 의사결정나무 모형이 찾은 최적의 조건은 '성별=남자'입니다.
  • 이조건과 일치하는 사람들은 왼쪽으로, 나머지는 오른쪽으로 이동합니다.
  • 제일 왼쪽 남자 어름 그룹은 생종율이 20%로 가장 낮네요. 이 이후로 나무는 더 이상 가지를 뻗지 않았습니다. 더 이상 가지를 뻗어 봤자 큰 차이가 없다고 판단한 것입니다.
  • 의사결정나무 모형은 3개의 설명 변수로 나눌 수 있는 16개의 그룹을 모두 만드는 대신 5개의 그룹을 만들었습니다.
  • 남자 어른의 생존율은 20%로 가장 낮았고 1, 2등석의 여자와 여자 선원, 아이의 생존율은 93%, 100%로 매우 높은 것을 보여줍니다. 당연히 더 많은 그룹을 쓸수록 더 세부적인 생존율 차이를 확인할 수 있겠지만, 의사결정나무 모형은 의미 있는 차이를 보여주는 5개의 그룹만으로 생존율의 차이를 효율적으로 나타냈습니다.
  • 이를 활용해 여러 작은 그룹들을 만들고 그룹에 포함된 관측치들이 어떤 확률을 계산했죠. 바로 '조건부 확률'입니다.
  • 비록 의사결정나무 모형 자체를 구현하는 알고리즘은 상당히 복잡하지만, 결과는 직관적이고 이햐하기가 쉽죠. 통계학 때문에 통계를 두려워할 필요는 없습니다.
  • 이처럼 유용한 도구를 잘 사용하고 좋은 알고리즘을 만든 통계학자에게 감사한 마음만 가지면 됩니다. 다음으로는 조금 오래된 또 다른 통계학자들의 노력의 산물을 살펴 봅시다.