マガジン

  • Jリーグのレーティングを作る

    Jリーグの各チームのレーティング(強さの指標)を計算したいので、知識ゼロから学んでいく過程をつづったメモ。

最近の記事

すべてのレーティングモデルを比較する(イロレーティングの場合)

ここでは、イロレーティングの変動係数K、得点差の反映方法、ホームアドバンテージの値を変化させて、どれがもっとも正確なレーティングになるかを、損失関数である平均二乗誤差(MSE)を使って比較します。 変化させたもの ・変動係数 K: 10~50の2刻み(21通り) ・ホームアドバンテージ HA: 0~50の2刻み(26通り) ・得点差の計算方法 f(d): (7通り)  default (得点差を考慮しない)  WFER (World Football Ero Rating

    • サッカーの得点差によるレーティングの調整

      はじめに これまで学んできたイロレーティングやグリコレーティングは、どちらもチェスプレーヤーの強さの指標として作られたレーティングシステムです。 これをサッカーチームに応用しようと考えた時、試合の得点差によってある程度チームの強さがわかるのではと思いました。 経験上、実力差があればあるほど、得点差が開く傾向にあるのは、誰しも感じていることでしょう。 例外はもちろんありますが、アマチュアチームとプロチームが対戦した時には、多くの場合、プロチームが大差で勝つことになります。

      • 損失関数を使ってレーティングの正確性を評価してみる

        これまでで、どの種類がより正しいレーティングかなのかを検証するには、「損失関数」なるものを使えばよいことがわかりました。 今回は、レーティングの値と実際の結果を基に、損失関数を使って計算して、比較していきます。 使った損失関数とデータ 平均絶対誤差 (MAE: Mean Absolute Error) 平均二乗誤差 (MSE: Mean Squared Error) ロジスティック損失関数 (LogLoss) これらのうち、LogLossについては、結果が0か1かの

        • より正確なレーティングを算出するために(2) ~損失関数とは?~

          レーティングの算出方法と、その各種パラメータを決めるために、どのように比較したらいいだろうと考えてきました。 その比較方法のひとつが、「損失関数」と呼ばれているようです。 損失関数とは? さまざまなレーティング算出方法のひとつひとつを「モデル」とすれば、上記のやり方で、比較できることがわかります。 一般的によく使われている損失関数は? 「回帰問題」「分類問題」の意味と違いは? レーティングの算出において、予測値は0~1の間の連続値ですが、正解は1か0.5か0(勝ちか

        すべてのレーティングモデルを比較する(イロレーティングの場合)

        • サッカーの得点差によるレーティングの調整

        • 損失関数を使ってレーティングの正確性を評価してみる

        • より正確なレーティングを算出するために(2) ~損失関数とは?~

        マガジン

        • Jリーグのレーティングを作る
          20本

        記事

          より正確なレーティングを算出するために

          レーティングを比べたものの… これまで、イロレーティング (Elo Rating System) と グリコレーティング (Glicko Rating System) の2種類のレーティングの計算方法を学び、それぞれ、得点差とホームアドバンテージを考慮したバージョンを作って、計4種類を比較してきました。 いったい、これらの中のどれがより正確なレーティングなのでしょうか? それぞれのパラメータ(変動係数Kや、レーティング偏差、得点差の組み込み方など)も微調整できますので、

          より正確なレーティングを算出するために

          1993年のJリーグのレーティング推移(2)

          前回は、イロレーティングとグリコレーティングのオリジナルの計算法で、1993年のJリーグのレーティングを算出しましたが、今回は独自のアレンジを追加したもの、つまり、得点差とホームアドバンテージを考慮したレーティングの推移を見てみたいと思います。 前回のページはこちら 使用したデータは、前回と変わらずJリーグ初年度である1993年のリーグ戦の試合結果です。 今回の「得点差とホームアドバンテージを考慮したバージョン」をそれぞれElo+(あるいはE+)、Glicko+(G+)と

          1993年のJリーグのレーティング推移(2)

          1993年のJリーグのレーティング推移

          これまでで、イロレーティングとグリコレーティングについて学び、計算することもできるようになりましたので、実際に1シーズンを通してレーティングの算出をして、その推移を見てみたいと思います。 使用したデータはJリーグ初年度の1993年のリーグ戦の試合結果です。 イロレーティングの推移 算出方法は、レーティングの初期値が1500、変動係数Kの値は20に設定してあります。 得点差やホームアドバンテージは考慮していない、いわゆるオリジナルの計算方法です。 グラフを見ると、最初の

          1993年のJリーグのレーティング推移

          Jリーグのホームアドバンテージ

          できるだけ正確なレーティングを求めるために、Jリーグのリーグ戦のホームアドバンテージ(ホームチームの優位性)がどの程度かを調べておきます。 ホームアドバンテージとは? 30年分のデータ 1993年から2022年までのリーグ戦(J1+J2+J3)30年分のデータは以下の通りです。 試合数: 19,914 ホーム勝ち: 8,512 (42.74%) 引き分け: 4,471 (22.45%) アウェイ勝ち: 6,931 (34.80%)  ※PK戦での決着は引き分けに含んで

          Jリーグのホームアドバンテージ

          グリコレーティングの計算用PHPコード

          シンプルバージョン シンプルなグリコレーティング (Glicko Rating System) 用のPHPコードです。 <?phpdefine('PERIOD', 15);define('YEAR', 2);define('C', sqrt((350 ** 2 - 50 ** 2) / (365 * YEAR / PERIOD)));define('Q', log(10) / 400);$a0 = ['r'=>1500, 'rd'=>350, 'day'=>7];$b0

          グリコレーティングの計算用PHPコード

          イロレーティングの計算用PHPコード

          シンプルバージョン シンプルなイロレーティング (Elo Rating System) 用のPHPコードです。 <?phpdefine('K_FACTOR', 20);$rating_A = 1600;$rating_B = 1500;$goal_A = 2;$goal_B = 1;[$a, $b] = calc_elo($rating_A, $rating_B, $goal_A, $goal_B);echo "A=$a, B=$b";exit;function calc

          イロレーティングの計算用PHPコード

          実際に計算してみる(グリコレーティングの場合)

          グリコレーティング (Glicko Rating System) の計算方法を前項までで学んできたので、実際の試合データを使って、イロレーティングの時と同じように計算してみようと思います。 算出にあたって 今回使ったデータは、イロレーティングの時と同じで、1993年5月15~16日に行われたJリーグの5試合です。 この試合は、Jリーグが開幕して最初の試合で、10チームにより行われました。 各チームのレーティングは初期値である1500、レーティング偏差も初期値として推奨さ

          実際に計算してみる(グリコレーティングの場合)

          グリコレーティングの計算式を読み解く

          計算式を単純化する 上記はグリコレーティングでの新しいレーティングを求めるための計算式です。 複雑すぎるので、以下のような簡単な式に変換します。 複数の相手と連続して対戦した場合を考慮して、元の計算式にはΣが入っていますが、ここでは無視しました。 新しいレーティング=  元のレーティング + 係数 × 重み ×(実際の勝率-期待勝率) という意味になります。 イロレーティングの場合と違うところは、重みgが加わり、Kの値が固定から可変になったところ、また、期待勝率の計算

          グリコレーティングの計算式を読み解く

          グリコレーティングの基礎知識(2)

          期待勝率の算出に相手のレーティング偏差を使う理由は? グリコレーティングの期待勝率(We)を求める時に、イロレーティングと唯一違うところが、g(RDi)というものをかけている部分です。RDiは対戦相手のレーティング偏差のことで、それを使って重み(g)をつけていることになります。 このgは0から1の範囲に収まるように計算され、相手のレーティング偏差が小さい場合は1に近づき、大きい場合は0に近づくようになります。 その値を相手とのレーティングの差にかけることで、期待勝率があま

          グリコレーティングの基礎知識(2)

          グリコレーティングの基礎知識

          グリコレーティング (Glicko Rating System) について学んでいきます。 グリコレーティングとは? レーティング偏差とは? レーティング偏差はレーティングの信頼度と言えます。 実際にどの程度信頼できるかをグラフを使って視覚化してみました。 レーティングが1500と言われても本来の実力は違う場合があります。 レーティング偏差を使えば、おおよそこの辺りということがわかります。 レーティング偏差350の青いラインは、平らに広がっていて信頼度が低いことがわ

          グリコレーティングの基礎知識

          実際に計算してみる(イロレーティングの場合)

          イロレーティング (Elo Rating System) の計算方法を前項までで学んできたので、実際の試合データを使って計算してみようと思います。 算出にあたって 今回使ったデータは、1993年5月15~16日に行われたJリーグの5試合です。 この試合は、Jリーグが開幕して最初の試合で、10チームにより行われました。 最初なので、各チームのレーティングは初期値である1500とし、Kの値は20で算出してみました。 また、表計算ソフトとして、Googleスプレッドシートを

          実際に計算してみる(イロレーティングの場合)

          レーティングの実際の算出事例

          サッカーチームのレーティングを算出するにあたって、海外のサイトで実際にどのように計算されているかを調べてみました。 World Football Elo Ratingsの場合 World Football Elo Ratings ( https://www.eloratings.net/ ) というサイトでは、国際Aマッチのデータを使って、各国のナショナルチームのレーティングを算出しています。aboutページにその詳しい計算方法がありましたので、紹介します。 Kの値は大

          レーティングの実際の算出事例