ウイニングポスト9 2020 3周目 SP昇華箱庭でデータ採集・分析編 その11

前回、2042年頃にようやく欧州〆配合が終了し、その段階でデータ採取も終結させることにしました。

この記事では今回のプレイで採取できたデータを、プログラミング言語のひとつであるPythonを用いて分析していきます。

文章を長々と読むのが面倒だという方のために、恐らく確かそうだと結論付けた点について、下記にまとめておきます。

〇産駒のSP値には、一にも二にも爆発力!!が結構強く影響しているのだ(知ってた)。

〇爆発力の他に、4代血統内のSP因子数(←NEW!)、父母のSP値、父母の仔だし値、父母の繁殖ボーナス、SP因子活性などが影響ありそう。

〇SP因子大活性前提で、爆発力40以上の配合からSP値80以上の産駒が出る確率は20%前後。8シリーズからSP値計算式自体が改変されたと結論。繁殖ボーナスのフタは無い。

〇SP因子大活性前提で、爆発力30以上39以下の配合でSP値80以上の産駒の出現確率は9%前後。同様に20以上29以下で4%前後。19以下は非常に低くウマ娘のガチャよりもシビアと知れぃ!でも爆発力がほとんど無くてもSP70くらいならそれなりに出る。

〇ST値には、父母のST値の影響力がかなり強く、それで4割弱くらい説明できそう。

〇サブパラには、父母のサブパラ値の影響がかなり強く、他、父母の仔だし値、父母の繁殖ボーナスなどの影響があり、これらで5割くらい説明できそう。

〇母の馬齢と仔だしの関係は、馬齢が嵩むに連れて、仔だしは一旦上がってから下がる分布と思われる。

以上!終わり!

では下記から分析の結果と説明に入ります。

 

【各項目とその説明】

まずはデータを採った項目のおさらいと説明です。

 

ID・・・サンプルを採った当歳幼駒のIDナンバー(それ以上の意味は無し)

fa age・・・当歳幼駒の(以下同)父の馬齢

fa kodashi・・・父の仔だし値

baku・・・配合時の爆発力

fa sp・・・父のSP値

fa st・・・父のST値

fa sub・・・父のサブパラ合計値

fa kisyou・・・父の気性

fa bonus・・・父の繁殖ボーナス

mo age・・・当歳幼駒の(以下同)母の馬齢

mo sp・・・母のSP値

mo st・・・母のST値

mo sub・・・母のサブパラ合計値

mo kodashi・・・母の仔だし値

mo kisyou・・・母の気性

mo bonus・・・母の繁殖ボーナス

sp no ka・・・受胎時SP因子活性無し

sp ka 1・・・受胎時SP因子小活性

sp ka 2・・・受胎時SP因子大活性

sp inshisuu ・・・配合時の4代血統内SP因子合計数

SP・・・当歳幼駒のSP値

ST・・・当歳幼駒のST値

SUB・・・当歳幼駒のサブパラ合計値

 

以上が項目名と説明となります。

色々項目がありますが、調べたかったことを改めて確認しておきますと、やはりSP(当歳幼駒つまり産駒のSP値)とbaku(配合時の爆発力)の関係性ということになります。

他、SP値と関係がありそうな項目を事前に検討して、調べる項目を決めた経緯があります。

さらに思いつきでST(当歳幼駒のST値)とSUB(当歳幼駒のサブパラ合計値)もついでに採ってしまえ、ということにしました。

 

【基本統計量】

基本統計量というのは、各項目の平均値や標準偏差など、統計学においてデータの傾向を見るときには大体把握しておくよね、という基本的な値のことです(平均値や標準偏差などの意味については各自でググってください)。

これをPythonでは、Pandasというライブラリ(Python上の便利なツールみたいなもの)でdescribe関数を使って簡単に取得することができます。

なお、プログラムを組んでいて、色々上手くいかない部分があり、表~だ図~だと言っている割には肝心の図表の中に~に当たる数字が無かったりしますが、その辺りはプログラミング初心者なので生暖かい目で見守ってくださいw

以下がその結果となります(表1)。

countがサンプル数、すなわち今回は1741頭分を採ったため、1741となっているのが分かると思います。

