PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2016/06/26 03:59:50
Name 이치죠 호타루
Subject [일반] 야밤의 시뮬레이션 - 유로 2016에서 3위로 16강 진출하기 위해 최소 몇 점이 필요했을까?
※ 철저하게 이과틱한 글임을 밝힙니다. 자료의 수집, 통계적 분석, 프로그래밍의 삼위일체가 되겠습니다. 결론만 보고 싶으시면 그냥 쭉 스크롤 내리시면 됩니다.

까놓고 이야기하면 사실 별것도 아닙니다. 프로그래밍 시간에 졸지만 않았으면 얼마든지 할 수 있는 일이죠. 아이디어를 내는 게 조금 귀찮아서 그렇지. 내일 이른 시간에 모임이 있기는 합니다만 있다가 크로아티아전 하는 건 꼭 보고 자야 할 것 같아서(...) 할 일도 없겠다 마침 떠오른 의문을 풀고자 고민을 좀 해 봤습니다. 불현듯 좋은 아이디어가 떠올랐죠. 요걸 시뮬레이션을 하면 답이 나오겠군.

프로그래밍을 함에 있어서 기본적으로 필요한 것은 인풋 파일입니다. 아무나 떠먹여주지 않죠. 그리고 결과가 어떤 식으로 나올 것인지를 예측하고 있어야 합니다. 하다못해 최소한 이것이 내가 원하는 결과라고 딱 떠오르는 건 있어야 프로그래밍이 용이하죠. 말하자면 일필휘지와 같은 방식인데, 소스 코드는 좀 많이 더럽더라도(애초에 저는 컴공과 출신도 아닙니다) 버그를 최대한 줄이는 데 이만한 방법이 없더군요. 미리 구상은 다 끝났고, 데이터를 모으는 단계로 들어갔습니다.

