간단한 ELO 레이팅

ELO 점수

[우리말 겨루기]에서 문제의 난이도를 어떻게 측정할 수 있을까? 가장 먼저 드는 생각은 “참가자들이 많이 틀리면 어려웠던 문제였던 거 아닐까?” 다. 얼추 맞는 얘기 같다. 그런데 더 생각을 해봐야 하는 부분은, 누가 틀렸느냐 하는 문제이다. 예컨대 달인이 3번 틀린 문제와 4등이 3번 틀린 문제가, 단지 오답이 3회였다고 해서 똑같이 어려웠던 문제일까? 아마 달인이 3번 틀린 문제가 더 어려운 문제였을 것이다. 이렇듯 문제의 난이도를 측정하는 일과 참가자의 실력을 측정하는 일은 밀접하게 연관되어 있다.

이런 관계를 일종의 작은 “시합”으로 보고, 체스 등에 사용되는 ELO 점수를 이용하여 문제의 난이도와 사람의 실력을 측정할 수 있다. ELO 점수는 실력에 대한 예상치로, 시합 결과에 맞춰 조정한다. ELO 점수의 핵심 아이디어는 예상치 못한 결과가 있으면 실력을 더 많이 조정한다는 것이다. 이미 이길 가능성이 높았다면 이긴 쪽이나 진 쪽이나 실력 예상치를 크게 바꾸지 않지만, 못하는 것처럼 보였던 사람이 이긴다면 실력 예상이 잘못된 것이라 보고 예상을 크게 바꾼다.

여러 “시합”을 통해 특정 참가자나 문제의 ELO 점수가 높은 것으로 드러나면, 참가자가 실력이 높거나, 문제가 어렵다고 생각하면 된다. 자세한 내용은 위키피디아를 참고하면 좋다.

퀴즈쇼에는 어떻게 적용할 수 있는가?

[우리말 겨루기]에 이런 알고리즘을 어떻게 적용할 수 있을까? 다양한 방법이 있겠지만, 이 글에서는 “시합” 하나가 참가자가 답을 말하려고 할 때마다 발생한다고 생각했다. 시도를 통해 참가자가 문제를 맞히면 참가자가 시합을 이긴 것이고, 참가자가 틀리면 시합에 진 것으로 간주한다.

ELO 점수는 다른 정보가 하나도 없을 때, 두 참가자의 실력이 같다고 가정한다. 그런데 퀴즈쇼는 ‘문제’와 ‘참가자’라는 구별된 두 진영이 있고, 두 진영의 ‘실력’이 다를 수 있다. 예를 들어 참가자들이 일반적으로 문제를 쉽게 푼다면, 참가자들의 ‘실력’이 문제의 ‘실력’에 비해 높은 것이다. 이런 상황이 실제 데이터에서 나타나는지를 확인해보자.

2015년 7월부터 2019년 12월까지 일반 참가자들이 참여한 회차에서 문제당 오답을 세었다. 문제의 ‘승률’은, 오차는 있겠으나 (오답)/(오답+문제 수)로 구할 수 있다. 보통 문제를 누군가는 맞히기 때문이다. 사람의 ‘승률’은 물론 1-(문제 승률)이다. 이런 방식으로 문제의 승률을 계산하면 42.8%라는 값이 나온다. 참가자의 ‘실력’이 문제의 ‘실력’보다 높은 것이다. 한편 이런 결과는 2018년부터 2019년 사이의 데이터로 구한 사람의 정답률 58%와 잘 일치한다 (100-58=42). 문제의 승률이 비교적 일정하다는 방증이다.

문제당 오답 수 히스토그램.

참가자와 사람의 같지 않은 승률은 문제와 참가자의 ‘실력’이 같지 않음을 보여주고, 따라서 처음 보는 문제나 참가자에 대해 다른 시작 ELO 점수를 부여해야 한다는 점을 시사한다. 일반적으로 ELO 점수는 1500점에서 시작하지만 두 집단의 실력이 다르므로, 문제의 시작 실력을 1475, 참가자의 시작 실력을 1525로 두면 위에서 계산한 것과 얼추 비슷한 문제 예상 승률이 나온다.

참가자 TOP 5

여기까지는 아무런 추가 정보가 없을 때 ELO 점수를 어떻게 부여해야 하는가에 대한 논의이다. 그러나 실제로 ‘경기’가 일어났으므로 이런 정보를 받은 이후에 어떤 참가자가 가장 실력이 높은지 계산할 수 있다. ELO 점수 업데이트 규칙에 따라 시도 하나를 경기로 보고, 시도 하나하나마다 문제와 참가자의 점수를 모두 업데이트했다. 순서는 앞 문제부터, ㄱ 위치 참가자부터 ㄹ 위치 참가자 순으로 업데이트했다1. 2016년 참가자부터 2019년 참가자를 대상으로 실력을 측정했고 다시 겨루기 회차나 연예인 특집 등등 특수한 회차는 제외했다. 모은 자료만으로 자물쇠 문제는 누가 틀렸는지 유추할 수 없어 분석에서 제외했다.

업데이트 결과 2016년부터 2019년에 걸쳐 가장 뛰어난 참가자 다섯은:

높이와 점수는 비례하지 않는다.

