R Decision Tree 決定木でサッカーの勝敗を予測する

0. 使用するデータと仮説立案

今回はサッカーの勝敗・試合内容の履歴データから、勝敗の要因や勝敗を予測するモデルを作成してみたい。使用するデータはこちら(出典:Football LAB)。(少し長いです)

f:id:nakhirot:20160628161823p:plain

0.1 今回の分析の目的

ビッグデータはビジネスの世界のみならず、スポーツにまで大きく影響を与えている。大量データの処理、保存が可能になったことで、スポーツに関するデータ分析が進展し、これまでの常識を大きく覆されることもあるようだ。今回は、Jリーグの過去の試合データ決定木を用いて分析し、サッカーの勝利に寄与する要因の分析と勝敗の予測を実施していきたい。

0.2 フィッシュボーン図で仮説を立てる

今回は「試合の勝敗」について興味があるので、フィッシュボーン図で影響する要因の仮説を立てる。以下のようになる。

f:id:nakhirot:20160628162708p:plain

1. 勝因分析

1.1  決定木分析による要因分析

決定木分析の活用方法としては、大きく原因分析と予測がある。「原因分析」場合は、手元にあるデータ全部を使ってやってみることが重要。まず、ホームチームの勝敗を目的変数に、それ以外の変数を説明変数にして決定木を作成する。ただし、対戦カードのデータはサンプル数が極めて限られるため除いたうえで実行した。

【決定木(全データ)】

f:id:nakhirot:20160628163018p:plain

まず、全量のデータを使うと、当然ながらホームチームの点数が最も寄与する要因となる。ホームチームのスコアが1.5点以上、つまり2点以上とっているか否かで勝敗が大きく変わる。2点以上とっている場合の勝率は75%、2点未満の場合の勝率は17%になることがわかる。2得点以上の場合に勝率が良いことは感覚的に不自然ではない。

では、得点以外ではどのような要素が勝敗に影響しているのであろうか。ホームチームとアウェイチームの点数を除いて 再度決定木を作成する。

【決定木(得点を除いたデータ)】

f:id:nakhirot:20160628163050p:plain

ホームチームのシュート成功率とアウェイチームのシュート成功率が重要であることが分かる。量(シュート数)よりも質(シュート成功率)がサッカーの勝利に寄与することがわかる。続いて、シュート成功率を除いて同様に決定木を作成する。

【決定木(得点、シュート成功率を除いたデータ)】

f:id:nakhirot:20160628164240p:plain

アウェイチームのクリア数、続いてホームチームのシュート数が寄与することが分かる。アウェイチームのクリア数が26回以上になった場合ホームチームの勝率は25%程度になる。

1.2 勝敗の要因考察

ホームチームの勝利には得点を2点以上とること、そしてシュート成功率を高めることが最も重要。また、次いでアウェイチームにクリアをされる回数が重要であることがわかる。また、今回の分析において、攻撃に関する変数が常に最上位にきていたことから、サッカーの勝利には守りよりも攻めが肝要であると言える。

2. 勝敗予測 

2.1 予測モデルの作成 

「予測」の場合は、事前に入手できるデータと出来ないデータを区別することが重要。今回のデータで言うと、事前に入手できるデータは以下に記載の通り。

f:id:nakhirot:20160628164900p:plain

決定木作成におけるcpの設定は、plotcp関数により、下記のグラフより判断。X-validation Relative Errorより、cpを0.037に設定。 

f:id:nakhirot:20160628165207p:plain

作成されたモデルは以下。対戦カードで勝敗を予測するモデルとなった。

f:id:nakhirot:20160628165215p:plain

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 予測のヒストグラム

f:id:nakhirot:20160628165739p:plain

勝、負or引 ともに、30%-70%を中心に分布。

2.2.3 ROCカーブ

f:id:nakhirot:20160628165848p:plain

AUCは0.57。予測モデルの精度としては芳しくない。

2.2.4 R-squared

"R:0.2 ,R^2:0.04"

当然のことながら、絶望的に悪い精度である。

2.3 実際のデータで予測してみる

Jリーグ第11節の対戦カードを元に予測を実施。※アビスパ福岡は2015年にJ1に昇格し、データが不足しているため今回の予測対象外とする。

f:id:nakhirot:20160628170045p:plain

予測結果は8試合中5試合を的中。的中率は62.5%。

                predicted

correct                  Lose or Draw Win

  Lose or Draw               5             2

  Win                              1              0

2.3 結果の考察

予測モデルとしての精度は非常に低く、対戦カードでは勝敗が決まりにくいスポーツであることが分かる。

改善の方向性としては、①説明変数を増やすこと、②チームごとに戦術が異なっているため、チームごとにモデルを作ること、③年度による傾向の違いが見られる場合、モデルの作成に使用するデータの期間を短くすること、が挙げられる。