근데 어느 데이터를? 당연히 각 팀의 전적이죠. 각 팀이 한 경기당 평균 몇 점을 따냈으며 평균 몇 점을 실점했는지, 상대방이 누구냐에 대한 구분 없이 일단 국대 경기라면 데이터를 모으는 것으로 결정을 했죠. 여기에 UEFA 측의 점수 계산하는 방식을 약간 변형해서 받아들였습니다. 13년도 이전의 자료는 버리고, 14년도 경기의 가중치는 0.5, 15년도 경기의 가중치는 0.75, 올해 경기의 가중치는 1로 하여 어느 정도의 득/실이 예상되는지를 우선 뽑아낸 거죠. 자료는 싸커웨이(http://us.soccerway.com/teams/)에서 싹 뽑아갈 수 있었습니다. 여기에 14년도에 월드컵이 있었고 거기서 연장전이 벌어진 일이 있었으니까 해당 경기의 가중치는 0.75를 추가로 곱합니다. 90분 뛴 게 아니라 120분을 뛴 것이니까 경기당으로 맞추려면 별 수 있나요. 가중치를 줄이는 수밖에요. 유로를 시뮬레이션하기 위함인 만큼 유로 본선의 데이터는 제외했습니다.

어찌저찌해서 데이터를 싹 모았으니, 중간적으로 그 데이터를 한번 쓱 훑어봤습니다. 의외로 평균 예상 득점 수 1위는 독일도 프랑스도 아닌 크로아티아더군요(2.422골, 2위 폴란드 2.365, 3위 프랑스 2.250, 4위 독일 2.217, 5위 벨기에 2.199). 유로 이전까지 가장 실점이 낮을 것으로 기대된 팀은 의외로 우크라이나(0.613골)였습니다. 뭐, 독일과의 재미졌던 공방전 생각해 보면 아주 틀린 것 같지 않긴 한데 왠지 좀 찜찜-하군요. 뭐 어쩌겠습니까. 데이터가 그렇게 나왔다는데.

굳이 실점률을 계산한 이유는, 득점력만 가지고는 좀더 원하는 결과에 가까울 시뮬레이션 결과를 낼 수 없기 때문입니다. 생각해 보세요. 2014년 브라질 월드컵 당시의 정성룡이 골문을 지키고 있는 것과 마누엘 노이어가 골문을 지키고 있는 것은 벌써부터 무게감이 다르지 않습니까?

그럼 계산된 것을 어떻게 넣느냐... 예컨대 우리가 경기당 평균 2골을 넣고, 상대방이 경기당 평균 1골 정도를 실점한다면, 둘이 붙었을 때 대충 그 결과는 1골과 2골 사이가 되지 막 대여섯 골까지 나오는 일은 (없으리란 법은 없지만) 드물겠죠. 그 점을 노렸습니다. 그래서 구질구질하게 쇼할 거 없이 그냥 깔끔하게 산술평균을 때려버렸죠. (시뮬레이션할 팀의 기대 득점 + 시뮬레이션할 상대팀의 기대 실점) / 2를 해서, 이 값을 λ로 삼아 프와송 분포에 집어넣었습니다. 통계학 하신 분들이라면 대충 아시겠습니다만.

그리고 한 가지 더. 결과가 늘 똑같게 나올 수는 없지 않습니까. 그래서 0~1 사이의 무작위의 수를 난수표에서 뽑고, 그 값이 k골이 터지기까지의 누적 프와송 분포보다 크면 k값을 늘리고, 작으면 스톱하는 식으로 해서 몇 골이 들어갔는가를 시뮬레이션할 수 있었습니다. 이걸로 어느 정도 근거를 가진 무작위의 시뮬레이션을 벌이는 게 가능했죠.

이 과정을 A조에서 F조에 이르는 전 경기에 대해 수행하고, 각 조의 승점을 계산하고 순서대로 버블소팅으로 추린 후(물론 골득실 등도 같이 다 추립니다), 3위가 되는 팀의 승점을 또다시 따로 모아 버블소팅으로 추려서 턱걸이로 본선에 진출하는 승점을 얻어냅니다. 이 전체 과정을 1천 번 반복한 후, 통계를 냄으로써 과연 몇 점 정도면 가능했을지 평균을 내 보는 것이죠.





결과는 이렇습니다.

1천 번의 시뮬레이션 결과
4점의 승점으로 턱걸이한 경우 196회
3점의 승점으로 턱걸이한 경우 743회
2점의 승점으로 턱걸이한 경우 60회
1점의 승점으로 턱걸이한 경우 1회 (불가능은 아닙니다. 1무 2패인 팀이 3위인 경우가 셋 이상 있으면 가능하죠)
평균 승점 3.134점
표준편차 0.491

그러니까 대충 요약하면, 3점의 승점으로는 약간 불안하기는 하지만 80% 이상의 확률로 토너먼트 진출이 가능하다는 겁니다. 그러면 나머지 20%를 막기 위해서는 결과적으로 승점에 이은 골득실에서 손해를 덜 봐야 한다는 이야기가 되는 거죠.

이번 유로에서 (특히 그 B조 5차전에서의 슬로바키아처럼... -_-;) 수비축구가 난무한 속사정은 이런 데 있다고 봐야겠습니다. 같은 승점 3점이라도 1승 2패보다는 3무가 훨씬 더 유리한 게 사실이죠. 평균적으로 한 경기에서 1-0으로 승부가 갈린다 치면 1승 2패면 골득실이 음의 값을 가지고 3무면 무조건 골득실이 0인데요. 무조건 3무를 따는 게 1승 2패보다 유리하다는 다소 황당한 결론이 나오는 거죠. 그리고 이번 유로에서 실제로 1승 2패를 기록한 터키와 알바니아는 3무를 기록한 포르투갈에 밀려서 짐을 싸야 했지 않습니까. 실제와 비슷한 결과가 나왔다고 자부합니다.

다음 유로도 24강인 걸로 아는데, UEFA 측에서 1승 2패가 3무보다 우선한다는 룰이라도 박아놓지 않는 한 수비축구가 이번 유로에서처럼, 아니 어쩌면 그보다 더 심하게 난무할 것 같다는 걱정이 벌써부터 생기기 시작하는군요. 3위 순위 결정이 승점 > 골득실 > 다득점 순인 것으로 아는데, 골득실 앞에 다승이라도 하나 박아놓아야 수면제 경기가 좀 덜할 것 같다는 생각이 듭니다. 어차피 2승이면 다섯 조 이상에서 2승 1패가 세 팀이 나오지 않는 한, 다시 말해서 거의 무조건 16강 진출이니까 다승을 골득실 앞에 박아넣으면 간단하게 3무 16강 진출을 저격할 수 있습니다. 과연 앞으로 바뀌는 게 있을지, 아니면 4년 후에도 꼼짝없이 수면고문을 당해야 하는 건지(...)는 시간이 답을 해 주겠죠.



마지막으로 그 1점으로 16강 간(...) 시뮬레이션 결과입니다. 977번째 데이터더군요. 재미로 보는 거니까 그러려니 하고 봐 주셨으면 합니다. 쌔빠지게 한 천만 번쯤 돌리다 보면 지금 유로 상황과 딱 맞는 게 하나쯤은 나오겠지만 시간은 한정되어 있어서...

FRA 2 - 0 ROM
ALB 0 - 1 SUI
FRA 2 - 0 ALB
ROM 0 - 2 SUI
SUI 3 - 4 FRA
ROM 0 - 0 ALB
    W D L P G L
FRA 3 0 0 9 8 3
SUI 2 0 1 6 6 4
ALB 0 1 2 1 0 3
ROM 0 1 2 1 0 4

ENG 5 - 0 RUS
WAL 1 - 1 SVK
ENG 3 - 0 WAL
RUS 3 - 0 SVK
SVK 1 - 3 ENG
RUS 2 - 0 WAL
    W D L P G L
ENG 3 0 0 9 11 1
RUS 2 0 1 6 5 5
SVK 0 1 2 1 2 7
WAL 0 1 2 1 1 6

GER 2 - 2 UKR
POL 5 - 2 NIR
GER 2 - 4 POL
UKR 2 - 2 NIR
NIR 2 - 2 GER
UKR 3 - 1 POL
    W D L P G L
POL 2 0 1 6 10 7
UKR 1 2 0 5 7 5
GER 0 2 1 2 6 8
NIR 0 2 1 2 6 9


ESP 0 - 4 CZE
TUR 0 - 3 CRO
ESP 1 - 1 TUR
CZE 3 - 2 CRO
CRO 4 - 1 ESP
CZE 2 - 4 TUR
    W D L P G L
CRO 2 0 1 6 9 4
CZE 2 0 1 6 9 6
TUR 1 1 1 4 5 6
ESP 0 1 2 1 2 9


BEL 2 - 1 ITA
IRL 1 - 1 SWE
BEL 2 - 1 IRL
ITA 1 - 0 SWE
SWE 0 - 3 BEL
ITA 2 - 0 IRL
    W D L P G L
BEL 3 0 0 9 7 2
ITA 2 0 1 6 4 2
IRL 0 1 2 1 2 5
SWE 0 1 2 1 1 5


POR 2 - 1 ICL
AUT 3 - 2 HUN
POR 0 - 3 AUT
ICL 0 - 2 HUN
HUN 0 - 1 POR
ICL 2 - 0 AUT
    W D L P G L
AUT 2 0 1 6 6 4
POR 2 0 1 6 3 4
HUN 1 0 2 3 4 4
ICL 1 0 2 3 3 4

3위팀 알바니아(1), 슬로바키아(1), 독일(2), 터키(4), 아일랜드(1), 헝가리(3)
알바니아, 아일랜드 -3, 슬로바키아 -5
아일랜드 2득 5실, 알바니아 0득 3실
아일랜드 진출 (알바니아는 여기서도...)



...이거 보니까 토너먼트 결과도 프로그래밍으로 예측해볼 걸 그랬네요. 16강 끝나고 한 번 돌려봐야 하나...

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
16/06/26 04:53
수정 아이콘
대단하시네요...
Rorschach
16/06/26 04:59
수정 아이콘
이거 안그래도 며칠전에 궁금해서 돌려봤는데, 모든 경기의 승무패가 각각 1/3의 확률로 나온다고 가정하고 득실차 같은거 고려하지 않고 승점만으로 3위 줄세우기를 할 경우 500만번의 시행에 3위중의 4등의 평균 승점이 3.09 정도 나오더군요.
그리고 3위 중의 3등의 평균 승점은 3.45 정도였습니다.

그리고 여담으로, 유로의 24강 개편은 24팀 선발 과정에서는 굉장히 성공적이었다고 봅니다. 예선전을 뚫을 가능성이 높아지니까 각 조에서 중위권 정도 위치의 팀들이 희망이 생겨서 훨씬 빡세지고 재밌어졌어요. 그런데 정작 본선 조별리그가......
차라리 그냥 12위만 진출시켜서 토너먼트를 12강으로 만들고 1위팀 중의 상위 네 팀은 토너먼트 2라운드로 직행시키는게 더 낫지않을까 하는 생각이 듭니다.
이치죠 호타루
16/06/26 05:04
수정 아이콘
표준편차를 고려해 봤을 때 딱히 유의미한 차이는 없군요.

차라리 그냥 예전의 16강으로 회귀하는 게 어떨까 싶기도 한데, 아시다시피 일단 한 번 준 건 쉽게 못 뺏는 법이라서(...) 24강을 재미있게 할 룰을 UEFA측에서 고려해야 유로가 좀더 흥행하지 않을까 싶네요. 대서양 건너 리그는 아주 골잔치로 대박을 쳤던데...
Rorschach
16/06/26 05:09
수정 아이콘
네. 다만 전 모든 팀의 전력이 동등하다는 가정을 한 것이나 마찬가지다보니 실제랑 좀 차이가 나긴 하죠.

24강을 한 번 한 이상 사실 다시 돌리긴 어려울테고, 정말 토너먼트를 12강으로 하면 좋을 것 같아요. 1위팀 상위 네 팀에게는 체력적으로나 일정으로나 확실한 이득을 줄테니 2승을 한 팀도 마지막 경기에 전력을 다 해 줄 테고요. 뭐 지구 반대편 축구대회에 대해서 이야기 열심히 해봤자 자기들이 알아서 할테지만요 크크크
강가딘
16/06/26 10:25
수정 아이콘
82 스패인부터 94 미국까지 월드컵도 24강 체제엿죠.
해서 94 미국에서 우리나라가 2무1패로 조3위중 승점에서 밀러서 16강 탈락햇죠.
당시 볼리비아전에서 골 못넣은 (0-0으로 비겼습니다) 황선홍이 폭풍까였고 2002년 폴란드전에서 골을 넣고나서야 마음의 짐을 내려놓았다는
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
65966 [일반] 야밤의 시뮬레이션 - 유로 2016에서 3위로 16강 진출하기 위해 최소 몇 점이 필요했을까? [5] 이치죠 호타루3488 16/06/26 3488 1
65818 [일반] 핸드드립 커피 입문기 - 1~6일차 [33] legend7113 16/06/19 7113 7
65734 [일반] [WWE] 크루저웨이트 클래식의 모든 참가자가 공개되었습니다. [14] 그룬가스트! 참!4339 16/06/14 4339 0
65635 [일반] [축구] 2016 시즌 MLS 지정선수 연봉.TXT [8] 비타에듀5144 16/06/08 5144 0
65053 [일반] 덴마크와 스웨덴의 정실자본주의는 왜 큰 문제가 되지 않을까? [24] santacroce9892 16/05/08 9892 5
64908 [일반] 커피 이야기 - Caffeine [26] 모모스201312035 16/04/29 12035 17
64878 [일반] 월드컵 역사상 가장 비극적인 실점... [33] Neanderthal9439 16/04/27 9439 11
64734 [일반] 금수저 국가들의 어두운(?) 미래: 동아시아 환상과 의사라는 직업의 한계 [30] santacroce10225 16/04/20 10225 19
64706 [일반] 15배 대박 투자의 비밀: 엘리엇의 아르헨티나 투자 이야기 [11] santacroce6351 16/04/19 6351 9
64676 [일반] 브라질 지우마 대통령 탄핵안 가결, 하원에서 상원으로 넘어가. [12] Brasileiro6205 16/04/18 6205 2
64634 [일반] 세상은 정말 좋아졌을까? 저개발국 사람들이 가장 바라는 것 [7] santacroce6664 16/04/16 6664 13
64624 [일반] [올림픽 축구] 리우 올림픽 축구 조추첨 결과 [34] 잘가라장동건5176 16/04/15 5176 0
64610 [일반] 부자가 가난한 자보다 15년을 더 오래 사는 나라 그리고 뉴욕 [14] santacroce9468 16/04/14 9468 14
64591 [일반] 독일 언론 긁어오기 - 통영 국제 음악제(스압) 1. [5] 표절작곡가4844 16/04/13 4844 5
64543 [일반] 남미를 뒤흔든 어떤 전쟁 이야기: 루쏘에서 니체의 여동생까지 [16] santacroce8099 16/04/10 8099 29
64489 [일반] 개인적으로 겪은, 들은 팬서비스가 좋은 운동선수들 썰. [81] Brasileiro19754 16/04/06 19754 4
64451 [일반] [스압] 알기 쉽게 설명해본 헬조선 전주곡 - 국제 유가 하락 [45] 뀨뀨12359 16/04/04 12359 97
64414 [일반] 푸에르토 리코 이야기: 미국의 51번째 주가 되면 행복할까? 1 [4] santacroce6907 16/04/02 6907 11
64333 [일반] 아베총리와 폴크루그먼의 담화 요약 [23] 콩콩지6752 16/03/29 6752 12
64294 [일반] 우리는 왜 항문 주변에 털이 있나?... [40] Neanderthal42219 16/03/26 42219 21
64265 [일반] 크루이프 어록 [12] Galvatron7490 16/03/25 7490 3
64186 [일반] MMA 간단 소식들 [2] The xian3735 16/03/21 3735 0
64136 [일반] 결국 호세프의 장관이 된 룰라 그러나 더욱 꼬여가는 브라질 정국(도청파일 추가) [27] santacroce6605 16/03/17 6605 4
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로