왕관을 씌운 참가자들은 달인 등극에 성공했다. 조성재 참가자는 다른 참가자들이 못 맞힌 문제를 맞혀서 방송 내 최종 점수는 1700점으로 대단히 높은 편은 아님에도 불구하고 높은 ELO 점수를 획득했다. 김지연 참가자는 미래의 달인이자 그 당시에도 실력이 있었던 유용재 참가자를 눌렀기에 점수가 높았다. 2. 정정임 참가자는 최종 점수가 2250점으로 상당히 높았다. 이처럼 ELO 점수가 달인 외에도 실력자들을 발굴하는 데 쓰일 수 있다.

ELO 점수와 방송상 점수가 차이가 있긴 하지만 상관관계가 아주 높기는 하다:

시간에 따른 실력 변화

다른 한편으로, 시간에 따라 재참가한 참가자의 실력이 변하는지를 확인해봤다. 2016년에서 2019년에 걸쳐 같은 이름이 2번 등장한 경우3를 찾아 ELO 점수에 따른 실력 변화를 측정했다. 다시 말하지만, 다시 겨루기 회차는 분석에 없어서 다시 등장한 많은 경우가 다뤄지지 않는다.

재참가한 이름이 있는 경우는 31개 있었다. 이들이 데이터에서 처음 출연했을 때와 다시 출연했을 때의 실력 변화를 살펴보면:

실력이 올라간 사람도 있고, 도리어 다시 출연했을 때 더 못해진 사람도 있었다. 전체적으로 모두 올라간다거나 모두 내려가는 등의 일관적인 경향은 보이지 않는다. 변화 자체에 대한 히스토그램을 그려보면:

대체로 사람들의 실력이 바뀌지 않는 것처럼 보인다. 변화의 평균 역시 이런 관찰을 뒷받침하는데, 재출연한 이름의 평균 실력 변화는 11점으로, 사실상 없는 것이나 마찬가지다. 한편 재출연하는 사람들은 평균 참가자보다 실력이 아주 조금 높지만 노이즈일 가능성이 높다 (평균 참가자는 1536점4, 재출연 참가자는 1553점으로 17점 차이이다). 발전하지 않은 사람의 비율 (점수가 감소한 사람의 비율)은 31명 가운데 14명, 45%이다. ELO 점수가 50점 이상 바뀌지 않은 사람의 비율은 71%로, 많은 사람이 별다른 실력의 변화 없이 참가하는 것으로 보인다.

분석의 한계

  • ‘시도’ 하나를 시합 하나로 상정한 것이 문제일 수 있다. 정말 어려운 문제는 아예 답이 떠오르지 않을 수도 있다. 아무도 답을 말하지 못했다가 초성까지 열려서 참가자가 드디어 답을 말하는 경우에, 해당 참가자는 정말 어려운 문제를 맞힌 것이겠지만 ELO 점수상으로는 평범하게 문제를 맞힌 것으로 친다. 데이터셋에 무응답에 대한 정보는 없어서, 무응답을 고려할 수가 없었다. 한편 동시다발적으로 여러 참가자가 답이 떠올랐을 수도 있지만 한 참가자만 점수를 얻어가는 경우도 많은데, 이런 경우 역시 늦게 떠올린 참가자에게 점수를 줄 수는 없었다. 뛰어난 참가자 다섯을 보면 모두 실력자이니 지금 계산한 ELO 점수가 아주 틀린 것은 아니겠지만, 점수와 실력의 체감과는 거리가 있을 수 있다.
  • 2017년 초와 2016년 회차들은 문제 숫자가 2020년 지금처럼 30개가 아니고 28개이거나 25개인데, 코드를 돌릴 때는 에러가 안 났지만 제대로 처리가 된 건지는 의문이다. 비슷한 맥락에서 이런 결과를 뽑는 데 쓰이는 코드가 적지 않기 때문에 코드에 문제가 있을 가능성이 있다. 혹은 데이터에 오타가 있을 수도 있다.
  • 앞서도 얘기했지만 ELO 점수를 업데이트하는 데 쓰는 순서가 결과에 영향을 상당히 줄 수 있다. 그런데 순서 문제는 정말 어떻게 해야 할지 모르겠다…
  • 문제와 사람의 시합으로 봤는데 [우리말 겨루기]의 본질은 사람 간의 시합이지 문제와의 시합이 아니다. 그래서 글에서처럼 계산한 ELO 점수로 사람 사이에 이길 확률을 계산해서는 안 된다. ELO를 사람 간에 쓰면 승률 예상이 됐을 수도 있겠지만, 그렇게 하기에는 시합 데이터도 문제 데이터보다 별로 없거니와 일단 우승한 사람들의 ELO는 동일할 것이기 때문에 안 했다. 실시간 이길 확률에 대한 건 다른 글에서 다룰 계획이다.

참가자 통계 (2)

[이전글]

[우리말 겨루기]의 참가자들이 문제를 얼마나 정확하게 맞히는지, 얼마나 빠르게 맞히는지, 그런 요소가 최종 점수에는 얼마나 큰 영향을 미치는지 분석한다. 지난 글에서는 최종 점수 분포를 살펴보겠다고 말했지만, 회차 분석을 하고 있으니까 회차 분석을 설명하고 맥락을 제공하는 일이 필요해 보였다.

수치 정의

그래프부터 보고 싶으면 여기로.

