データ分析するぞ
京都の調子がアレになってしたため、気分転換として前々からやりたいなと思っていたサッカー関連のデータ分析をしています。取得できるデータに制限あるのもあって、深い分析というのは出来ないとは思いますが、普段サッカーを見てて、そういえばこんな感じするけど実際データとしてはどうなの?ぐらいの疑問は、なんとか出来るのでは無いかと思います。あとはプログラムですね。最近やってないので勘を取り戻したい。
データを集める集める
さて、まずはデータを集めるところからですね。こんな時に頼るのはfootballラボになります。
具体的にはこのページになります。開催日、相手、スコア、シュート数、ゴール数などなど。試合のスタッツが表形式になっています。
実際にデータを集めるにはどうするか。もちろん手入力で書き写すというのはありますが(根性マイニングと呼ばれます)、それは大変ですねwそこでスクレイピングという手法を使ってデータを集めていきます。
スクレイピングとは、Webサイトからプログラムを使って半自動的にデータを集める方法です。一旦プログラムの雛形を書いてしまえば、対象シーズンのような、数値を変えるだけど、データを取って来れるようになるので、最初は大変ですが、作ってしまえば楽が出来るという訳です。
実際にPythonでプログラムを書く時には、こちらのサイトを参考にさせていただきました。大変感謝しております。最近は、ChatGPTがあるおかげで、ちょっとしたプログラムを書く時にはとても楽になりましたね。Pythonの関数の使い方とか、記述方法とか、しょうもない質問にも答えてくれるので、作業がはかどります。
そんな訳で、集めたデータはcsvファイル形式にまとめて、エクセルで見るようにしました。とりあえず、J1の2020年~2023年の4年ぶんのスタッツを収集してみました。
集めたデータが自分の手元にあるというのは、良いものですね。何か思いついた時にすぐ出来る状態ってのは、それだけでワクワクするものです。
ゴール期待値とゴールの関係について調べてみよう
ゴール期待値。ダゾーンの中継でも表示されていますし、だんだんとメジャーな指標になってきましたね。ゴール期待値とは、おおまかに説明すると、そのチームが打ったシュートがどれだけ得点になるかを確率で表記したものです。とはいえ、ゴール期待値と実際のゴール数、あまり一致していないなと感じだこと無いでしょうか。実際、自分はそう感じたので、集めたデータを使って調べてみる事にします。
データを使って調べるお題としては、
・ゴール期待値とゴール数は、法則性があるのか
・ゴール期待値が高ければ、ゴール数も多くなるのだろうか。
・ゴール期待値は指標としてどれだけ信用できるのだろうか
このあたりになります。
分析してみた
分析方法としては以下の様にしてみました。
[1]対象のチーム:該当シーズンの1試合平均得点。
[2]対象のチーム:該当シーズンの1試合平均ゴール期待値。
[1]と[2]を散布図としてグラフに描き、2つの数値の相関をとってみます。
相関が高ければ、ゴール期待値が高いほどゴール数は多くなる、と言えるでしょうか。
では実際に集計して相関係数を出したものを見てみます。
2020年~2023年の4シーズンを集計しました。
グラフの横軸が、1試合平均ゴール期待値。縦軸が1試合平均ゴール数になります。
相関係数の0~1の範囲の値で、1に近いほど相関がある事になります。
1に近いほど、ゴール期待値の数字が増えるほどゴール数も増える、と言えますね。
で、実際計算した数値を出してみると、なんとも言えない数値が出てきました。
2020年 相関係数: 0.91144
2021年 相関係数: 0.88212
2022年 相関係数: 0.74264
2023年 相関係数: 0.67222
0.9だと、相関が強い!と言えるのですが、0.67あたりになってしまうと、そうとは言えない・・ぐらいのニュアンスです。
この数値から、あれこれ考えるのがデータ分析です。
・2021年だけチーム数が20で、他の年は18ですが、特に影響はなさそう。
・近年はシュートに対する守備が良くなってる?(単純にGKのセービングが上手くなってるとか)
・4年分くらいでは、これくらいブレがでるものなのかも。というか、そもそもゴール期待値がこれくらいブレブレで、信頼できる指標ではないかも。
・いうても、20チーム程度(20個のデータ)の相関とか調べても、あんま意味のある数値にならないのでは・・・?
というわけど、今回の分析はここまで。何か思いついたら、試してみようかと思います。