meanが平均値、stdが標準偏差、minが最小値、25%~75%がそれぞれ四分位点で50%がいわゆる中央値(median)になり、maxが最大値ですね。

この辺りはExcelを使っていても同じように一発で出すことは可能ですので、見やすさも考えるとわざわざPythonを使う必要性を感じない人もいるかもしれません。

使いこなせるのであれば、Excelも様々な便利なことができますし、それはPythonも同じなので、正味なところは一長一短ではないかと思います。

ただ、Excelはサンプル数が増えてくると動作がどんどん重くなっていくので、より大きなデータを扱うのにはやはりPythonが適しているのかなと感じます。

1000件に至らないサンプルサイズであれば、Excelで十分かなという気もしました。

また、後で出てくるように、Pythonですと視覚的にデータを理解しやすいグラフを容易に作成できます。

Excelでも頑張れば同様のグラフを作れるかもしれませんが、かなり手間がかかるため、その点においてはPythonに軍配が上がるかと思います。

さらに言えば、今回は重回帰分析を行っていますが、Excelですと重回帰は可能なものの、それ以外の高度な回帰、例えば今流行りの機械学習などを行うとなると非常に難しいですが、Pythonなら比較的容易にそれらを行うことができる、というメリットがありますね。

さて、話を元に戻しまして、基本統計量を見ての時点で注意するべき箇所があります。

それは、fa sp(父のSP値)の平均値やサブパラなど、配合に使っている父母の能力が軒並み高い傾向があるということです。

本当に良いデータサンプルを採るのならば、もっと低い能力の父母からどういう産駒が生まれてくるのかも調べる必要があると考えられます。

そのため、以下の分析では前提として、あくまで概ね高い能力の父母を使った配合の傾向を示している(偏ったパラメータを使った結果である)、と捉えておくのが重要かと思います。

まぁ、ほとんどのプレイヤーは通常、高い能力を持った繁殖馬たちを選別していくので、一部のデータの見方に気を付ければ有益な情報を抽出できるとは思います。

 

【相関係数】

次に各項目間の相関係数を見ていきます。

今回はせっかくPythonを使っているので、seabornというお手軽に綺麗な図表が作れるライブラリを活用しました。

その中でも相関係数を視覚的に把握しやすいヒートマップというのを使用してみます(図1)。

項目数が多くて見にくいですが、大事なところは縦列下側3つ(SP、ST、SUB)について、右横に向かって見ていけば把握できるかと思います。

そこの色が濃い青に近いほど正の相関(比例関係みたいなイメージ)が強く、濃い赤に近いほど負の相関(反比例関係みたいなイメージ)が強いということになります。

【SPと各項目の相関係数】

ここからは図1を元にSP、ST、SUBについて、各項目との相関係数を見ながら傾向を把握していきます。

最初に注意点を述べておきますと、SPとIDが薄青、fa kisyouが薄赤、つまり弱い正や負の相関を示していますが、これはIDについてはIDナンバーが下るほど〆配合が実施されたサンプルが多くなっているからであり、fa kisyouについても今回用いた種牡馬たちがたまたま気性激(気性が悪いほど小さい値として入力してある)が多かったからであるため、数字上は相関関係になっていますが今回のデータの成り立ちを理解すれば参考にならない値だとわかります。

上記の図1において、SPはmo kisyouとは相関係数が低いことが分かるかと思いますので、やはり気性は参考外だと分かります。

むしろ、もっと積極的に言ってしまえば、父母の気性と産駒のSP値、ST値、サブパラには何の関係性もないと言えると思います。

ではそれ以外の有意味そうなSP値と相関関係がある項目について見ていきます。

ざっと羅列しますと、やはり爆発力が最も相関係数が高く、次にSP因子数、父母のサブパラ、母のSP値、SP因子大活性、父の仔だし、父のSP値、父の繁殖ボーナス・・・などと続きます。

爆発力はやっぱりそうかという感じですが、SP因子数や父母のサブパラの相関係数が高いことには驚きです。

ところがこの中で疑問符が付く点としては、最初の方で述べたように優秀な父母を使っているがゆえに、父母のサブパラやSP因子数があたかも産駒のSP値に相関しているように出てしまっているのではないかということです。