사람마다 잘하는 일이 다르듯이 [우리말 겨루기] 참가자들 또한 뛰어난 방면이 각기 다르다. 어떤 참가자는 빠른 속도를 자랑하는가 하면, 다른 참가자는 높은 정답률로 좋은 점수를 획득한다. 궁극적으로 궁금한 바는 일반적인 참가자의 정답률은 얼마나 높은지 등등인데, 그런 계산을 하려면 먼저 수치를 정의해야 한다.

  • 시도 횟수: 쓰기 문제에서는 모든 참가자가 1번의 시도 횟수가 있다고 센다. 누름단추를 누르는 문제에서는 누름단추를 누른 모든 횟수를 센다. 첫소리 문제에서는 문제에 해당하는 참가자가 항상 시도한다고 세고, 이후로는 누름단추 문제와 같다. 이론적으로는 한 참가자의 시도 횟수가 문제의 숫자를 넘을 수 있지만, 2018-2019년 데이터에서 실제로 그런 경우는 없었다. 모은 데이터셋에 각 참가자의 시도 횟수가 직접 써 있지는 않지만, 점수의 등락을 통해 유추한다. 0점인 참가자가 오답을 냈을 경우에도 셀 수 있도록 데이터셋에 표기하였다. 다만 자물쇠 문제에서는 점수를 통해 누가 오답을 말했는지 유추할 수 없으니 분석하지 않는다. (시도 횟수뿐 아니라 이후 글의 모든 부분에서 자물쇠 문제는 다루지 않는다.)
  • 정답 횟수: 참가자가 정답을 맞힌 경우를 센다. 한 참가자의 이론적인 최댓값은 해당 참가자의 시도 횟수이다. 점수를 통해 유추하는데, 기본은 점수가 오른 사람이 있으면 정답자라는 것이다. 1 분석에서 다루지는 않지만, 정답자는 자물쇠 문제에서도 유추할 수 있다.
  • 빠른 정답 횟수: 참가자가 (i) 정답을 한 번에 맞히고 (ii) 화면에 나오는 지문이 다 나오기 전에 대답한 횟수를 센다. 이론적인 최댓값은 해당 참가자의 정답 횟수이다. 빠른 정답은 데이터셋에 별도로 기록했는데, 참가자가 얻은 점수만큼 신뢰도가 높은 정보는 아니다. (오타가 있을 수 있다.)

이런 기본적인 정의를 통해 다음의 통계를 유도한다.

  • 시도 비율 (시도, APQ=\frac{\text{Attempts}}{\text{Questions}}): 문제당 시도한 횟수를 나타낸다. 0 이상이다. 앞에서 이야기한 것처럼 총 시도 횟수가 문제 수를 넘을 수 있기 때문에 이론적으로는 1을 넘을 수 있지만, 실제로 그런 경우는 없으므로 다른 값과 마찬가지로 0에서 1 사이라고 생각해도 좋다.
  • 정답률 (CPA=\frac{\text{Corrects}}{\text{Attempts}}): 시도당 정답 횟수를 나타낸다. 항상 0과 1 사이이다.
  • 빠른 정답률 (속도, SPC=\frac{\text{Fast Corrects}}{\text{Corrects}}): 정답당 빠르게 답을 말한 횟수를 나타낸다. 항상 0과 1 사이이다.
  • 경쟁적 문제 비율 (\frac{\text{Competitive Corrects}}{\text{Competitive Questions}}): 누름단추를 눌러 정답을 맞히는 문제 중에 해당 참가자가 맞힌 비율을 이른다. 항상 0과 1 사이이다. 모든 참가자의 값을 합했을 때 1이 나온다.
  • 비경쟁적 문제 비율 (\frac{\text{Competitive Corrects}}{\text{Competitive Questions}}): 쓰기 문제 가운데 맞힌 문제의 비율이다. 최댓값은 1이지만 각 참가자의 값이 독립이다. 다시 말해, 경쟁적 문제 비율과는 달리 한 참가자의 값이 높다고 다른 참가자가 낮아야 하지는 않는다.

이 가운데 앞의 셋 (시도 비율, 정답률, 빠른 정답률)은 Laplace smoothing을 사용해서 보정한다. 이는 데이터가 충분치 않은 경우에도 극단적인 결론을 내지 않기 위함이다. 이 분석의 경우, 분모에 +2, 분자에 +1을 하면 laplace smoothing이 된다. 보정을 하는 이유는, 예를 들어 1문제를 시도해서 1문제를 맞힌 경우에 해당 참가자가 앞으로도 100%의 정답률을 가지리라고 예상하는 것은 무리이기 때문이다. 2 경쟁적/비경쟁적 문제 비율에 첫소리 문제는 세지 않는다.

분포 분석

각 수치를 정의했으므로, 이제 참가자 값의 분포를 따져볼 수 있다. 2018년부터 2019년까지, 72개의 일반인 회차에 걸쳐 288명의 참가자의 통계를 분석한다.

먼저 시도 비율의 분포를 보자. 예상되는 실제 분포를 그려보기 위해, 베타 분포를 데이터에 맞춰본다.

연파랑은 histogram, 진한 검은색은 분포와 맞는 베타 분포(alpha=8.4, beta=8.6)이다.

