はじめに
しばらく間が空いたが今回も引き続きPOGに関するデータ解析を行いたい。
とあるきっかけでアソシエーション分析なるものが存在することを知った。アソシエーション分析とは平たく言うと「{条件}=>{結論}」となる因子間の組み合わせ(アソシエーションルール)をある定められた条件に基づいて抽出する分析手法である。これは競馬にも使えそうだということで試してみる。
使用したデータ
これまでと同様2010-2013年までの期間に生まれた馬を解析対象とする。
解析手法の有効性が確かめられていない状態で膨大なデータを扱うと単なる徒労で終わる可能性があるので、今回は各馬の因子を「調教師」、「馬主」、「生産者」、「POG期間賞金が700万以上か否か」に絞った。
以下にデータの一部と全体の概要を示す。
解析
解析の流れ
アソシエーション分析の解析例はRが圧倒的に多い。使い慣れたPythonでもできなくはないようだが、今回はRを使うこととした。
データの下処理:Python
↓
アソシエーション分析:R
という分業体制で臨むこととする。
結果
アソシエーションルールの抽出はRのapriori関数で実行できるが、引数次第で得られる結果が左右される。今回support=0.00015としたのは全データのなかで最低でも4回(1回/年)は該当する組み合わせが出現してほしいという思いから設定した。conf=0.8の根拠はない。あえて言うならばデータを間引くためである。maxlen=5も根拠はない。defaultでmaxlen=5であることを踏襲した。
その結果6743ものアソシエーションルールが抽出された。これらのうち結論として「賞金が700万以上」であり、かつlift値が2.0より大きいものだけを抽出すると21件に絞られた。
これらのルールを可視化すると以下のようになる。実に混沌としたグラフであるが、少なくとも私がこれまで気にもとめていなかったような単語が現れているのが興味深い。
今後
アソシエーション分析はルール抽出の条件設定や結果の解釈方法が難しく、私個人がその妥当性を評価できるようになるまでは時間がかかりそうであるが、質的データが大半を占める競馬においては有効な手法である感触を得た。次回は血統の解析にまで手を広げPOGに有利な組み合わせをあぶり出したい。