u++の備忘録

第74回R勉強会@東京 (#TokyoR) にて「Soccer × Attribution Analysis」の題目で発表しました

本日開催された「第74回R勉強会@東京 (#TokyoR) 」にて「Soccer × Attribution Analysis」の題目でLTをしました。

tokyor.connpass.com


発表内容

概要

マーケティング分析の手法である「アトリビューション分析」を、趣味のサッカーに適用する話です。

課題と目的

f:id:upura:20181105204021p:plain

サッカーでは一般にゴールを取る人が目立つ傾向にありますが、ゴールに至る過程も同様に大切です。いわゆる「いぶし銀」の活躍をする選手も合わせて評価する仕組みを作りたいと考えました。

f:id:upura:20181105204041p:plain
f:id:upura:20181105204100p:plain

手法

そこで、全過程を考慮し評価するマーケティングの手法「アトリビューション分析」を用います。詳細は下記リンクなどをご参照ください。

アトリビューション分析 | リンクル【公式】 | 優秀賞受賞リスティング代理店

ケーススタディ

f:id:upura:20181105204109p:plain

DAZNで再生して、浦和レッズのゴールシーン4試合8ゴール分についてデータセットを作成しました。以下のような形式でデータを保持しています。

"森脇 > 興梠 > 興梠 > 宇賀神 > 槙野 > 柏木 > 宇賀神 > 青木 > 武藤"

「興梠 > 興梠」となっている箇所は、「興梠選手がパスを受け取ってドリブルをした」という意味です。

library(ChannelAttribution)

# ヒューリスティックモデルを推定
H = heuristic_models(Data, 'path', 'total_conversions')

# マルコフ連鎖モデルを推定
M = markov_model(Data, 'path', 'total_conversions', out_more = TRUE)

data.frameを作成し、Rの ChannelAttribution パッケージに突っ込みました。
CRAN - Package ChannelAttribution

結果と考察

f:id:upura:20181105204133p:plain
f:id:upura:20181105204137p:plain
f:id:upura:20181110123314p:plain
f:id:upura:20181105204143p:plain

全過程を考慮し評価する「線形モデル」や「マルコフ連鎖モデル」において、「終点モデル」や「起点モデル」であまり目立たなかった宇賀神選手、長澤選手、青木選手の貢献度が高くなっていると分かります。彼らは「点に直接は関与しなくても中盤で奮闘している選手」であり、ある程度定性的に妥当性ある結果が得られていると思います。

f:id:upura:20181105204158p:plain

マルコフ連鎖モデルでは、数式に基づいた応用的な議論の可能性も秘めています。例えば特定の選手が欠場した場合に「代わりに誰を入れることでゴール数を極力減らさないようにできるか」など、数字に基づいた検討が可能です。

f:id:upura:20181105204210p:plain

ちなみに、ChannelAttribution パッケージでは手軽に推移確率行列を出力できます。

結論

f:id:upura:20181105204208p:plain

今回の内容に利用したRスクリプトは下記です。

github.com

所感

TokyoRは初めて参加しましたが、よい塩梅で新規参加者も多く、過度に内輪になっていない非常に良いコミュニティだと感じました。

Rの日本コミュニティについては、特に下記スライドを気に入ってよく読んでいました。この発表をした Yutaniさん とも懇親会でお話できて、有意義な時間を過ごすことができました。

自分のLTについても、Twitterや懇親会でお褒めの言葉を預かり光栄でした。また機会があれば、積極的に外部発表をしていきたいと思います。