분포에서 볼 수 있듯, 평균적인 참가자는 대략 2문제당 1번 버저를 눌러보거나 쓰기 문제의 답을 쓴다. 아무리 무반응 일색인 참가자도 20%의 문제에는 참가하는데, 참가자당 첫소리 문제 1개, 쓰기 문제가 4~5개인 것을 생각하면 버저를 한 번도 누르지 않아도 계산상 20%의 시도 비율은 사실상 보장되는 셈이다. 문제당 시도의 최댓값은 0.81로, 이론상 1이 나올 수도 있는 값에 1이 나오지 않았다는 점은 눈여겨 볼만하다. 다른 통계를 보면, 시도 비율의 참가자 평균은 0.492, 25%/50%/75% 분위 값은 0.40, 0.48, 0.55이다.

아무런 보장3이 없는 정답률을 살펴보면:

베타 분포는 (alpha=6.51, beta=4.59)이다.

문제당 시도보다는 평균값이 높다: 정답률의 평균은 0.58이다. 많은 참가자가 동전 뒤집기보다는 좋은 정답률을 보여준다. 이런 값을 이용하면 평균적인 참가자가 버저를 누를 때 얻을 점수의 기댓값은 100*0.58+(-50)*0.42=37점이란 셈이 가능하다.

빠른 시도는 희귀해서, 분포가 치우쳐 있다. 그런데도 베타 분포와 비교적 잘 맞는다.

베타 분포는 (alpha=3.84, beta=18.12)이다.

Laplace Smoothing을 통해 보정하므로 빠른 정답률에 0은 없지만, 사실 빠른 정답이 하나도 없는 사람이 과반이다4. 그럼에도 불구하고 절반 정도의 참가자는 빠른 정답이 있고, 더러는 0.4, 0.5와 같은 높은 빠른 정답률을 보여준다.

연관 관계 분석

이러니저러니 해도 결국 중요한 건 이기는 것이므로, 각 요소가 최종 점수나 등수와는 어떤 연관 관계 (correlation이지 causation은 아님을 유의하라!)가 있는지 알아본다. 각 통계와 최종점수의 관계를 선형회귀로 살펴보기가 가장 쉽다:

보다시피 정답률과 높은 점수의 연관도가 더 높다 (pearsonr 값이 연관도를 계산하는데, 정답률 쪽 그래프에서 연관도가 더 높다). 얼핏 보기에도 정답률 쪽 그래프가 가운데 선과 점들이 더 가까이 있다.

빠른 정답률과 최종 점수는 별다른 상관이 없는 것처럼 보인다:

그렇다고 빠르게 맞히는 것이 이기는 것과 아무런 상관이 없다고 성급하게 결론을 내리면 안 될 것 같다. 속도가 이기는 것과 상관이 있는지는 통제할 변수가 많아서 다소 까다로운 분석이 필요할 것 같으니 다음에 살펴보자.

경쟁적 문제를 맞히는 비율은 점수와 강한 상관관계가 있으며 (당연한 일이지만 대부분의 점수는 누름단추를 누르는 문제에서 나오며, 그러한 문제를 많이 맞히면 점수가 높다), 비경쟁적 문제를 맞히는 비율 역시 최종 점수와 통계적으로 유의미한 상관관계가 있다. 비경쟁적 비율에 대한 선형 회귀 결과를 보면, 비경쟁적 비율이 0.0일 때는 예상 최종 점수가 대략 200점, 1.0일 때는 대략 1300점이다. 비경쟁적 쓰기 문제가 회차당 4~5개, 즉 400~500점인 것을 생각하면 비경쟁적 문제는 할당된 점수 이상으로 누가 높은 점수를 얻을지 알려주는 지표인 셈이다.

등수는 연속적인 값이 아니라 그래프를 예쁘게 만들기가 힘든데, 유독 순위와 정답률의 그래프는 직관적으로 나온다:

2018년과 2019년의 우승자 가운데 0.5를 밑도는 정답률을 가진 사람은 없었다! 다른 글에서 다루겠지만 일반적인 우승자가 문제당 50점을 얻어간다는 것을 고려하면, 정답률이 0.5 부근인 경우 이미 이기기가 거의 불가능하다. 그러니 곧 출연한다면 정답률을 올리는 데 주력해보자.

이 분석의 한계는 자물쇠 문제를 고려하지 않았다는 점, 빠른 정답 데이터가 오류가 있을 수 있다는 점, causal relationship이 아니라 correlation에 대한 분석이라는 점, 분석 코드가 길어서 어딘가에 코딩 실수를 했을 가능성이 높다는 점 등이다. 추후 데이터 오류나 코딩 오류를 찾아 고쳐도 추세는 비슷하리라 예상한다.

다음 참가자 통계 글에서는 진짜로 성별과 나이별 최종 점수 분포, 인구집단별 정답률 등을 분석해본다.

점수 획득과 승률

참가자들은 모두 동일하게 0점으로 시작하여 문제를 풀어 점수를 쌓는다. 한 참가자가 1등을 하다가도, 이내 다른 참가자가 손에 땀을 쥐게 하는 분발 끝에 큰 점수 차이를 뒤집기도 한다. 1등을 하는 참가자들은 자신이 이대로 우승까지 이어가기를, 아닌 참가자들은 자신이 뒤집을 수 있기를 바랄 것이다. 자연스럽게 제기되는 의문은 ‘현재 1등이 최종 우승을 할 확률은 어떤가?’ 이다. 더 자세하게는, ‘현재 1등이 300점 앞서고 있다면 그대로 우승을 할 확률은 얼마인가?’ 같은 질문에 대한 답을 찾고자 한다.

