サッカーくじ totoの予想をしてみる。-はじめに-

はじめに

大学時代、研究室で日々考えていたのは「金のあるニート」になること。
しかしながら、生まれも育ちも一流からは程遠い私にはそのような機会は舞い降りてこない。
気が付けば社会人となり10年経過するところであるが、このままでは生涯サラリーマンという有様。

天才的なビジネスセンスがあり、一発サービスを当てることができれば、生まれ育ちも関係ないかもしれない。
残念なことに、そのような才覚も実力もない私はサイコロを振って、運に任せるしかないのである。

そうだ、totoで一発当てて、「金のあるニート」の夢を実現しよう...。

とりあえずの予想手法

という訳で、totoの予想を始めてみることに。
予想手法を考えないといけない訳だが、ベースラインとしてEloレーティングで予想することを行ってみよう。
恐らく誰もが通った道で、これだけでは上手くいかないのであろうけど。
Eloレーティングの計算式についてはWikipediaを見られたし。

2021年の結果を予測するにあたっては、2020年の試合結果からレーティングを計算することにしました。
探したらPerlモジュールがあったので、実装にはChess::Eloモジュールを使いました。
レーティングの初期値は1500、K=32としました。

計算結果は以下の通りとなりました。
順位 チーム名 レーティング リーグ順位
1 川崎F 1681.107036 1
2 名古屋 1584.388649 3
3 G大阪 1582.47218 2
4 鹿島 1580.854472 5
5 C大阪 1543.406678 4
6 FC東京 1525.930539 6
7 1520.900705 7
8 大分 1496.759443 11
9 広島 1496.565606 8
10 横浜FM 1486.914516 9
11 札幌 1478.386123 12
12 鳥栖 1472.253848 13
13 浦和 1465.983398 10
14 横浜FC 1422.628439 15
15 清水 1421.548719 16
16 仙台 1421.441177 17
17 湘南 1412.878183 18
18 神戸 1405.580288 14

レーティング1位と18位の差が275なので、1位と18位が対戦した場合に1位の勝率が約83%です。
当然中位のチーム同士の対戦になると、甲乙つけがたい状態になります。
このレーティングの値から勝敗や引き分けをどう割り振るかがカギになりそうです。

私がJリーグの試合結果のサイトから作ったデータファイルは以下においています。
計算には使いませんでしたが、得点もデータには含めています。
https://github.com/s1ncha/toto

さて、問題はここからどう改良するかだよなぁ。
勝敗のデータは比較的簡単に見つけて整形できたけど、これ以外の要素はデータを整えるのが大変そうだ。