パフォーマンス分析
スポーツデータの分析を進める上で、データの壁にぶつかることは避けられません。この壁は大きく2つに分けられます。
1つはデータ量の壁、もう1つはデータ文脈の壁です。今回はデータ量に焦点を当て、その問題について考えてみましょう。
例えば、目の前にバスケ選手が2人いて、3Pシュートが上手い方の選手を起用したいと考えています。3Pシュートの上手さはどのように測ることができるでしょうか。
頻度論的確率
あるシーズンの富樫選手の3Pシュート試投数が500本、その内成功数が180本とすると、3P成功率は36%です。
これは頻度論的な考え方に基づいており、多くの人が納得する評価でしょう。
しかし、ある選手の試投数が10本で成功数が7本の場合、成功率70%として良いのでしょうか。
この選手を3Pシュートが上手い選手として起用した場合、実際には期待通りに活躍しない可能性もあります。
経験的には、プロ選手の3Pシュート成功率は30%台です。しかし、ある試合だけを見た場合、全ての3Pシュートが入ることもあれば、一本も入らないこともあります。
そのため、この試合結果だけで選手の3Pシュート成功率が100%や0%であると結論づけるのは危険です。データ量が少ない場合、そこから導かれる結論の信頼性が低くなるからです。
逆に、試投数が500本程度で成功率が40%を超えていれば、その選手を優れた3Pシューターと呼ぶことができるでしょう。
ドメイン知識を持つアナリストは、データ量を確認せずとも3Pシュート成功率が80%と表示されれば違和感を感じるでしょう。
真の確率とのギャップがそれを気づかせてくれます。
いずれにせよ、少ないデータ量でも信頼できる結果を導く手法が求められます。
データパディング
ここで問題を再定義します。ある選手の真の3Pシュート成功率をできるだけ少ないデータで精度高く推定するにはどうすればよいでしょうか。
今回はベイズ推定を用いてデータを「パディング」する手法を紹介します。パディングとは、手元に少ないデータしかない場合でも信頼性のある結論を導くためにデータを補完する方法です。
ベイズ推定を用いる理由は、事前情報を加えることで、観察されたデータが少なくても真の3Pシュート成功率をより正確に推定できる可能性があるからです。
ただし、事前分布に強いバイアスがかかると、推定される3Pシュート成功率は事前分布に依存します。
一方、事前分布を無情報にすると、推定値は観察データに依存し、信頼性が低くなる可能性があります。
結論として、ベイズ推定を使うことで信頼性は向上しますが、完璧な方法ではありません。
ベイズ推定
ベイズ推定そのものの説明はここでは省き、早速モデルを定義します。
観測データ
観測データとして各試合ごとの3Pシュート試投数および成功数を持っているとします。
$𝑛_𝑖$ : 試合$i$における3Pシュートの試投数
$𝑘_𝑖$ : 試合$i$における3Pシュートの成功数
事前分布
事前分布としてベータ分布を設定します。ベータ分布は以下のように定義されます。
\theta \sim \text{Beta}(\alpha, \beta)
ここで、$𝛼$と$𝛽$は昨シーズンの3P成功率から計算されたパラメータとします。
\alpha = k_{\text{prior}} + 1
\beta = n_{\text{prior}} - k_{\text{prior}} + 1
尤度関数
各試合における成功率$θ$もベータ分布に従うと仮定します。試合$i$における成功数$k_i$は、試投数$n_i$に対する二項分布に従います。
k_i \mid \theta \sim \text{Binomial}(n_i, \theta)
事後分布
ベイズの定理を用いて事後分布を求めます。共役事前分布を仮定したことにより、事後分布もベータ分布の形になります。
\theta \mid \{(k_i, n_i)\}_{i=1}^N \sim \text{Beta}\left(\alpha + \sum_{i=1}^N k_i, \beta + \sum_{i=1}^N (n_i - k_i)\right)
ここで、$\sum_{i=1}^N k_i$はN試合の成功数の合計、$\sum_{i=1}^N (n_i - k_i)$はN試合の失敗数の合計です。
モデルの全体構造
\begin{aligned}
&\text{事前分布:} & \theta &\sim \text{Beta}(\alpha, \beta) \\
&\text{尤度関数:} & k_i \mid \theta &\sim \text{Binomial}(n_i, \theta) \\
&\text{事後分布:} & \theta \mid \{(k_i, n_i)\}_{i=1}^N &\sim \text{Beta}\left(\alpha + \sum_{i=1}^N k_i, \beta + \sum_{i=1}^N (n_i - k_i)\right)
\end{aligned}
このモデルを用いて、各試合ごとのデータを入力としてベイズ更新を行い、事後分布である3Pシュート成功率を推定します。
結果
バスケは1シーズン60試合ありますが、全試合出場した富樫選手の3Pシュート成功率が試合を重ねるごとにどのように推定されたかを確認しましょう。
上下に激しく変化している紫の線は、各試合の3P成功率です。時に6割を超え、時に0%でした。
青い実線は累積3P成功率です。例えば5試合目の累積3P成功率は1~5試合目までの3P成功数の累積和を3P試投数の累積和で割ったものになります。
そして、赤い実線がベイズのモデルで試合ごとに事後分布をベイズ更新によって求め、その事後分布の平均値を出力したものです。シーズンを通してほとんど上下はありませんが、なだらかに右肩下がりになっています。
ベイズ推定を用いるメリットは特に前半部分に表れています。
例えば、1試合目時点で、富樫選手の3P成功率は46%でした。しかし一般的にこれは高すぎます。
事前分布を設定したベイズ推定の結果を示す赤線では35%程度になっており、真の3P成功率に近しい結果となっています。
同様に10試合目時点では、累積の3P成功率が30%を下回っています。これは9,10試合目の不調の影響を受けた結果だと考えられます。赤線は依然として35%を少し下回る位置にあります。
デメリットについても触れておく必要があります。60試合時点でのデータを見てください。
残念ながら青線と赤線は一致していません。
これは、ベイズ推定で求められた3P成功率が事前分布の影響を受けているからです。
富樫選手は昨シーズンよりも3P成功率が低下してしまったにも関わらず、ベイズ推定の結果は依然として昨シーズンの結果に引きづられています。
1シーズン分の累積3P成功率と、昨シーズンのデータも含めたベイズ推定の結果のどちらが真の3P成功率なのかについては終わりのない議論を避けられませんが、2本の実線が一致しないことには留意が必要です。
2人の選手の3P成功率を比較する際、紫の折れ線、もしくは青の実線を使うよりも、赤の実線で比べる方信頼のおける方法だと言えそうです。
まとめ
データ量が少ない状況では、観測されたデータだけに頼るのはリスクが高くなります。特に頻度論的確率に基づいた推定では、データ量が十分でないと信頼性が低くなることが示されました。ベイズ推定を用いたデータパディングは、少ないデータからでもより信頼性の高い推定を行う手法として有効です。しかし、事前分布の設定には慎重さが求められ、長期的なデータの収集と分析が重要です。
弊社では、このようなパフォーマンス評価だけでなく、多角的な選手評価・チーム評価を行いながら、各プロクラブチーム様の業務改善に取り組んでいます。
取り組みの詳細やチームからの反響についてはこちらをご覧ください。
また、イークラウドにて株式投資型クラウドファンディングも開催中ですので奮ってご応募ください!
次回もスポーツデータ分析の記事を投稿します!