데이터는 2018년과 2019년 회차 가운데 (1) 일반인이 출연하고 (2) 개인이 출연하는 회차를 모았다. 조건을 만족하는 회차는 72개였다1. 2018년과 2019년 일반인 출연 회차는 모두 십자말풀이판 문제가 30개이므로 분석이 편하다. 2

1등이 우승할 확률

먼저 점수 차이와 상관없이, 현재 1등이 우승할 확률을 계산해보자. 특정 단계에서 1등이 우승할 확률을 아래와 같은 수식으로 표현할 수 있다.

n번째 문제에서 1등일 때 최종 우승할 조건부 확률 = \frac{\text{1st at nth AND win}}{\text{1st at nth}}

다시 말해 n번째 문제에서 1등을 하고 최종우승까지 한 사람의 숫자를 n번째 문제에서 1등을 한 사람의 숫자로 나누면 된다. 그런데 동점자가 있는 경우에, ‘1등을 한 사람의 숫자’가 분명히 정의되지 않는다. 1등이 없는 것인가, 아니면 2명인 것인가? 양쪽의 정의를 모두 분석해보기로 한다. 그런데 1등을 2명이라고 봤을 때 생기는 불균형이 있어, 이를 해결해야 올바르게 분석할 수 있다. 불균형을 구체적으로 살피기 위해 예를 들어보자. 회차 3개 가운데 회차 1은 10번째 문제에서 4명이 모두 동점이고 (당연히 이 중 한 명은 최종 우승자가 된다), 회차 2, 3번은 단독 1등이 있고 그대로 우승까지 거머쥔다. 이런 상황을 간단하게 나타내면 아래 그림과 같다:

이런 상황에서 위 수식을 별 생각 없이 적용하면, ’10번째 문제에서 1등이고 최종 우승한 사람의 수는 3명, 10번째 문제에서 1등인 전체 사람 숫자는 6명이니까 10번째 문제에서 1등인 사람이 최종 우승할 확률은 3/6=0.5로군.’이라고 결론을 내릴 수도 있다. 하지만 잘못된 계산이다! 이상한 점을 보기 위해, 다른 예를 생각해보자. 기존의 회차 1이 대체되어, 단독 1등이 있지만 1등이 우승을 하지 못한 상황이다. 그러면 아래 그림과 같은 상황이 된다.

이 경우의 확률을 계산해보면 10번째 문제에서 1등이고 최종우승한 사람의 수는 2명, 10번째 문제에서 1등인 사람은 3명이니 1등인 사람이 최종 우승할 확률이 0.66이다. 뭔가 이상하지 않은가? 기존의 데이터에서는 동점자이기는 했으나 1등이 항상 이겼고, 두 번째 데이터에서는 1등이 못 이긴 경우가 하나 있었음에도 두 번째 데이터에서 최종 우승할 확률이 더 높다! 이 문제는 첫 번째 데이터에서 승률을 계산할 때 각 회차에 동일한 가중치를 두지 않았기 때문이다. 각 회차에 동일한 가중치를 주려면, 동점자들을 ‘1/n’명으로 치고 계산해야 한다. 따라서 원래 상황에서 승률을 올바르게 계산하려면, 아래 그림과 같이 동점자들을 1/4명으로 쳐야 한다.

그러면 10번째 문제에서 1등이고 최종 우승한 사람은 2.25명, 10번째 문제에서 1등을 한 사람은 3명이므로 10번째 문제에서 1등 한 사람이 최종 우승할 정확한 확률은 2.25/3=0.75임을 알 수 있다.

이런 보정 끝에 1등의 승리 확률을 계산하면 아래와 같다.

당연한 일이지만 풀 수 있는 문제가 적을수록 역전에 필요한 점수를 얻기가 어려우므로, 뒤쪽 문제의 1등일수록 승리를 뒤집기 어려워진다. ‘동점자 무시’ 항목은 사실상 단독 1등을 하고 있을 때의 승리 확률이므로, 동점자를 모두 1등이라고 쳤을 때보다 승률이 조금 높다. [우리말 겨루기]의 중요한 변곡점에서 승률을 보면, 첫소리 문제가 끝났을 때 단독 선두가 이길 확률은 35%, 자물쇠 문제 직전의 25번 문제까지 풀었을 때 단독 선두가 이길 확률은 77%이다.

뒤 문제로 갈수록 승리 확률이 항상 높아져야 정확하겠으나, 그래프는 데이터가 충분치 않은 관계로 어느 정도의 등락이 있다. 선형 관계라고 가정하고 단독 선두의 승률에 대해 선형 회귀를 하면

y=0.0189x+0.347 와 같은 관계가 있음을 알아낼 수 있다. 1등을 하고 있으면 기본적으로 승리 확률이 35%, 문제가 하나하나 더해지면서 1등이 최종 우승할 확률이 대략 2%p씩 늘어나는 것이다. (intercept가 공정한 확률 1/4이 아니라 0.35인 이유는 이전 글에서 분석한 바와 같이 미지의 이유로 ㄱ자리가 평균적으로 우승자가 많이 나오는 것에 기인한다.)

