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

이토록 쉬운 통계&R 13일차 - 차이를 설명하는 통계 개념 - 점심 뭐 먹지?(분산분석)

개발의 여름 2018. 3. 12. 12:57

part 2

차이를 설명하는 통계 개념

점심 뭐 먹지? (분산분석)

분산분석? 3개 이상의 집단에 대한 평균차이를 검증하는 분석 방법
  • 회사들이 최근에는 데이터 분석에 많은 관심을 보이고 있습니다. 사람들이 더 매력적인 콘텐츠로 옮겨가는 속도 만큼 회사는 빨리 대처를 해야 하기 떄문입니다.
  • 문제는 사람들이 뭘 좋아할지를 모른다는 것이죠. 도무지 예측을 할 수가 없는 세상입니다.
  • 일단 여러 개를 만들고 사람들의 반응을 살피는 것이죠. 이 과정을 보통 AB 테스트라고 합니다. 광고 배너를 A안과 V안 두 개로 나눈 다음 랜덤으로 사람들에게 노출하고, 어느 쪽 배너가 더 관심을 끄는지 사람들의 반응을 분석하는 테스트 방식 입니다.
  • 수십 년 전 통계학자들은 이미 비슷한 경험을 했고 이 상황에서 아주 적합한 이론들을 만들어 놨습니다. 서로 다른 비료를 뿌리고, 화합물의 원료 비율을 수없이 테스트 하면서 분산분석(ANONA, Analysis Of VAriance) 이라는 아름다운 이론을 만들었습니다.

ABCDEF 테스트

  • 성능 테스트 데이터를 살펴 보겠습니다. 여기 6개의 살충제 A, B, C, D, E, F 가 있습니다.
  • 어느 살충제가 효과가 좋은지 살펴보기 위해서 실험을 하기로 했습니다.
  • 똑같은 수의 벌레가 있는 6개의 방에다가 살충제를 하나씩 뿌리고 몇 마리가 죽는지 확인하는 것입니다.
  • 살충제 하나당 12번의 실험을 반복했습니다.


  • 이번에는 기억에서 가물가물한 상자그림을 그려 보려 합니다. 우리의 관심 변수는 각 살충제를 뿌렸을 떄 '죽은 벌레 수' 입니다.


  • 살충제 A, B, F는 상자그림이 전반적으로 위쪾에 떠 있고, 살충제 C, D, E는 아래쪽에 깔려 있네요.
  • 과연 살충제에 따라 죽은 벌레 수의 차이가 정말 의미 있는 차이일까요?

분산과 분산분석

  • 6개의 살충제 성능 차이를 분석하기에 앞서 잠깐 공부벌레 여섯 친구의 성적을 살펴보겠습니다.
  • 먼저 여섯 친구들이 중간 시험에 받은 점수를 수직선에 표현해 보겠습니다.


  • 파란색 친구들은 집에서 혼자 공부하고, 회색 친구들은 학원을 다닌다고 합니다.
  • 혼자 공부하는 친구들의 평균은 370, 학원을 다니는 친구들의 평균도 370이 나왔습니다. 정확히 전체 평균과 똑같네요.
  • 친구들의 점수 차이는 개개인의 차이일 뿐 학원을 다니는 혼자 공부하든 상관이 없다고 볼 수 있습니다.
  • 하지만 다음과 같은 상황에서는 어떨까요?


  • 회색 친구들은 학원을 다닌다고 합시다. 물론 전체 평균은 변함없이 370입니다.
  • 그런데 혼자 공부하는 친구들의 평균점수는 380점이고, 학원을 다니는 친구들의 평균 점수는 360입니다.
  • '공부 방법'이라는 변수 혹은 조건에 따라 조건부 평균이 다르네요.
  • 혼자 공부하는 세 친구와 학원을 다니는 세 친구를 두 그룹으로 나눠서 평균 점수에 배치하면 그 차이는 더욱 확인히 드러납니다.


  • 혼자 공부하는 세 친구들의 평균 점수가 20점이나 높은 것을 봐서 '혼자 공부하는 것이 고득점과 관련이 있다'고 볼수 있습니다.


  • 요약하자면, 변수를 조건으로 활용하면 차이에 대한 이유는 어느정도 확인할 수는 있지만, 그럼에도 알 수 없는 개인차가 존재한다는 것 입니다. 이것이 분산분석의 핵심입니다.
  • 설명변수는 관측치들이 왜 다른지에 대한 궁금즐을 일부분은 해소해주지만, 끝내 알 수 없는 부분도 있다는 것입니다. 그렇다면 설명 변수가 관측치들의 차이를 얼마나 자세히 설명할 수 있는가에 따라 설명 변수의 유용성을 판단할 수 있습니다. 설명 변수가 우리의 궁금증을 충분히 해결했는지 아닌지가 기준이 되겠죠.
  • 다시 살충제의 성능을 실험하는 방으로 돌아가 보겠습니다.


  • 72번의 실험에서 평균적으로는 9.5마리의 벌레들이 죽었습니다.
  • 그러나 C, D, E 살충제를 사용했을 때 죽은 벌레 수는 채 5마리가 안되고 살충제 A, B, F 를 뿌렸을 떄는 평균적으로 15마리씩 거뜬히 죽었습니다.
  • 물론 살충제 D로 12마리를 죽이기도 했고 살충제 B가 7마리밖에 못죽인 실험도 있지만, 12번의 실험 결과에서 대체적으로 나온 숫자에 비하면 큰 영향을 주지 못합니다.
  • 72개의 숫자로 분산을 계산하면 51.9가 나옵니다. 각 숫자에서 평균 9.5를 빼고 제곱한 다음 모두 더해 (72-1)로 나눠서 계산 했죠.
  • 분산 분석은 (71-1)로 나누기 전의 제곱합을 사용해서 설명할 수 있습니다.
  • 72개의 모든 숫자에서 똑같이 전체 평균 9.5를 뺴서 제곱하고 더하면 3,684가 나옵니다.
  • 이 숫자의 정확한 의미를 알기 어렵지만, '죽은 벌레 수'라는 변수의 차이의 정도로 생각할 수 있습니다.
  • 편의상 '죽은 벌레 수'를 y라고 하면 다음 처럼 수식으로 표현할 수 있습니다.


  • 이번에는 또 다른 제곱합을 계산 하려고 합니다.
  • 관측치들의 실제값이 아니라 살충제라는 자신이 속한 그룹의 평균값으로 대체했습니다. 이 새로운 72개의 값에서 모두 전체평균 9.5를 뺴고 다시 제곱합을 계산 합니다.
  • 특이한 것은 같은 살충제 12개의 관측치는 모두 같은 값을 가지게 된다는 것이죠. 실제로 계산 하면 2,669가 되고 그룹평균으로 바뀐 변수 이름을 yg라고 하면 역시 다음처럼 수식으로 표현할 수 있습니다.


  • 이제 마지막 제곱합 입니다. 실제값과 그룹평균의 차이를 제곱하고 합하는 것이죠.
  • 계산은 조금 복잡하지만 수식으로 표현하면 다음처럼 간단하게 나타낼 수 있습니다. 값은 1,015가 됩니다.


  • 조금씩 다르긴 하지만 지금까지 3개의 제곱합을 계산했습니다. 그런데 세 제곱합 사이에는 신묘한 관계가 있습니다. 두 번쨰와 세번쨰 제곱합을 더하면 정확하게 첫 번쨰 제곱합과 같죠!
