R Decision Tree 決定木でサッカーの勝敗を予測する
0. 使用するデータと仮説立案
今回はサッカーの勝敗・試合内容の履歴データから、勝敗の要因や勝敗を予測するモデルを作成してみたい。使用するデータはこちら(出典:Football LAB)。(少し長いです)
0.1 今回の分析の目的
ビッグデータはビジネスの世界のみならず、スポーツにまで大きく影響を与えている。大量データの処理、保存が可能になったことで、スポーツに関するデータ分析が進展し、これまでの常識を大きく覆されることもあるようだ。今回は、Jリーグの過去の試合データ決定木を用いて分析し、サッカーの勝利に寄与する要因の分析と勝敗の予測を実施していきたい。
0.2 フィッシュボーン図で仮説を立てる
今回は「試合の勝敗」について興味があるので、フィッシュボーン図で影響する要因の仮説を立てる。以下のようになる。
1. 勝因分析
1.1 決定木分析による要因分析
決定木分析の活用方法としては、大きく原因分析と予測がある。「原因分析」場合は、手元にあるデータ全部を使ってやってみることが重要。まず、ホームチームの勝敗を目的変数に、それ以外の変数を説明変数にして決定木を作成する。ただし、対戦カードのデータはサンプル数が極めて限られるため除いたうえで実行した。
【決定木(全データ)】
まず、全量のデータを使うと、当然ながらホームチームの点数が最も寄与する要因となる。ホームチームのスコアが1.5点以上、つまり2点以上とっているか否かで勝敗が大きく変わる。2点以上とっている場合の勝率は75%、2点未満の場合の勝率は17%になることがわかる。2得点以上の場合に勝率が良いことは感覚的に不自然ではない。
では、得点以外ではどのような要素が勝敗に影響しているのであろうか。ホームチームとアウェイチームの点数を除いて 再度決定木を作成する。
【決定木(得点を除いたデータ)】
ホームチームのシュート成功率とアウェイチームのシュート成功率が重要であることが分かる。量(シュート数)よりも質(シュート成功率)がサッカーの勝利に寄与することがわかる。続いて、シュート成功率を除いて同様に決定木を作成する。
【決定木(得点、シュート成功率を除いたデータ)】
アウェイチームのクリア数、続いてホームチームのシュート数が寄与することが分かる。アウェイチームのクリア数が26回以上になった場合ホームチームの勝率は25%程度になる。
1.2 勝敗の要因考察
ホームチームの勝利には得点を2点以上とること、そしてシュート成功率を高めることが最も重要。また、次いでアウェイチームにクリアをされる回数が重要であることがわかる。また、今回の分析において、攻撃に関する変数が常に最上位にきていたことから、サッカーの勝利には守りよりも攻めが肝要であると言える。
2. 勝敗予測
2.1 予測モデルの作成
「予測」の場合は、事前に入手できるデータと出来ないデータを区別することが重要。今回のデータで言うと、事前に入手できるデータは以下に記載の通り。
決定木作成におけるcpの設定は、plotcp関数により、下記のグラフより判断。X-validation Relative Errorより、cpを0.037に設定。
作成されたモデルは以下。対戦カードで勝敗を予測するモデルとなった。
2.2 モデルの精度評価
作成したモデルに対してテストデータを当てはめ、モデルの精度を評価する。
2.2.1 混同行列
predicted
correct Lose or Draw Win
Lose or Draw 157 41
Win 98 44
モデルの精度(Accuracy)は0.59
2.2.2 予測のヒストグラム
勝、負or引 ともに、30%-70%を中心に分布。
2.2.3 ROCカーブ
AUCは0.57。予測モデルの精度としては芳しくない。
2.2.4 R-squared
"R:0.2 ,R^2:0.04"
当然のことながら、絶望的に悪い精度である。
2.3 実際のデータで予測してみる
Jリーグ第11節の対戦カードを元に予測を実施。※アビスパ福岡は2015年にJ1に昇格し、データが不足しているため今回の予測対象外とする。
予測結果は8試合中5試合を的中。的中率は62.5%。
predicted
correct Lose or Draw Win
Lose or Draw 5 2
Win 1 0
2.3 結果の考察
予測モデルとしての精度は非常に低く、対戦カードでは勝敗が決まりにくいスポーツであることが分かる。
改善の方向性としては、①説明変数を増やすこと、②チームごとに戦術が異なっているため、チームごとにモデルを作ること、③年度による傾向の違いが見られる場合、モデルの作成に使用するデータの期間を短くすること、が挙げられる。