逆に言うと、能力が低い父母を使っていても、産駒のSP値とSP因子数や父母のサブパラとの相関係数が高いのであれば、意外な新発見として認めて良いと考えられます。

さらに言えば、そもそもSP因子数が多いほど、SP因子大活性が起こりやすくなるため、これらが同じような影響力を保持している可能性も指摘できます。

SP因子数とSP大活性の相関係数を見てみると、0.59となっており、高いっちゃ高いですが、そこまで被ってもいなさそう・・・ということしか見て取れません。

ある項目同士の相関係数が高すぎてめっちゃ被っている=違う名前なのにほぼ同じ関係性持ってるじゃん、ということを統計学においては多重共線性と呼びますが、そこまでは至っていない(相関係数が0.8以上だと怪しい)ので、それぞれ別々に独自の影響力を持っていそうです。

独自そうかどうかを確かめるべく、SP因子活性無しのサンプルだけ抜き出して、改めて相関係数をヒートマップにしてみます(図2)。

すると、SPと爆発力の相関係数は0.45でほとんど変わらないですが、SP因子数の相関係数は0.26にまで大きく下がっています。

ただ、それでも0.26も関係しているというのが、ちょっとこの時点では上手い説明が付きにくく、後々さらに検討していきます。

父母のサブパラについても同様に後段でさらに検討してみたいと思います。

後述しますが、どうやら今回調べた項目だけで産駒のSP値を予測することはかなり難しいようで、乱数の影響が相当に強いようです。

その辺りを後段で検討していきます。

【STと各項目の相関係数】

もう一度、図1を上に示しておきます。

今回のデータから分かるSTに関連する知見はかなりシンプルで、ずばり父母のST値の影響がほとんどだと結論して良いと思います。

後述するように、SP値と比べると乱数の影響も小さいようです。

【サブパラと各項目の相関係数】

サブパラについても比較的シンプルで、父母のサブパラとの相関係数が最も高く、以下、父母の仔だし値、爆発力、SP因子数、父母のSP値などとの相関が示されています。

しかし、これらの中では、爆発力やSP因子数については関係性があるのか疑問符が付き、優秀な父母を使っているが故に関係性が示されている可能性があります。

なお、これまた後述するように、ST値よりもさらに乱数の影響が小さそうです。

【別の表現のヒートマップ】

最後に別の表現ができるヒートマップを作成してみました(図3)。

こちらは色が薄い方が正の相関があることを示しています。

正の相関がありそうな項目を中央の方に寄せて表現しており、見事にSPが中央に鎮座して、そこから周囲の5項目分ずつくらい、すなわちsp ka2からfa spくらいまでの範囲が薄い色で固められていることが分かるかと思います。

これを見ると、SP因子大活性、爆発力、SP因子数、父母のサブパラ、父母のSP値、父の繁殖ボーナス、父の仔だし値などを重視すると、産駒のSP値を高められそうだ・・・と推測ができそうです。

が、上述のように、父母のサブパラについてはかなり眉唾モノですので、下記の重回帰分析の結果についても合わせて参照した方が良いでしょう。

 

【重回帰分析】

相関係数だけですと、関係がありそうだというのは分かりますが、どれくらいの因果関係なのかが分かりません。

そこで重回帰分析(簡単に言うと因果関係を推計する分析)を行いました。

まずはSPが各項目からどれくらい説明できるのかを見ていきます。

Pythonでは、いくつかのライブラリで重回帰分析を行うことができます。

今回は表を簡単に出力できるstatsmodelsというライブラリを使いました。

なお、重回帰を行う際に標準化(分析しやすいように各項目の値を一定の幅の値に変換する作業)を行ったら、項目名を上手く表示できなかったりして、項目名の部分は画像が若干継ぎ接ぎになっておりますw

【SPの重回帰】

ではSP(産駒のSP値)について重回帰を行った結果です(表2)。

各値の中で解釈に重要なものについては、こちらのPDFを参照すると分かりやすいかと思います。

ざっくり表から分かることを言っていきます。

まず、右上のR-squaredに0.273と示されており、これは産駒のSP値を、今回調べた項目では27.3%くらいしか説明できないよ、ということを示しています。