재미로 꼴찌가 1등을 할 확률 역시 살펴볼 수 있다. 동점자를 1/n명으로 가정하는 방법을 써서 꼴찌의 승리 확률이 내려가는 모습을 계산하였다. 이 결과에 따르면 아무리 못해도 20번 문제에서는 꼴찌에서 벗어나야 우승을 할 가능성이 조금이나마 있다. (19번 문제에서의 꼴찌가 우승할 확률은 0.7%이다.)

선두가 x점 앞섰을 때 이길 확률

그러나 방송을 보면 순위 자료뿐 아니라 누가 몇 점 앞섰는지도 알 수 있다. 비슷한 맥락에서 10번 문제에서 500점 앞선 선두와 50점 앞선 선두가 똑같이 55%의 승률을 가진다고 생각하기는 어렵다. 그러면 n번째 단계에서 x점 앞섰을 때, 선두가 이길 확률은 얼마일까? 아래 표에 해당 데이터를 정리해보았다. 공간이 여의치 않아 문제를 하나씩 건너 표를 만들었다.

색이 노랑에 가까울수록 해당 상황에서 승률이 높다. 세로축은 선두와 2등의 점수 차이를, 가로축은 문제의 번호를 나타낸다.윗줄에는 각 상황에서 참가자의 승리 비율, 괄호 안의 숫자는 해당 상황이 일어난 횟수를 나타낸다.

예상할 수 있는 대로 2등과의 점수 차이가 높다면 이길 가능성이 일반적으로 올라간다. 또한 문제가 진행될수록 승리 확률이 높아진다. (표본 수가 적어 승률이 항상 아래로 오른쪽으로 갈수록 높아지지는 않지만, 경향은 확인할 수 있다.) 50~150점의 차이밖에 나지 않을 때는 문제가 진행이 돼도 우승할 확률이 눈에 띄게 증가하지는 않는데, 작은 점수 차이는 사실 한 문제로 뒤집힐 수도 있기 때문이다. 반면, 어느 시점에건 2등과 500점의 차이를 벌릴 수 있으면 우승하리란 자신감을 가져도 된다. 단 2명을 빼고 2등과 500점 차이를 벌린 사람은 항상 이겼다.3

이상으로 순위와 얻은 점수, 그리고 승리 확률에 대해 알아보았다. 글에서 내내 ‘확률’이라고 편하게 지칭했지만 사실 올바른 표현은 아니고, ‘역사적인 승리의 비율’을 ‘확률’이라고 줄여 말한 것이다. 이 글에 쓰인 값들은 어디까지나 역사적인 경향을 통해 계산한 근사치이며, 추후 더 많은 정보를 이용하여 업데이트될 수 있다. 또한 마지막 표를 해석할 때, 정말 500점 차이를 9번 문제에서 얻으면 무조건 이긴다고 해석하면 곤란하다. 9번 문제에서 500점 차이가 나는 참가자들이 우승한 것은 실력이 좋아서 이후 문제에서도 점수를 잘 얻는 경향이 있었기 때문이지, 단순히 700~800점을 얻었다고 해서 1등이 보장되는 것은 아니다. 일반적으로 각 단계에서 1등을 하는 사람들은 몇 점을 얻는지는 다른 글에서 살펴보기로 한다.

참가자 통계 (1)

[다음글]

[우리말 겨루기]를 보다 보면 누가 이길지 궁금해지기 마련이다. 아직 한 문제도 풀지 않았을 때는, 먼저 보이는 특징을 가지고 점찍어 볼 수도 있다. 예컨대 “홍길동 씨는 20대, 젊어서 뇌가 빨리 돌아가니까 잘 풀지 않을까?” “성춘향 씨는 꼴찌만 면한다는데, 오히려 이렇게 겸손한 사람들이 잘할지도 몰라.” 생각하는 식이다. 그런 생각으로 보다 보니 궁금해졌다. 특정 나이나 성별을 가진 사람들이 [우리말 겨루기]에서 더 잘할까? 더 잘하는 집단이 있다면, 그 집단은 어떤 집단일까?

데이터는 다음과 같이 모았다. 2017, 2018, 2019년의 회차 가운데 (1) 연예인이 출연하는 회차가 아닌 일반 회차이며 (2) 개인이 겨루는 회차를 모았다. 조건을 만족하는 회차는 총 96개였다. 참가자는 한 회차에 4명이므로 96 곱하기 4 = 384명을 분석할 수 있었다.

성별

[우리말 겨루기]에는 남녀가 거의 항상 동수로 등장한다. 분석한 96개의 회차 가운데 8개만이 1:1의 성비가 아니었다 (여초가 6회1, 남초가 2회2). 그러니 남녀가 참여한 비율도 거의 같다:

그러면 여자와 남자의 승리 비율도 비슷한가? 그렇지는 않다. 여자가 더 자주 이긴다:

세로축의 ‘승리 확률’이 의미하는 바는, 임의의 여성 참가자를 골랐을 때 해당 여성 참가자가 참가 회차에서 우승했을 확률이 y%라는 것이다. 여성과 남성 참가자의 실력이 완전히 똑같다면 남녀 출연 비율은 사실상 동일하므로 둘 다 우승 확률이 1/4=25%여야 하는데, 그렇지 않은 것이다.

