
Jリーグ2019シーズン予測ふりかえり
*この記事は「スポーツアナリティクス Advent Calendar 2019」16日目の記事です.
みなさまこんにちは.名古屋の名城大学で教員をしている小中(@konakalab)です.システム制御系から個人の趣味嗜好を反映させつつ現在ではスポーツ統計の研究を行っています.最近はTwitterに出没しております.フォロワーの皆様ありがとうございます.
主な興味はチーム・選手の実力の定量的評価およびそれを利用した予測です.特に日常の定型業務としてJリーグの結果予測を行っておりまして,この記事はそのふりかえりです.
(スポーツアナリティクスに関心をお持ちの方を想定していますので,若干技術的な話題を含みます.が,数式はnoteの仕様の都合で書きづらいので使い(え)ません.)
予測方法
予測方法は過去の記事にまとめました.また,基本的には出版済みの論文と同じアルゴリズムです.
過去記事を読むのが面倒・・・という方は,以下の数点のみ踏まえて先に読み進めてください.
・実力評価値 (「レーティング」と呼称することもあり) はおおむね得失点比の大小
*実力推定と予測モデルはほぼイロレーティング
・対戦相手を考慮する
・ホームアドバンテージを考慮する
・直近の試合結果ほど重視する (おおむね,半年前は直近の半分の重みとする)
・実力評価値の差で勝分負それぞれの確率を説明する.
予測結果
J1の予測正解率の推移を示します.実力評価には何試合かの結果が必要ですので,4月13日(第7節)からを予測対象としています.各チームの実力評価値は試合前日までの全試合結果に基づき算出します.たとえば,4月13日の予測は開幕から4月12日までの全ての試合結果に基づきます.
横軸は週の最終日(月曜始まり日曜終わり),縦軸は予測上位チームの勝(紺),引き分け(緑),負(黄)で,引き分けを0.5勝0.5敗とした値が青点線です.勝・分・負それぞれの最終割合は0.496, 0.238, 0.265でした.これらはJ2(0.481, 0.257, 0.262),J3(0.441, 0.215, 0.348)で似たような傾向ですが,若干J3は予測が難しかったシーズンでした.
次に,横軸に予測勝率(引き分けを0.5勝とみなした値),縦軸に実際の結果をとった図を示します.縦軸は,上図:(勝ち+分け/2)の割合,下図:頻度としています.
上図の斜め点線は予測と結果が一致した場合を示しています.予測勝率が大きいチームが実際に勝っている割合が多い,とはいえますが,予測勝率が0.7を超えても実際はそうでもない(引き分けを換算した勝率で0.6前後),という結果になりました.
予測の良さを定量的に評価します.予測正解率に加え,以下の二つの指標を利用します(図中に記載済みです).
LogLossは対数損失と呼ばれる値で,勝ち負けが必ず決まるスポーツに対して予測勝率を全て0.5としたときに1,適切な予測勝率ほど0に近くなる評価指標です.サッカーでは引き分けがあるのであまり小さくならない傾向にあり,今回も1.0を若干越えています.J2(0.972)およびJ3(1.037)でも1.0付近の値です.
Calibrationは較正値と呼ばれる値で,
(優位予測チームの予測勝率の合計)/(優位予測チームの実勝利数)
で定義されます.ここでも引き分けは0.5勝0.5敗とみなしています.1.0が最も適切で,今回は1.12と上位チームを試合前に過大に評価していたことがわかります.J2(1.080)およびJ3(1.175)いずれも過大評価傾向で,これを修正するのが今後の課題になりそうです.
実勝利数との比較
予測勝率が算出できますので,実際の勝利数との差も比較できそうです(工作をサボったので勝点ではありません・・・).7節以降での(勝利+分け/2)数の予測と実際の値を示します.横軸は勝利数,数値は(予測勝利数)-(実(勝利+分け/2)数)
多くのチームが±3.0勝程度に納まっている中,名古屋が圧巻の-7.5勝・・・ああ名古屋・・・(注:筆者は名古屋生まれ育ちのゆるい名古屋サポ),という結果に.序盤好調で評価が高かったにもかかわらず勝てない時期が長く続いたことがこの値に反映されています.
こちらはJ2およびJ3の結果を貼ります.各チームサポの皆様お楽しみください.
評価値の推移
実力評価値の推移は別ページにちょっとインタラクティブなやつを用意しましたのでそちらをご覧ください.作業量の都合でJ1のみです.
スクリーンショットはこれ.リンク先はタップで値が出ます.
他競技との比較
得失点のみを利用している予測モデルなので,他競技との比較が可能です.というよりも,実はそれが目的です.
[*1] 引き分けを不正解とみなした値 [*2]一次リーグ途中からの予測結果 [*3]公式ランキングに基づく予測
敗退すると試合がなくなるワールドカップと比べると,同一チームと複数回対戦するリーグ戦では当然予測正解率は下がります.また,昇降格制度でチームの実力均衡を意図しているリーグ戦は予測が難しくなりそうです.しかし,同一対戦が多いBリーグよりも予測正解率が低いです(引き分けを0.5勝とみなしても,予測正解率は0.596).ラグビーやバレーボールの国際大会は「チーム名でほとんど結果が見える」程度の予測しやすさ,Bリーグはちょっと番狂わせを含む,そしてJリーグはかなり「予測しにくい」競技・リーグであることがわかります.
(本来であればプレミアやリーガとの比較が必要ですが,データ取得をサボって締切が来たのでご容赦ください.)
オマケ:ポアソン分布を利用したシミュレーション
noteで書いたか忘れてしまったんですが,ポアソン分布を使うと平均得失点から結果を近似的にシミュレーションすることができます.さわって遊べるシミュレータを作ったのでみなさま遊んでください.
スクショはこれ.
疲れました!それではまたTwitterでお会いしましょう!フォロー大歓迎です!!