2015年10月4日日曜日

過去5年間のリーディングサイアー成績を眺めてみた~ディープインパクトって実際・・・

最近、「100万人のWinning Post2015」にドハマりしてます。
簡単に海外G1勝ち過ぎるんでゲームバランスどうかなーって思いつつも勝ち続けると楽しいもんですね。

 ゲームに限らず、過去の名馬に関する情報を調べる頻度も多くなってきましたが、ダビスタなんかも並行してプレイしていると「サンデーサイレンスの種付料高っけ!これ結局ペイしてるの?」なんて小市民なりに思うこともあります。まぁ、馬主になって「ペイがどうこう」言う人はいないと思いますが(笑)

過去5年分のリーディングサイアーランキングを、軽く分析してみた。


・・・ということで、せっかく興味も湧き返したことですし、過去5年分(10~14年度)のリーディングサイアー(※1)ランキングを軽く分析(※2)してみましたよ。
※1:ある国、ある地域、もしくは団体において、1シーズンの産駒の獲得賞金の合計額による種牡馬の順位のこと、または単にその順位で1位になった種牡馬のこと。
※2:「散布図で整理せや~」「他の指標と絡めて分析せや~」なんて声もありそうですが、R言語の練習も兼ねてますのでもう少々お待ちを。


サンプルデータについて


 「国内最大級の競馬情報データベース:JBISサーチ」の「年度別サイアー」における2010~2014年度(5年分)を拝借します。データの作り方は下記方法をご覧ください。
ブラウザからEXCELへのコピペでもデータ取得可能と思われますが、スクレイピング等される場合はサーバー負荷をかけないよう、コーディングは十分お気をつけください。


(R言語)readHTMLTable関数でJ2の順位を音速で抜き出す。

http://sapporomkt.blogspot.jp/2015/07/rreadhtmltablej2.html

無料のスクレイピングサービス「import.io」が脅威の進化!(いつのまにか)
http://sapporomkt.blogspot.jp/2015/08/importio.html

【R言語】data.frameの列名変更は全部上書きで。
http://sapporomkt.blogspot.jp/2015/09/rdataframe.html

【R言語】競馬データで「rbind関数」の使い方を覚えよう!
http://sapporomkt.blogspot.jp/2015/09/rrbind.html

  

軽く、分析してみた。


 「分析」ってほどでもないですね。とりあえず「集計&グラフ化」です。
 まずは、「勝利回数トップ20」です。一位はダントツで「キングカメハメハ」でした。
 父はアメリカの名種牡馬「Kingmanbo」。お父さんはあの大種牡馬「Mr.Prospector」!
競馬ゲームの中では「Kingmanbo」は「ダート得意」特性がよく付いている印象がありますが、「キングカメハメハ」が日本ダービーでレコード勝ちしていることもあり、スピード馬も結構輩出しています。

 「ディープインパクト」は初年度が2008年ということもあり、出走回数自体が少ないことも影響していると思われます(7,051回。トップの「クロフネ」は14,669回)


 続いては、「重賞勝回数」。トップは相変わらず「キングカメハメハ」ですが、2位に「ディープインパクト」が現役さながらの末脚で2位に急伸しています。3位にダートレースが得意な「サウスヴィグラス」、4位に「ゴールドアリュール」がランクインしているのはしびれますねぇ。
ちなみに、「ゴールドアリュール」の2015年度の種付料は300万円。飽和状態にあるサンデーサイレンス系でも満口になるのですから、コスパの良さが評価されるのも頷けます。
 

 こうなると「産駒がどれだけ稼いでいるか」が気になるところ。
同様に「2011~14年度」の「収得賞金※」順で見てみましょう 。
※収得賞金=獲得賞金ではないです。結構複雑なので気になる方は調べてみてくださいね。

 トップ20を見ると、「キングカメハメハ」と「ディープインパクト」の賞金額が僅差となっています。3位の「シンボリクリスエス」だって頑張っているのですが、ずいぶん水をあけられていますね。


  最後に「重賞での収得賞金」を見ると、「大レースに強いディープインパクト」像がはっきり見えてきますね。また、「オルフェーヴル」等の大物産駒を輩出した「ステイゴールド」が上位にあがっているのもわかりますね。逆にダートレースは重賞数や賞金が少ない分、先ほど言及した「ダート系種牡馬」はランキングが下がります。


  今回は、シンプルにランキングをとってみましたが、次回以降は各変数との関係性等も分析していこうかと考えています。

ソースコード


 背伸びしてdplyr関数使いましたが、後でaggregate関数でも十分なことに気がついた・・・。

library(dplyr)
library(tidyr)

 
# dplyr関数で処理された結果を win_count変数に渡しているのがミソ。
win_count <- jbis10_14.dat %>%
dplyr::group_by(種牡馬名) %>%
dplyr::summarize(total_win = sum(勝利回数)) %>%
dplyr::arrange(desc(total_win)) %>% head(20)


こっちでも結果同じです。

aggregate(勝利回数 ~ 種牡馬名, jbis10_14.dat, sum)

0 件のコメント:

コメントを投稿