재밌는 것은 성별 간의 차이가 연도별로 큰 변이도 없이 굉장히 안정적이라는 점이다. 2017, 2018, 2019년에 대해 똑같은 분석을 한 결과를 붙여서 보면 서로 거의 차이가 없고, 위에서 보인 전체 추세와도 구분하기 힘들다.

왜 그런 걸까? 속설대로 ‘여자는 언어능력이 더 뛰어난’ 걸까? 추측은 다양하게 할 수 있지만 [우리말 겨루기] 데이터를 이용해서는 ‘[우리말 겨루기]에서는 여자가 이기는 회차가 60% 정도 되더라’는 결론 이상을 얻기 어렵다.

나이

나이의 다양함 또한 [우리말 겨루기]를 재밌게 해주는 요소다. 분석한 자료 중에는 최고령이 81세, 최저령이 15세였다. 그만큼 여러 연령대의 사람이 참여하는데, 어떤 연령의 사람이 제일 잘하는지도 흥미로운 질문거리다. 20대가 제일 순발력이 좋은 나이이니 20대가 잘할 것 같기도 하고, 또 한편으로는 60대 이상은 일생에 걸쳐 한국어를 20대보다 2~3배가량 더 많이 써왔고 상대적으로 외래어를 덜 썼기 때문에 [우리말 겨루기]는 더 잘할 것 같기도 하다.

먼저 전체 참가자의 나이 분포를 보자.

[우리말 겨루기]를 꽤 많이 봤다고 생각했는데, 20대와 30대가 제일 많이 출연한다는 사실이 놀라웠다. (항상 “생각보다 많이 출연하네” 정도로만 치부했다.) 평균 수명은 여자가 더 높은데 70대 참가자 가운데서 오히려 남자 참가자의 비율이 높다는 것도 흥미롭다.

어느 그룹이 제일 많이 이길지 예상이 되는가? 정답은…

20대도 아니고 60대도 아니고 40대다! 이 분석에서 40대는 대략 60년대 말, 70년대 초중반에 태어나신 분들이다. 40대 출연자의 승리 확률은 30%로, 평균보다 5%p 높다.

나이의 효과가 성별별로 다를 수도 있으니, 성별별로 따로 분석해보았다.

결과에서 드러나는 대로, 여성 참가자와 남성 참가자의 통계가 제법 다르다. 여성 참가자들은 20대와 40대에서 제일 승률이 높지만 (40대 여성의 승률은 40%에 육박한다), 남성 참가자의 승률은 60대가 제일 높다. 이를 통해 알 수 있는 바는 사실 40대의 높은 승리 확률은 여성 참가자들이 다 견인했고, 40대 남성들은 평균적인 남성과 별반 다를 바가 없다는 점이다.

참가자 다짐

[우리말 겨루기]를 진행하는 엄지인 아나운서는 참가자들에게 “몇 등 할 것 같으세요?”라고 묻곤 한다. 참가자들의 답변은 “달인이죠!” 부터 “꼴찌만 면하고 싶어요”, 혹은 “상품권만 타면 됩니다”까지 다양하다. 겸손하게 말하는 사람들이 더 잘하는 것으로 보이는 건 정말 잘하기 때문일까, 아니면 겸손한 이미지와 상반된 실력을 보여주기 때문일까? 목표 등수가 승률이 상관관계가 있는지 알아보자. 3

말이 씨가 된다고, 목표를 1등이라고 말한 사람이 평균적으로 더 잘한다. 40대나 여성인 것보다 강한 ‘승리의 신호’로, 거의 35%의 승률을 자랑한다. 물론 1등이 승률이 높은 게 정말 말이 씨가 되기 때문은 아니지만, 승률이 높다고 하니 만약 출연한다면 1등을 외치고 보면 좋지 않을까? 성별이나 나이는 금방 바꿀 수도 없는 마당이니 말이다.

ㄱ, ㄴ, ㄷ, ㄹ 위치

참가자들은 ㄱ부터 ㄹ까지 촬영장의 정해진 위치에서 자리를 바꾸지 않고 문제를 푼다 (자물쇠 문제 전까지는). 언젠가 읽은 참가 후기에서는 ㄱ과 ㄹ 위치가 문제가 잘 안 보인다길래, 과연 그런 가시성의 문제가 승률에도 영향을 미치는지 살펴보았다.

ㄱ이 제일 잘한다. 그것도 꽤 큰 차이로 더 잘한다! 왜 그럴까? 통계상의 노이즈는 아닐까? 조금 더 자세히 알아보기 위해4 성별과 마찬가지로 2017, 2018, 2019년의 자료를 따로 분석하여 ㄱ이 잘하는 일관적인 경향이 있는지 살펴보았다.

ㄱ이 일관적으로 더 좋은 성적을 보여준다! 상관이 있다고 생각한 적이 한 번도 없었는데, 어쩌면 먼저 첫소리 문제를 고를 수 있다는 점이 유의미할지도 모른다. 어떤 해에는 특정 위치가 정말 저조한 성적을 보이기도 하는데 (2017년의 ㄹ, 2018년의 ㄷ), 이걸 통계적으로 분석하면 저만큼 못한 건 운만으로는 설명이 안 된다. 5 역시 2017년의 촬영장 상태를 모르고서는 뭐라 결론을 내리기가 어려운 듯하다.

