고급통계모형/의사결정tree

의사결정 트리, CART, CHAID

학위논문통계 2014. 6. 29. 00:09

 

 

오늘은 의사결정 Tree(decision tree) 모형에 대해서 이야기를 해보죠. 이 분석은 원래 사회과학쪽에서 먼저 시작했다고 합니다. 그러다가 통계학 쪽에서 1980년대 Breiman 등이 “Classification and Regression Trees"라는 책을 쓴 후 많이 사용하게 되고 이후 기계학습 분야에서도 쓰이는 모양입니다. 하여간 이 트리 모형은 Brieman 책이름을 따 CART라고도 합니다. SPSS에서는 CHAID라고 합니다. CH가 카이제곱인데 이게 아마 교차분석에서 나오는 카이제곱 검증과 관계가 있을 겁니다. 정확한 알고리즘을 몰라서 확신을 못하겠지만 트리모형이 교차분석 개념과 유사한 점이 많습니다.

 

 

흔히 우리나라 정치인 지지나 정당 지지에 관해서 이야기할 때 빼 놓을 수 없는 것이 지역과 세대차이입니다. 그러나 성별에 관해서는 별 이야기를 안하죠. 즉, 지역이나 세대, 즉 연령에 따라 지지하는 정치인이나 정당이 매우 다르지만 성별에 따라서는 크게 차이가 없다고 보는 것이죠.

 

이게 우리의 상식인데 이걸 통계적으로 어떻게 분석할까요. 만약 지역이나 세대 차이에 따라 지지 정당이 다르다면 지역과 세대 중 어떤 변인이 더 뚜렷하게 차이가 날까요? 아래 그림을 한번 보시죠, 트리로 했을 경우 가상의 결과물입니다.

 

 

아래는 민주당지지에 관한 세대와 성별간의 그림을 한 번 보시죠. 이해를 돕기 위해 마치 연속형 그래프 처럼 그렸습니다.

 

 

 

 

두 개의 민주당 지지 그래프를 보고 우리는 세대차이가 민주당 지지를 잘 설명하고 성별은 잘 설명하지 못한다는 것을 알 수 있습니다. 즉 민주당 지지를 설명하는 데 있어 세대차이가 성별보다 더 중요한 변인이라는 것이죠.

 

 

우리의 상식이나 그래프를 본 직관은 그런데 이걸 객관적인 값으로 이야기 해 줄 수 있는 측정치가 있을가요?

먼저 성별은 별 설명력이 없는 변인입니다. 그런데 그래프는 평평합니다. 반면에 세대 차이 지지율 그래프는 한쪽에 확 쏠려 있습니다. 그런데 우리는 엔트로피 이론에서 분포가 평평할 수록 엔트로피가 높다는 것을 알고 있습니다. 즉 세대차 민주당 지지율 분포는 엔트로피가 낮고, 성별 민주당 지지율 분포는 엔트로피가 높다는 것을 알 수 있습니다.

 

 

다른 관점에서 한번 보죠. 대선시 민주당 지지에 대해서 교차분석해서 나온 가상의 결과입니다.

 

 

변인

분류

민주당지지

민주당반대

카이제곱

p 값

지역

전라도

85%

15%

15.215

0.000***

비전라도

30%

70%

세대

젊은층

70%

30%

10.783

0.007**

노인층

30%

79%

성별

남자

60%

40%

3.198

0.134

여자

40%

60%

 

 

지역별, 세대별, 성별로 민주당 지지 비율과 민주당 반대비율에 대해 교차분석을 하였는데 여기서 p 값이 작을수록 뚜렷한 차이를 보이는 것입니다. 그래서 지역별로 가장 차이가 뚜렷하게 나고, 그 다음이 세대별, 성별의 순으로 차이가 뚜렷하게 난다는 것을 알 수 있습니다. 아마 그래서 트리 만들때 CHAID라는 알고리즘이 나온 것 같습니다.

 

 

또 한가지. 세대차 지지율 그래프에서 알 수 있는 것은 세대차의 범주, 젊은 층과 노인층에서 각 범주안에서는 매우 동질적이라는 것입니다. 젊은 층에서도 새누리당 지지자가 있겠지만 상당부분 민주당 지지자고 노인층에서도 민주당 지지자가 있겠지만 상당수가 새누리당 지지자라는 것이죠, 그래서 각 범주 안에서 집단이 동질적일 수록 민주당 지지를 설명하는 중요한 변인이 됩니다.

 

 

한편 성별에서는 남자 집단이든 여자 집단이든 각 범주 집단안에 민주당 지지자와 새누리당 지지자가 혼재되어 있다는 것이죠, 그래서 각 범주 안의 집단이 이질적일수록 민주당 지지의 설명력이 떨어진다는 것이죠.

 

 

그래서 의사결정 트리 모형은 종속변수를 설명하는 가장 중요한 변인으로 집단을 둘로 나누고, 그 다음에는 나누어진 집단에서 또 이 집단을 설명하는 가장 중요한 변인으로 두 집단으로 나누고 이런 식으로 계속 내려가면서 나누는 분석을 의미합니다.

 

 

이런식으로 작업을 하면 국민 중에서 어떤 층이 가장 민주당을 선호하는지, 충성 지지 집단이지 드러납니다. 위의 예에서 전라도 노인층이 민주당 지지가 90%로 가장 충성적인 집단임을 알 수 있고, 비전라도 노인층의 여성이 10%로 가장 반민주당 성향임을 알 수 있습니다.

 

 

경영 마케팅의 입장에서는 자기 제품의 가장 충성적인 집단과 가장 싫어하는 집단 등 소비자 층을 세분하하여 타켓 마케팅을 할 수 있습니다.

 

 

만약 트리를 쓰지 않고 지역별, 세대별, 성별로 세분해서 지지율을 구해 표로 정리할 수 있습니다. 즉 삼원분석으로 하면 됩니다. 그러면 2*2*2=8가지가 나옵니다. 그러나 각 변인의 범주가 많아지고, 고려하는 변인수가 많아지면, 즉 연령대도 30대, 40대, 50대,...90대 이상으로 범주가 늘어나고, 종교, 학력 등 분석 변인이 늘어나면 세부적인 지지율을 구하면 엄청나게 많은 지지율값이 나옵니다. 그러면 이 복잡한 값을 보면 정신이 없어 중요한 결과를 얻기 힘듭니다. 그러나 위의 트리 모형을 하면 체계적인 파악이 가능합니다.

 

 

 

위에서는 분석변수인 설명 변인을 범주형으로 하였는데 이젠 연속형인 경우를 한번 보죠. 다음은 S-plus 메뉴에 있는 분석 그림입니다. 차의 무게와 마일리지간의 관계를 트리모형으로 분석한 것입니다. 차의 무게가 무거우면 마일리지가 떨어지겠죠.

 

 

 

 

그림을 보면

 

 

무게< 2280 ===> 마일리지가 34,

2280<무게<2567.5 ===> 마일리지가 28.89

2567.5<무게<2747.5 ===> 마일리지가 25.62

이런식으로 파악이 가능합니다.

 

 

시간이 나면 다음에 조금 더 쓰죠,