2017 대선 후보 지지층 군집분석

$\newcommand{\argmin}{\mathop{\mathrm{argmin}}\limits}$ $\newcommand{\argmax}{\mathop{\mathrm{argmax}}\limits}$

대선까지 얼마 남지 않은 지금이다. 근 몇 년간 이보다 많은 사람들이 적극적으로 관심을 가진 선거가 과연 있었을까 싶다. 이 때문인지 타 후보에 대한 비방, 지지층간의 갈등과 모함 역시 이전 선거와는 궤를 달리할 정도로 적극적(?)이어 보인다. 특히나 서로 다른 후보의 지지층이 서로를 비난하는 모습은 그 정도가 지나치기도 하여 국론 분열에 대한 우려까지 자아내기도 한다.

후보자의 지지율과 그 추세, 지역, 연령대별 지지율에 대한 정보는 여론조사를 통해서 쉽게 열람할 수 있지만, 각 후보를 지지하는 지지자/지지층이 어떤 성향을 가지고 있는 지에 대해서는 쉽게 파악하기 어렵다. 그저 직관적으로 ‘이 후보를 지지하니 이런이런 사람이겠지’라고 짐작할 뿐이다. 이에 객관적으로 후보의 지지층의 성향을 파악할 수 있다면 서로에 대한 어림짐작으로부터 비롯한 비난(‘OO후보 지지하는 인간은 고령층 적폐세력 옹호자더라!’, ‘OO후보 지지자는 수도권 젊은이 뻘갱이라더라!’ 등등의 원색적인 비난 등)이 줄어들지 않을까 싶어 지지층 군집분석을 기획해 보았다.


분석 결과 이전에 알립니다

  1. 후보의 성향에 대한 분석이 아니다. 후보를 지지하는 사람들의 성향에 대한 분석이다. 이 둘에는 분명한 차이가 있다.
  2. 또한 이는 후보를 지지하는 사람들의 전반적인 성향에 대한 정보를 제공하는 것이지, 지지자 개개인이 반드시 이러한 성향을 가진다는 의미를 가지지는 않는다.
  3. 모든 데이터는 중앙선거여론조사심의위원회에 결과 등록된 여론조사로, 이는 네이버 제 19대 대선 페이지에서 가져왔다. 결국 각 데이터포인트는 설문에 대한 응답 백분율(%)이다.
  4. 크게 네 가지 종류의 변수를 사용했다. 보다시피 4/7~21에 있었던 여론조사를 바탕으로 만들어진 변수이다.
    1. 정책 성향 관련
      • 일자리 정책 의견 (04.16 조선일보, 칸타퍼블릭) - 민간이 주도해야 한다고 응답한 퍼센티지
      • 사드 배치 찬반 (04.16 조선일보, 칸타퍼블릭) - 반대한다고 응답한 퍼센티지
    2. 연령대 관련
      • 세대별 ‘호감이 간다’ 응답 비율 (04.07 한국갤럽)
    3. 지역 관련
      • 지역별 후보 지지율 (04.21 동아일보, 리서치앤리서치)
    4. 지지 후보 선택 기준
      • 지지후보 결정에 중요한 기준은? (04.18 서울신문, YTN, 엠브레인) - ‘능력과 정치 경험’이라고 응답한 퍼센티지와 ‘도덕성과 청렴성’이라고 응답한 퍼센티지
      • 유승민 후보, 심상정 후보에 대한 조사가 없어서 3자 클러스터링에만 사용되었다.
  5. 데이터포인트를 클러스터링하는 데에는 계층적 클러스터링, 그 중에서도 agglomerative 방식을 사용했다. 클러스터링 옵션을 더 자세히 설명하자면 이렇다:
    • 계층적 클러스터링을 위해서는 각각의 변수값(여기서는 연령대별 지지율 등등) 사이의 유사도를 계산하는 방법인 ‘metric‘과 각 샘플(즉, 여기서는 각 대선후보의 지지층) 사이의 클러스터링 방식인 ‘linkage‘을 설정해주어야 한다.
    • Metric으로는 코사인 유사도(cosine similarity)를 사용했다. 이는 응답 값의 차이 대신 응답 패턴의 유사성만을 보기 위해서이다. 코사인 유사도를 사용하면 지지율과 같이 패턴이 비슷해도 값에는 차이가 클 수 있는 데이터에서 패턴의 유사도를 계산할 수 있다. (figure 출처)
      cosinesimilarity.png
    • Linkage로는 Ward’s minimum variance method를 사용했다. 그냥 많이들 사용하는 방식이라고 해서 써봤다.
    • 이 외의 metric과 linkage는 이 도큐멘테이션을 참고하면 좋다.
    • 클러스터링 결과로 그려진 수형도(tree)에서 가지가 짧을수록 서로 유사한 샘플(지지층)이라고 해석할 수 있다.