긴 글에 걸쳐서 다양한 요소가 승률에 어떻게 영향을 미치는지를 분석해봤다. 다음 참가자 분석 글에서는 조금 더 자세하게, 성별과 나이별로 최종 점수 분포는 어떠한지, 어떤 어휘를 잘 맞추는지를 분석해볼 예정이다.

예심 합격에서 출연까지

[우리말 겨루기] 예심에 합격하고 나면 언제 출연하게 되는지 궁금해지기 마련이다. 어떤 후기에 따르면 2~3달을 기다리면 된다고 하기도 하고, 한편으로는 달인의 후기를 보면 7~8개월을 기다려야 한다고 짐작할 수도 있다. 1

그렇지만 정량화할 수 있는 문제를 막연히 어림하거나, 역시 어림일 뿐인 남들의 개인적인 경험에 기댈 필요는 없다! 766회부터 793회까지2, 정보를 모을 수 있었던 출연자 83명이 예심에 합격한 뒤에 얼마나 기다렸는지를 분석해보았다. 방송에 출연한 날짜는 방송 다시보기를 통해 알아낼 수 있었고, 예심에 합격한 날짜는 KBS [우리말 겨루기] 웹사이트의 알려드립니다 게시판에 올라오는 “예심 합격자 발표” 글을 통해 확인할 수 있었다. 먼저 기본적인 통계를 구해보면, 아래 표와 같다.

총 데이터 수83명
최소 기간47일
최대 기간387일
평균 기간173.93일 3
중간값 기간158일
하위 25% 기간96일
상위 25% 기간228일
표준편차92.89일

이러한 통계로 알 수 있는 것 가운데 하나는 출연자의 50%가 예심 합격 후, 다섯 달이 조금 넘는 시간 안에 방송에 출연한다는 것이다. 앞서 인용한 달인의 후기에 적힌 일정이 일반적인 촬영 일정이라 가정하면, 출연 제의와 실제 촬영 사이에 2주, 촬영과 방영이 2주 가량 떨어져 있으니 50%의 합격자는 4달 안에 제작진으로부터 연락을 받는다고 유추할 수 있다. 한편 하위 25%, 상위 25% 구간을 통해 대략 언제 연락을 받을지 범위를 구해볼 수 있다. 예컨데 가장 최근 예심에서 합격한 사람들(2020년 2월 23일 합격) 가운데 50%가 2월 23일에서 각각 93일과 228일 떨어진 2020년 5월 26일과 10월 8일 사이에 출연하리란 짐작을 할 수 있다. (위와 비슷한 논리로 대략 4월 말에서 9월 초에 제작진으로부터 연락을 받으리라 예상할 수 있다.)

분포를 더 직관적으로 살펴보기 위해, 50일 단위로 히스토그램을 그려볼 수 있다.

데이터를 대단히 많이 모은 건 아니라 중간에 오르락내리락이 있긴 하지만, 얼추 오른쪽 꼬리가 긴 분포임을 알 수 있다. 물론 예심에 합격하자마자 출연할 수는 없고, 출연이 미뤄질 개인적인 이유는 많으므로 당연하다면 당연하다. 출연 날짜 결정이 어떤 분포의 가정들과 가장 맞는지 솔직히 전혀 모르겠지만, 그냥 쉽게 접근 가능한 감마 분포를 이용해 분표를 조금 부드럽게 표현해볼 수 있다.

분포를 근사한 감마 함수의 파라미터는 shape=1.53, scale=44.9, shift=84.0 이다.

오차가 있지만, 더 부드러운 분포로 출연 기간을 예상하고 싶다면 감마 함수의 파라미터를 이용해 예상해볼 수 있을 것이다.

마치며 이 분석이 가진 한계를 논해보자.

  • 이 데이터는 2018년 상반기 지역예심까지 거슬러 올라가며 예심 정보가 없는 연예인 출연 회차 등을 제외하고 각 출연자들의 예심 합격 날짜를 계산했는데, 5명의 경우는 정보를 정확히 구할 수 없었다4. 이들이 2018년 상반기나 그 이전의 예심에서 합격했다면, 이 분석에서 나타난 최대 기간, 중간값 등의 값이 올라갈 가능성이 있다.
  • 2019년 하반기의 추세가 미래에 계속되리라고 보장할 수 없으므로, 실제로 출연자들이 출연하는 날은 위 분석과 거리가 있을 수 있다.
  • [우리말 겨루기] 예심 합격 글을 보면, 다른 예심보다도 지역 예심에서 압도적으로 많은 사람이 합격한다는 것을 알 수 있다. 지역 예심은 상반기/하반기로 나눠서 하는 반면, 정기예심은 대체로 한두 달에 한 번 실시하여 꾸준히 합격자를 낸다. 따라서 정기 예심에 합격했는지, 지역 예심에 합격했는지에 따라 기다리는 기간이 다를 수 있다. 위 분석에서는 그러한 효과를 고려하지 않았다.

그럼에도 불구하고 위 분석이 의미를 갖는다고 생각한다. 막연히 연락이 언제 올 지 개인적인 일화 한둘에 의존하며 실망하지 않아도 되게끔, 많은 경우를 고려하여 대략의 예상 범위를 계산했기 때문이다.