3,684 = 2,669 + 1,015
  • 믿기지 않겠지만, 실제로 계산하면 정확히 일치하는 것을 확인할 수 있습니다. 그렇다면 숫자말고 수식으로 살펴 볼까요?


  • 첫 번째 제곱합은 우리의 관신 변수의 분산, 바로 정보량입니다. 그런데 이 분산은 정확히 2개로 나눠지는 데요 두 번쨰 제곱합이 의미하는 그룹에 따른 차이와 세번째 제곱합이 의미하는 알수 없는 개인차 입니다. 두 번째 제곱합은 각 관측치의 실제값 대신 그룹의 평균을 사용해서 계산했습니다. 즉, 전체 평균에 비해서 각 그룹의 평균이 얼만큼 차이가 큰지를 계산하는 것이죠.
  • 그럼 이 값은 관심 변수의 정보 중에서 그룹에 따른 차이로 설명할 수 있는 부분이 됩니다. 세 번째 제곱합은 다릅니다. 실제값에서 그룹 평균을 뺐는데요. 바로 그룹 차이로는 설명할 수 없는 나머지 부분을 의미합니다. 각자 의미를 가지고 있는 3개의 제곱합이 실은 이렇게 아름다운 관계를 가지고 있습니다.
  • 중학교때 배운 피타고라스의 정리 c^2 = a^2 + b^2과 닮은 것을 알 수 있습니다. 또 한 '데이터 공간(c^2)이 다른 변수들로 설명되는 공간(a^2)과 전혀 관련이 없어 알 수 없는 공간(b^2)으로 나눠진다' 라는 공간의 개념도 담겨 있습니다. 이와 같이 정보를 의미하는 관심 변수의 분산이 어떻게 분해되는지 살펴본다고 해서 분산분석이라는 이름이 붙었습니다.
  • 물론 이것이 분산분석의 끝은 아닙니다. 분산 분석의 목적이 무엇인가요? 그룹에 따라서, 콘텐츠에 따라서 결과에 충분히 큰 차이가 있는지 없는지를 판단하는 것이죠. 그런데 문제는 우리가 아직까지 '충분히 큰 차이'에 대한 개념을 배우지 못했다는 겁니다. 지금까지 계산한 세 제곱합으로 바로 판단할 수는 없습니다.
  • 물론, 관심 변수의 분산 중에서 글부을 나누는 역할은 한 설명 변수로 설명할 수 있는 부분이 크면 클수록 그룹에 따른 차이가 크다고 볼 수는 있겠지만, 도대체 얼마나 커야 할까요? 그 답은 이어지는 PART3에서 찾아봅시다.