名前はまだない

データ分析とかの備忘録か, 趣味の話か, はたまた

【RStan】FIBA W杯の日本代表って組み合わせ次第で2ndラウンド行ける可能性あったんじゃね?をデータで検証

はじめに

FIBA W杯が開催されて日本代表の活躍が話題になりましたね。

私も現地までは行けませんでしたが、テレビの前で応援していました。

また強化試合は数試合に参加しました。 特にスロベニア戦は日本ベンチ裏の席がとれでテンションあがってましたね。

さて、W杯において日本代表がいたグループは、死のグループと言われていました。

確かに優勝したドイツ、NBA選手の方が多かったオーストラリア、勝てたとは言え長身揃いのフィンランド

野暮ですが「日本代表って組み合わせ次第で決勝ラウンド行ける可能性あったんじゃね?」と思うわけです。

そこで、今回はデータを使って日本代表が決勝ラウンドに進出できたかどうかを簡単に検証していきたいと思います。

まあ、ネタ分析だと思ってください。大会側はくじ引きによる影響をなんとかしろとかいう意図はありません。

元々の組み合わせ抽選ルール

はじめにFIBA W杯の組み合わせ抽選のルールを調べてみました。

www.sportingnews.com

振り分けルールはざっとこんな感じ。

  • FIBAランキング上位順にポット8に分ける(フィリピンはポット1)

  • ポット1、3、5、7のチームはグループA、C、E、Gに、ポット2、4、6、8のチームは、グループB、D、F、Hに振り分ける

  • アフリカ大陸、アメリカ大陸、アジア大陸の各チームは同じグループには入らない。ヨーロッパのチームが同じグループに入るのは最大で2チーム

  • 開催国のフィリピンはグループA、日本はグループEに入る

  • アメリカはグループC、スロベニアはグループF、カナダはグループHに入る

思ったより例外が多いように見えますね。

日本と同じグループに入る国は抽選前から以下の9ヶ国に限られるようです。

ほうほう、どんな組み合わせでもツラいじゃねーか笑

そして組み合わせは16パターンしかないようです。

では定量的に評価していきましょう。

分析方法

はじめに全92試合の結果から各国の強さを調べたいと思います。

直接総当たりで対戦すれば各国の強さを評価できそうですが、現実的には特定の組み合わせの試合しかないため無理です。

そのため各試合の勝敗をベイズモデリングにより表現し、各出場国の潜在的な強さレベルを推定します。

この強さレベルを比較することで日本代表が決勝ラウンドに行けた可能性を探ります。

設定したモデルは以下のようなものです。

 
\displaystyle{
\begin{align}
W_{ij} &\sim Bernoulli(p_{ij}) \\
p_{ij} &\sim logit^{-1}( P_{ni} - P_{nj})  \\
P_{ni} &\sim Normal(\theta_i , \sigma_i) \\
\theta_i &\sim Normal(0, \psi_i) \\
\sigma_i &\sim Gamma(10, 10) \\
\psi_i &\sim Gamma(10, 10) \\
\end{align}
}

W_{ij} は出場国iが出場国jに勝ったか、 P_{ni} はn番目の試合における出場国iの強さ、 \theta_i は出場国i潜在的な強さのパラメータです。

なお、モデリングには以下の書籍を参考にしています。

コード

このモデルをRstanで記述して、Rで実行しました。

data {
  int<lower=1> N;
  int<lower=1> M;
  int<lower=1> Home[N];
  int<lower=1> Away[N];
  int W[N];
}

parameters {
  real theta[M];
  real<lower=0> sigma[M];
  real<lower=0> psi;
  real performance[N,2];
}

transformed parameters {
  real p[N];
  for (n in 1:N) {
      p[n] = inv_logit(performance[n,1] - performance[n,2]);
  }
}

model {
  for (n in 1:N){
    performance[n,1] ~ normal(theta[Away[n]], sigma[Away[n]]);
    performance[n,2] ~ normal(theta[Home[n]], sigma[Home[n]]);
  }
  W ~ bernoulli(p); 
  theta ~ normal(0, psi);
  sigma ~ gamma(10, 10);
  psi ~ gamma(10, 10);
}

結果

推定された潜在的な各出場国の強さレベル \thetaを表示します。

単純な順位は15位となりました。そしてドイツが強いですね。

しかし、信用区間が広いですし勝数の影響が強く出ていますね...

また、試合ごとのばらつきも出してみました。

ん〜、どのチームも差がないと出ています。

ばらつきの大きさを推定するには、情報量=試合数が足りないようです。

以上のように、得られた情報の質は高くありませんした。

シミュレーション

推定された結果を基に、組み合わせが変化したときに結果がどうなるのかを推定します。

上で記した組み合わせ抽選方法を再現したいと思いましたが、結構めんどくさいので諦めました。

日本は9ヶ国のうち3ヶ国しか対戦しないため、可能性のある16パターンのみをシミュレートします。

対戦国iとの1試合の勝敗W_{i}は、推定したパラメータ\theta, \sigmaを用いて取得しました。

 
\displaystyle{
\begin{align}
W_{i} &\sim Bernoulli(p_{i}) \\
p_{i} &\sim logit^{-1}( P_{jpn} - P_{i})  \\
P_{jpn} &\sim Normal(\theta_{jpn} , \sigma_{jpn}) \\
P_{i} &\sim Normal(\theta_i, \sigma_i) \\
\end{align}
}

各組み合わせの予選ラウンドの試合のシミュレーションを2000回行い、日本の2ndラウンド出場確率を算出しました。

結果として、2ndラウンド出場確率は47.6%と出ました。

シミュレーション途中で算出したベルヌーイ分布のパラメータp_{i}を可視化してみました。

また各対戦国の期待勝率は以下のようになりました。

ん〜、この結果からもドイツの強さがわかる気がします。

各組み合わせパターンにおける2次ラウンド進出率の期待値も出してみました。

どうやらドイツ以外のポット3の国だったら、可能性が上がったようです笑

まとめ

FIBA W杯で組み合わせ次第で日本代表って2ndラウンド行ける可能性あったんじゃないかを簡単に検証しました。

結果として、進出期待値は47.6% : 約1/2で進出できる可能性があり、さらにドイツと当たらなければ2次ラウンドに進出できたのではと思ってしまいます。

まあ、たら話に過ぎません。

来年のパリ五輪を全力で応援しましょう。