간단한 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는 동일할 것이기 때문에 안 했다. 실시간 이길 확률에 대한 건 다른 글에서 다룰 계획이다.

[우리말 겨루기] 812회 분석

(수치에 대한 설명은 여기서 찾을 수 있다.)

2020년 5월 25일 방영. 40세 김영미 씨가 우승했다. 문옥순 씨만이 출연 경험이 있었다. 위 그림을 보면 김상훈 씨의 실력 그래프가 넓어 보여서 잘 했을 것 같지만, 정답률이 너무 낮았기 때문에 좋은 성적을 얻지는 못했다.

전체적으로 참가자 모두 고만고만한 점수를 얻었기 때문에 자물쇠 문제 전까지 경쟁이 치열했다. 특히 10~15번 문제를 풀 때는 모든 참가자가 비슷한 점수였다. 그러나 후반으로 갈수록 이동민 씨는 힘을 잃었고, 김상훈 씨도 24번 문제에서 무려 200점을 감정당하는 바람에 자물쇠 문제에 진출하지 못했다. 김영미 씨와 문옥순 씨는 자물쇠를 서로 한 문제씩 가져가다가, 김영미 씨가 마지막 문제를 풀며 1등의 영예를 안았다.

검은 선은 2018~2019년 해당 등수 참가자의 특정 문제에서 중앙값; 회색 범위는 상위10%~하위10% 점수 범위, 색이 있는 선은 참가자의 점수.

이번 회차 참가자들은 일반적인 회차의 참가자보다 오답이 많았고, 따라서 많은 점수를 획득하지 못했음이 분명했다. 등수 대비 성적을 보면, 김영미 씨와 이동민 씨는 해당 등수 하위 10%의 점수조차 얻지 못했다. 예컨대 김영미 참가자가 얻은 최종 점수 1000점은 평균적인 1등이 자물쇠 문제 에 얻는 점수와 같다. 문옥순 참가자와 김상훈 참가자는 하위 10%까지는 아니었지만, 역시 최종 점수가 해당 등수의 평균 참가자를 하회했다.

앞서도 말했지만 참가자들이 점수를 잘 받은 회차는 아니었기 때문에 인구집단 대비 특별히 잘한 참가자는 없었다.

전체적인 수치를 보면, 문옥순 참가자와 김상훈 참가자의 시도 횟수가 일반적인 참가자보다 높았던 것에 비해 정답률이 낮았다. 김상훈 참가자나 이동민 참가자는 정답률이 0.33 근처여서, 시도당 얻는 기대 점수가 0 근처였다. (이동민 참가자는 실제로 최종 점수가 0점이었다.) 김영미 씨는 1등이었지만, 비경쟁 정답률을 제외한 모든 수치가 1등이 아닌 평균 참가자의 실력 수치를 하회했다.

1등과 2등 참가자를 비교해보면 1등인 김영미 씨가 시도 수에서는 뒤처진 점, 쓰기 문제를 더 많이 맞춘 점이 눈에 띈다. 김영미 씨가 1등의 자리에 오를 수 있었던 것은 이 통계에 집계되지 않는 자물쇠 문제를 한 문제 더 맞췄기 때문이라, 이번 회차에서는 이런 비교가 얼마나 의미가 있는지 잘 모르겠다.

[우리말 겨루기] 811회 분석

(수치에 대한 설명은 여기서 찾을 수 있다.)

2020년 5월 11일 방영. 71세 이용복 씨가 우승했다. 이순재 씨와 이용복 씨는 모두 우승자들이 다시 겨루는 [다시 겨루기] 출연 경험이 있는 실력자들이다. 그러나 과거의 영광에도 불구하고 이순재 씨는 3등에 머물러야 했다. 반면 이번이 첫 출연인 듯한 정태규 씨가 이용복 씨와 엎치락뒤치락 경쟁했다.

이순재 씨 역시 대략 15번 문제까지는 선두 2명과 경쟁했지만, 후반에 부진을 면치 못하며 자물쇠 문제에 진출하는데는 실패하였다.

정태규 씨는 2등으로 마친 걸 고려하면 자물쇠 문제 전까지는 뛰어난 기량을 보여주었다. 자물쇠 문제 전에 1등이기도 했지만, 자물쇠 문제 직전에 1100점을 획득한 상태였는데 그래프에서 볼 수 있듯 일반적으로 2등이 얻는 상위 10% 점수를 100점 정도 상회했다. 2등이면서 자물쇠 문제 전에 1100점 이상을 얻은 사람은 5명 밖에 되지 않으니, 정태규씨가 얼마나 뛰어났는지 짐작이 간다. 그럼에도 불구하고 자물쇠 문제 가운데 단 한 문제만을 맞혀 우승의 기회를 놓쳐버렸다.

이용복 씨는 2018년~2019년에 출연한 세 사람의 70대 여성보다 높은 점수를 보여주어, 자신의 인구집단에서 1등을 달렸다. 나머지 출연자는 특이사항이 없었다.

회색은 일반적인 참가자의 수치 (중앙값).

정태규 씨는 문제를 끝까지 듣고 풀겠다고 시작할 때 선언하셨는데, 그 말 그대로 속도가 일반적인 참가자와 비슷했다. 그 대신 특히 중요한 정답률을 높게 유지하며 높은 점수를 획득했다. 이용복 씨는 모든 수치에서 일반적인 참가자를 고르게 상회했다.

1등과 2등을 비교해보면, 1등 참가자가 2등 참가자에 비해 정답률이 낮은, 흔치 않은 일이 일어났다. (여기 계산된 정답률에 자물쇠 문제는 없음을 감안하라.) 그러나 시도를 많이 한 경향 덕분인지, 이용복 씨는 자물쇠 문제에서 내리 네 문제를 맞추며 우승했다.