とはいうものの、その下のProb(F-statistic)の値を見ると非常に小さい値となっており、全ての項目が意味の無いものではなさそうです。

27.3%以外の残りは乱数もしくは未知のマスクパラメータなどの影響で、産駒のSP値が決まっていると理解して差し支えないと思います(多分乱数)。

各項目のt値(2より大きいと良い)やP値(0.05以下だと良く、小さいほど良い)を見てみると、爆発力については強い影響力がありそうだというのが分かります。

以下、父母の仔だし値、父母のSP値、SP因子数などがある程度の影響力がありそうです。

やはりSP因子数は産駒のSP値に影響していると言えそうですが、どうでしょうかw

父母の繁殖ボーナスも少し影響していそうではありますが、これもどうでしょうかね。

SP因子数と父母の繁殖ボーナス、もっとしっかり検証しないと確かなことは言えませんが、影響していそうだと理解しておいて良いかもしれません。

一方で、相関係数のところで産駒のSP値と相関関係が見られた父母のサブパラについては、ここではかなりはっきりと意味がなさそうであることが示されています。

プレイしている実感としても父母のサブパラが産駒にSP値に関係している感じはしないので、これは重回帰の結果が正しいのではないかと思います。

他、SP因子活性系は微妙な値になっており、これは今回、SP因子の活性についてカテゴリカルデータとして扱っているからというのもあるかもしれません。

過去の検証では大きな差が出ていた部分なので、SP因子活性についての結果は、今回は私のデータの作り方に問題があったと考えておいた方が良いかと思います(つまり、配合時のSP因子の活性は産駒のSP値に影響すると考えておいた方が良い)。

【STの重回帰】

今度はST(産駒のST値)についても重回帰をしてみます(表3)。

R-squaredが38.5%となっているのが分かるかと思います。

さらに各項目でfa stとmo stが飛びぬけて高いt値とP値を取っているのを確認してください。

この二つの項目で4割弱は説明できるよ、と言っているようなものだと理解して良いでしょう。

ST因子活性やインブリードや牝系因子活性については今回調べていないですが、恐らくそれらが影響しているであろうことも考えると、5割くらいは父母のST値に加えてST因子活性&インブリード&牝系因子活性で説明できそうです。

あとの半分は乱数です(適当)。

【SUBの重回帰】

続いてSUB(産駒のサブパラ合計値)についての重回帰です(表4)。

R-squaredが53.7%!

ほとんど説明できたようなものだ(違)!

こちらは父母のサブパラの影響力がかなり強く、続いて母の仔だし値、父の仔だし値、父の繁殖ボーナスなどが影響していそうです。

なぜか爆発力とSP因子数が比較的良い値をとっていますが、これは流石にデータが偏った結果だと思います・・・。

また、ST因子と同様に各種サブパラ因子の活性やインブリードや牝系因子活性については調べていません。

これらも加えるとすると、6割くらいは説明できそうなイメージです。

だとすると、乱数の影響は比較的抑えめなんだろうと推測できます。

サブパラは代重ねで着実に伸ばしていけると言えるでしょう(プレイしている実感ともマッチします)。

 

【爆発力毎の分布】

毎回、プレイが終わる毎に爆発力とSPの値をヒストグラムにまとめて比較してきました。

今回は、爆発力が低い配合から生まれた産駒についてもデータを採っているため、各爆発力毎のヒストグラムを示して、傾向を見ていこうと思います。

なお、条件をなるべく均一にするために(そして実プレイ上より有益な情報にするために)、全てSP因子大活性が起こっている配合のみを抜き出してあります。

したがって、下記の爆発力毎のサンプル数を合計すると、全サンプル数より少なくなります。

【爆発力40以上】

まずは爆発力40以上の配合から生まれた産駒のSP値をヒストグラムにしてみます(図4)。

えー、まず縦軸がDensityとなっておりまして、これは密度という意味でして、頭数を密度で表しています。

分かりにくいので実数に直したかったのですが、上手くいかずそのままになっておりますw

しかし、見た感じで傾向のイメージは掴みやすいので、見る分にはまぁそれほど問題はないかと思います。

ヒストグラムと一緒に図示されている曲線は、密度近似関数を示したもので、これは視覚的に傾向をとらえるのに有用かと思います。

