notebook 001

notebook 001

INPUTとOUTPUTの個人的な備忘録です。

見よう見まねでアトリビューション分析

第74回R勉強会@東京 (#TokyoR) にて「Soccer × Attribution Analysis」の題目で発表しました - u++の備忘録
で紹介されている内容を、昇格したばかりながら開幕から3連勝J2首位、と恐ろしく強い、FC琉球について実行してみる。
※方法やRのソースコードはそのままでデータだけ変更してやってみた、の、実行ログです。

やったこと

詳しい内容はリンク先を参照。アトリビューション分析により、ゴール以外も考慮した各選手の貢献度を算出している。

データ準備

ゴールに至るまでの選手間のパス状況を、2019J2第1節〜第3節の3試合・全9ゴール分確認。(dazn再生して人力で確認)
例えば、第1節福岡戦、82分の富所選手のゴールは

"徳元 > 中川 > 中川 > 小松 > 小松 > 富所" と表現。

  • 徳元選手→中川選手→... とパスを繋ぎ、最終的に富所選手がゴール
  • 中川 > 中川 とは、中川選手がドリブルしたことを示す

なお、ドリブルの定義が曖昧な点(長めのものを感覚的にカウントしたので基準がブレてる可能性が大いにあり)と、選手名に間違いがあるかもしれない点はご容赦を。

実行

冒頭の記事で公開されている Rのソースコード上で、データ部分だけを変えて実行。

# VS 福岡 23,72(PK),82
# VS 大宮 16,56,58,61
# VS 愛媛 10,75
path <- c(
  "西岡 > 風間 > 西岡 > 増谷 > 岡崎 > 徳元 > 中川 > 鈴木",
  "鈴木",
  "徳元 > 中川 > 中川 > 小松 > 小松 > 富所",
  "上里 > 中川 > 中川 > 田中",
  "上里 > 風間 > 徳元 > 鈴木 > 風間 > 上里 > 田中 > 中川 > 鈴木",
  "上里 > 西岡 > 田中 > 西岡 > 鈴木",
  "中川 > 中川 > 上門 > 上門",
  "上門 > 上門",
  "上里 > 上門 > 徳元 > 上里 > 岡崎 > 西岡 > 中川 > 西岡 > 岡崎 > 福井 > 徳元 > 岡崎 > カルバハル > 上里 > 田中 > 鈴木"
)

結果

終点モデル(=ゴールした選手)

f:id:mkmkipy:20190314235114p:plain
終点モデル

起点モデル(=ゴールまでの流れで一番最初の選手)

f:id:mkmkipy:20190314235153p:plain
起点モデル

線形モデル

2列目上門選手、中川選手がUp

f:id:mkmkipy:20190314235216p:plain
線形モデル

マルコフ連鎖モデル

中盤の上里選手がUp。両SBの西岡選手、徳元選手もUp。

f:id:mkmkipy:20190314235238p:plain
マルコフ連鎖モデル

遷移確率行列

f:id:mkmkipy:20190314235307p:plain
遷移確率行列

計算結果に関する感想

  • マルコフ連鎖モデルにより、両SBの選手も貢献度が上がってきている点が興味深い。
  • FC琉球の試合を見るのは初めてだったが(しかもこのゴールシーンしか見てないけれど)、見た内容で受けた印象と、計算結果(貢献度の値)が、大きく違和感のない結果となり、アトリビューション分析ってすごい(小並感)。注目すべき選手を知るのにいいきっかけとなった。