5자 지지층 클러스터링 결과

1. 정책 지향

170428_1.png

일자리 정책과 사드 배치 찬반에 대한 의견에서 정책 지향에 따라 지지층의 성향이 극명하게 나뉘는 것을 볼 수 있다. 문재인, 심상정 후보의 지지층이 정책성향이 매우 유사하고, 안철수, 유승민, 홍준표 후보의 지지층 정책성향이 매우 유사하다.


2. 연령대별 호감도

170428_2.png

연령대별 호감도로부터 주요 지지층의 연령대를 엿볼 수 있다. 20~40대과 50대 이상의 호감도가 뚜렷하게 구별됨을 확인할 수 있으며, [문재인, 심상정] 후보, [안철수, 유승민] 후보의 지지층의 연령대가 비슷할 것이라 추측할 수 있겠다. 홍준표 후보 지지층이 다른 후보 4명에 비해 유독 튀어보인다.


3. 지역별 지지율

170428_3.png

지역별로는 좌와 우 진영이 확실하게 구별되는 듯 하다. (현재는 여야랄게 없지만) 야권과 범여권의 ‘텃밭’에 따라 지지층이 확연히 구별되어 보인다.


3자 지지층 클러스터링 결과

언론에서 뜨거운 감자인 세 후보의 지지층 정보만으로 다시 클러스터링을 해보았다. 클러스터링 옵션은 위와 같다. 다만 지지후보 선택 기준 변수가 추가되었다.


1. 정책 지향

170428_4.png

굳이 셋 만을 비교한다면 안철수 후보를 지지하는 사람들의 정책 지향은 홍준표 후보 지지자의 것과 유사도가 높게 나타난다.


2. 지지후보 선택 기준

170428_5.png

지지후보 선택 기준에 있어서는 문재인 후보 지지층과 안철수 후보 지지층이 매우 유사하다.


3. 연령대별 호감도

170428_6.png

연령대별 분류에서도 문재인 후보 지지층과 안철수 후보 지지층이 유사하다. 안철수 후보 지지층은 50대 이상에서도 꽤 나타난다는 것이 차이라면 차이.


4. 지역별 지지율

170428_7.png

지역별 분류에서도 문재인 후보 지지층과 안철수 후보 지지층이 유사하다.


종합/결론

  • 정책 지향성에 있어서는 [홍준표, 유승민, 안철수] 후보군, [문재인, 심상정] 후보군으로 나눌 수 있다. 조사 대상이 두 가지 사안 뿐이었다는 한계가 있으나 사드 배치(외교, 안보)와 일자리 정책(청년, 복지, 경제)이라는 핵심 정책에 대한 조사였으므로 지지층 성향을 파악하는 데에는 충분하지 않았나 싶다.
  • 연령별 분류에 있어서는 [문재인, 심상정] / [안철수, 유승민] / [홍준표] 후보군으로 나눌 수 있다.
  • 지역별 분류에서는 [문재인, 안철수] / [홍준표, 유승민] / [심상정] 후보군으로 나눌 수 있다.
  • 문재인 후보 지지층은 전통적인 민주당계 지지층의 모습을 보여주는 듯 하다. 지역이 그러하고 연령이 그러하며 정책지향성이 그러하다. 마찬가지로 홍준표 후보 지지층은 전통적인 한나라-새누리당계 지지층의 모습을 보여주는 듯 하다.
  • 안철수 후보 지지층은 지역, 연령에 있어서는 진보로 분류되는 그룹이나, 속한 그룹과 별개로 보수적인 가치를 지지하는 모습을 보여준다. 뭇 언론에서 칭하는 것 처럼 이를 ‘중도’라 말할 수도 있겠다.

분석에 사용한 데이터 및 분석 과정과 여론조사 데이터를 긁어모으는데 사용한 스크립트는 각각 여기여기에 공개해 두었다. 실시간으로 계속해서 쌓이는 데이터여서 현재는 당시 분석에 사용한 데이터의 위치가 바뀌었거나 더 이상 접속 불가능할 수도 있다.