図から読み取れない分析結果として追加情報を記しておくと、9シリーズでの過去のプレイにおける爆発力40以上の配合と、今回も傾向はほぼ一緒でした(サンプル数197頭)。

今回はSP80以上が出る確率は19.8%と20%程度なっており、これは疑っていた繁殖ボーナスの影響を除外してもほぼ同じ確率でした。

よって、暫定的ではありますが、8シリーズと比べて9シリーズはSP値算出式そのものが変わっており、爆発力が40以上だとしてもSP値80以上の産駒が出てくる確率は20%前後なのだと結論します(繁殖ボーナスでフタされるなどは無しと現時点で結論)。

【爆発力30以上39以下】

続いて爆発力30以上39以下です(図5)

こちらには今回、爆発力38や39などの配合も多く含まれているため、かなり40以上の分布に近い形を取っていますね(サンプル数373頭)。

事実、産駒SP値の平均が爆発力40以上で70.2であったのに対し、爆発力30以上39以下でも69.3でした。

爆発力30代後半あれば、爆発力40以上とそこまで遜色ない結果が期待できそうですね。

実際、爆発力35以上39以下の配合からSP85の産駒が2頭も出ています。

しかし、アベレージで行くと、爆発力35以上39以下ですとSP値80以上の産駒が出る確率は12.9%とかなり下がるようです。

さらに爆発力30以上39以下という範囲で見ると、SP値80以上の産駒が出る確率は8.8%と、出現率が爆発力40以上の配合から半分以下まで下がります。

やはり爆発力40以上が最高効率なようです。

【爆発力20以上29以下】

次は20以上29以下です(図6)。

大分、分布が左に寄っているのが分かります(サンプル数438頭)。

とはいえ、ここからSP値80以上の産駒が18頭誕生していますし、SP値85の産駒もなんと2頭も出ていました。

この辺りは運が良ければ、最大値も引けるということで、油断ならないですね。

ただし、18頭というのは出現率が4.1%ということになりますので、効率としてはかなり悪くはなります。

しかし、ウマ娘のガチャとか青因子☆3狙いよりはよっぽどマシかw

まったりプレイでもサブパラとかを積み上げていけば、この辺りの爆発力で十分オンライン対戦で無双できるレベルを引ける可能性はあるということでしょう。

【爆発力10以上19以下】

同様に10以上19以下です(図7)。

ちょっと特徴的な分布になっていますね(サンプル数370頭)。

これはゲーム開始初期の産駒についてもデータを採っていたからで、密度近似関数の曲線を見てみると、それら初期の産駒たちのボリュームが図の中央から左側に広がるなだらかな山になります。

対して右側の急峻な山が、ゲーム後半に実施した配合が多く含まれているボリュームとなります。

もちろん、全てがくっきり分かれているわけではないですが、初期の能力が整っていない繁殖の配合と、後半になって能力が選りすぐられた繁殖の配合では、これくらい差が出るということを表している良い資料になったかと思います。

SP値で言うと、あくまでイメージですが平均で5前後くらいは違いそうに見えますね。

爆発力やSP因子活性だけでなく、他の能力も合算するとSP値に対してこれくらいの影響力があるということでしょう。

ちなみにこの爆発力ではSP値80以上の産駒は1頭も出てきませんでした。

能力が整っている繁殖を使っていたとしても、少なくとも爆発力20以上はないとSP値80以上の産駒は出てこないようです。

あるいはウマ娘のガチャよりも出てくる確率がシビアだということです。

爆発力20未満の配合でSP値80以上を目指すのは、ガチャよりも効率が悪い、と覚えておきましょう!w

【爆発力0以上9以下】

最後に0以上9以下です(図8)。

こちらは〆配合とは別でデータを採ったため、繁殖のレベルが極端に低いです(サンプル数40頭)。

なので分布が極端に左寄りになっていますね。

それから、爆発力0以上としていますが、種牡馬施設を壊すのが面倒だったので、実質的には爆発力3以上9以下となっています。

ただ、このあたりのデータを質の高い繁殖も含めてたくさん取れれば、データ全体の厚みがかなり増すので、可能であれば充実させたかったですね。

ちなみにこの少ない試行回数であっても、SP因子大活性があるからか、素でSP70以上を持つ産駒が複数誕生しています。

配合構築を弱い繁殖から行う必要があっても、何とかなるという希望をもたらすデータとなりました。

【すべてプロット】

比較のために、これまでの全部のヒストグラムを同時に図示してみます(図9)。

図を見ると爆発力0以上9以下のヒストグラムも頭数が多いように見えますが、最初に書いたように縦軸はそれぞれのヒストグラムにおける密度をとっているため、実数は少ないですのでそこは注意してご覧ください。

しかしながら、それぞれの爆発力毎のイメージはかなり掴みやすいとは思います。

爆発力の違いがSP値に明確に影響を及ぼしていることが視覚的に理解できるはずです。

 

【おまけ・母馬の馬齢と仔だしの関係】

図1の相関係数のヒートマップを改めて見てもらうと分かりますが、母馬の馬齢と仔だし値はある程度強い負の相関を示しています。

馬齢が嵩むと、仔だし値はどうなるのか、図で見てみましょう(図10)。

基本的には馬齢が嵩むと仔だしは下がる傾向にあることが分かります。

ただし、馬齢が6歳以下で若いと仔だしも上がることがあるようです。

これは産駒が重賞やGⅠを勝ったから、という従来考えられていた要因もあると思いますし、中には産駒の成績関係なく仔だし値が上下した個体もいたことを報告しておきたいと思います。

そういった現象が図10にも反映されているものと思われます。

ちなみに図10だと14歳と18歳でピョコンと仔だし値が上がっています。

これは〆配合で使った繁殖牝馬の影響と思われ、産駒が爆発的に活躍したため、通常あまり無い、複数の牝馬において加齢による仔だし値の減少を補う上昇があったからと思われます。

基本的には15歳を過ぎたら仔だし値は下がる一方であることが多いかと思います。

さらに、9シリーズからプレイしていて強く感じていた12歳くらいから仔だし値が下がってくるという傾向が、図10を見てみるともっと若い馬齢からでもあり得るというのが見て取れます。

しかし、今回、仔だし値の変遷を何となく眺めながらプレイしてみて、元々仔だし値が高い個体は、下がっても仔だし値6などで下げ止まる傾向も強くありました。

もしかしたら、今作では馬齢に関わらず繁殖入りしてから3年くらいは仔だし値が上がりやすい状態が続くけれども、その後は産駒の活躍が無ければ下がっていき、12歳以降くらいからはそれに拍車がかかっていくが、それでもある一定の値からは下がりにくい、という傾向があるのかもしれません。

その辺りを詳細に詰めるためには、馬齢と仔だし値の他に繁殖入りしてからの年数や産駒の各年のGⅠ及び重賞成績なども調べる必要があると考えられます。

ちなみに父馬の方も加齢で下がる傾向があると思いますが、繁殖入りして3年間(つまり初年度産駒デビューの前年まで)までは維持傾向が強く、その後、産駒に活躍馬が乏しければ徐々に下がる傾向があると思われます。

逆にリーディング上位を維持できれば、種牡馬引退年まで仔だし値が下がらず高い状態で保つことができることも確認しました。

なので〆父など優秀な種牡馬は馬齢に関係なく使っていって良いでしょう。

反対に繁殖牝馬は、〆母や血統構築に必須の牝馬、あるいはやけに活躍馬を出す一部の乱数に恵まれた牝馬を除けば、馬齢が12~15歳前後になってくれば入れ替えの検討対象にするべきであると言えるでしょう。

 

【終わりに】

ここまで読破していただいてありがとうございます。

長らくブログの更新が滞っていましたが、いよいよ来週の4/15(木)にはウイニングポスト9 2021が発売となります。

発売の前日か前々日くらいには新しく始めるプレイの展望編をアップしていきます。

2021は開始年が1984年から選択できるようになっているため、恐らくその年代からになると思います。

話題の全きょうだいインブリードも盛り込みたいと考えております。

今回のような(自分的には)大規模な検証はしばらくは横に置いておき、楽しくプレイするという原点に立ち戻って新作をブログ記事にしていきたいと思います。

それではまた次回!