今夜の記事の内容は掲題の通りで「収集したデータの加工方法」がテーマなのだが、例として用いるデータそのものについて先に述べておきたい。
しれっと使うが、かなり稀有なものである。
いつものブログ用データベースで2006年から2018年の中央競馬平地競走完走馬延べ62万件すべてで父馬の年齢、母馬の年齢を調べた。
わたしとしては大作である(労力的に)。
当該競走馬の出生時点の親の年齢は、収集の困難な部類に入るデータだと思う。
特に母馬では同名馬の存在が何度も行く手を塞ごうとした。
わたしのミスがほとんどなのだが、収集元のデータでも牡馬が仔を産んだり、繁殖牝馬が生まれる前から仔を産んだり、結構大混乱なのである。
なんとか取り繕ったが、未だに間違いも見つかっており、完璧には程遠いかもしれないが、とにかく一旦全データの完成までたどり着いた。
高齢出産馬ほど成績が低下しやすいことは知られているが、では具体的にどれくらいの差があるのか、どの年齢が父母としてのピークなのかといった資料はあまり見かけたことはなかった。
少なくともこれだけの大規模調査はないかもしれない。
父馬(種牡馬)と母馬(繁殖牝馬)それぞれで、仔の能力(ここでは1戦あたりの平均獲得賞金額)が「緩やかな山形を描くグラフ」になる。
何故緩やかな山形になるのか、単純に若ければ良いという訳ではない理由を考察しなければならないが、今のわたしには未だ確たる説明や推定はできない。
今は、観察結果から、「緩やかさ」はピーク時からプラスマイナス10%程度であることが分かる、すなわち平均的な繁殖牝馬の産駒は出産年齢により90-110くらいのバラつきに収まるようだ、と知る程度である。
例題としてだけでなく、内容としても興味深い結果になったので参考になれば幸いである。
▼データを滑らかにする
本題である。
数学的にはもっときちんとした計算方法はあると思うが、生のデータではグラフに描くと「小刻みな山脈」になってしまうことが多い。
下表のように、種牡馬、繁殖牝馬の出産時年齢別で各競走馬の1戦あたりの平均獲得賞金額をプロットすると、62万件のデータを僅か30弱に区分してさえ凸凹してしまう。
これでは、このデータを予想にフィードバックして使用することは躊躇われると思う。
そこでデータを綺麗にするためにはいくつか方法がある。
真っ先に考えるのは、30近い階層をもっと少なくするというものである。
この例で、例えば2歳分ずつ集計し直すということである。
ただ、区分を減らすことに抵抗があるケースもある。
このようなときは、前後の階層を足す方法を試してみるのはどうか。
6歳のデータの平均を5歳と7歳のデータも足して、7歳のデータなら6歳と8歳のデータも加えて、平均するのである(平均1)。
なお、種牡馬のついてはさらに前後2歳分のデータも足した(平均2)。
平均・平均1・平均2をグラフに描くと滑らかになっていくことが分かるだろう。
基本的にデータ不足なのである。
もっとサンプルが増えれば綺麗なデータになるだろうなと思う場合には、この方法を試してみてはいかがだろうか。
(SiriusA+B)
しれっと使うが、かなり稀有なものである。
いつものブログ用データベースで2006年から2018年の中央競馬平地競走完走馬延べ62万件すべてで父馬の年齢、母馬の年齢を調べた。
わたしとしては大作である(労力的に)。
当該競走馬の出生時点の親の年齢は、収集の困難な部類に入るデータだと思う。
特に母馬では同名馬の存在が何度も行く手を塞ごうとした。
わたしのミスがほとんどなのだが、収集元のデータでも牡馬が仔を産んだり、繁殖牝馬が生まれる前から仔を産んだり、結構大混乱なのである。
なんとか取り繕ったが、未だに間違いも見つかっており、完璧には程遠いかもしれないが、とにかく一旦全データの完成までたどり着いた。
高齢出産馬ほど成績が低下しやすいことは知られているが、では具体的にどれくらいの差があるのか、どの年齢が父母としてのピークなのかといった資料はあまり見かけたことはなかった。
少なくともこれだけの大規模調査はないかもしれない。
父馬(種牡馬)と母馬(繁殖牝馬)それぞれで、仔の能力(ここでは1戦あたりの平均獲得賞金額)が「緩やかな山形を描くグラフ」になる。
何故緩やかな山形になるのか、単純に若ければ良いという訳ではない理由を考察しなければならないが、今のわたしには未だ確たる説明や推定はできない。
今は、観察結果から、「緩やかさ」はピーク時からプラスマイナス10%程度であることが分かる、すなわち平均的な繁殖牝馬の産駒は出産年齢により90-110くらいのバラつきに収まるようだ、と知る程度である。
例題としてだけでなく、内容としても興味深い結果になったので参考になれば幸いである。
▼データを滑らかにする
本題である。
数学的にはもっときちんとした計算方法はあると思うが、生のデータではグラフに描くと「小刻みな山脈」になってしまうことが多い。
下表のように、種牡馬、繁殖牝馬の出産時年齢別で各競走馬の1戦あたりの平均獲得賞金額をプロットすると、62万件のデータを僅か30弱に区分してさえ凸凹してしまう。
これでは、このデータを予想にフィードバックして使用することは躊躇われると思う。
そこでデータを綺麗にするためにはいくつか方法がある。
真っ先に考えるのは、30近い階層をもっと少なくするというものである。
この例で、例えば2歳分ずつ集計し直すということである。
ただ、区分を減らすことに抵抗があるケースもある。
このようなときは、前後の階層を足す方法を試してみるのはどうか。
6歳のデータの平均を5歳と7歳のデータも足して、7歳のデータなら6歳と8歳のデータも加えて、平均するのである(平均1)。
なお、種牡馬のついてはさらに前後2歳分のデータも足した(平均2)。
平均・平均1・平均2をグラフに描くと滑らかになっていくことが分かるだろう。
基本的にデータ不足なのである。
もっとサンプルが増えれば綺麗なデータになるだろうなと思う場合には、この方法を試してみてはいかがだろうか。
(SiriusA+B)
父馬年齢 | 延べ頭数 | 獲得賞金合計 | 1走平均 | 移動平均1 | 移動平均2 | 出産年齢 | 延べ頭数 | 獲得賞金合計 | 1走平均 | 移動平均 |
3歳 | 3歳 | 88 | 59,667,000 | 678,034 | ||||||
4歳 | 150 | 73,788,000 | 491,920 | 4歳 | 6,413 | 7,257,918,000 | 1,131,751 | 1,235,843 | ||
5歳 | 11,476 | 17,855,241,000 | 1,555,877 | 1,721,728 | 5歳 | 33,236 | 41,791,107,000 | 1,257,405 | 1,288,615 | |
6歳 | 34,867 | 62,119,284,000 | 1,781,607 | 1,707,036 | 1,587,383 | 6歳 | 50,114 | 66,620,966,000 | 1,329,388 | 1,370,500 |
7歳 | 49,048 | 82,861,320,000 | 1,689,392 | 1,591,068 | 1,522,770 | 7歳 | 67,969 | 98,970,657,000 | 1,456,115 | 1,414,967 |
8歳 | 58,820 | 82,120,416,000 | 1,396,131 | 1,466,912 | 1,471,363 | 8歳 | 69,331 | 99,592,957,000 | 1,436,485 | 1,460,867 |
9歳 | 60,503 | 82,003,694,000 | 1,355,366 | 1,353,652 | 1,430,717 | 9歳 | 66,146 | 98,644,020,000 | 1,491,307 | 1,458,663 |
10歳 | 63,423 | 83,250,441,000 | 1,312,622 | 1,372,389 | 1,359,264 | 10歳 | 58,484 | 84,686,715,000 | 1,448,032 | 1,498,831 |
11歳 | 58,718 | 85,404,446,000 | 1,454,485 | 1,348,484 | 1,341,286 | 11歳 | 53,256 | 83,290,400,000 | 1,563,963 | 1,488,897 |
12歳 | 57,135 | 73,095,872,000 | 1,279,354 | 1,347,283 | 1,322,314 | 12歳 | 46,111 | 67,046,761,000 | 1,454,030 | 1,467,730 |
13歳 | 45,250 | 58,550,980,000 | 1,293,944 | 1,272,351 | 1,328,111 | 13歳 | 40,094 | 54,353,949,000 | 1,355,663 | 1,361,353 |
14歳 | 40,644 | 50,336,192,000 | 1,238,466 | 1,289,160 | 1,282,020 | 14歳 | 33,269 | 41,245,593,000 | 1,239,761 | 1,287,212 |
15歳 | 33,090 | 44,502,184,000 | 1,344,883 | 1,278,191 | 1,272,426 | 15歳 | 26,573 | 33,039,237,000 | 1,243,339 | 1,224,306 |
16歳 | 27,423 | 34,459,598,000 | 1,256,595 | 1,277,350 | 1,246,349 | 16歳 | 21,590 | 25,412,854,000 | 1,177,066 | 1,224,867 |
17歳 | 22,052 | 26,502,597,000 | 1,201,823 | 1,202,717 | 1,262,492 | 17歳 | 16,469 | 20,713,527,000 | 1,257,728 | 1,178,957 |
18歳 | 17,909 | 20,081,702,000 | 1,121,319 | 1,214,732 | 1,226,651 | 18歳 | 12,596 | 13,593,675,000 | 1,079,206 | 1,145,350 |
19歳 | 13,738 | 18,645,602,000 | 1,357,228 | 1,220,014 | 1,213,728 | 19歳 | 7,877 | 8,004,300,000 | 1,016,161 | 1,029,532 |
20歳 | 9,582 | 11,572,646,000 | 1,207,748 | 1,278,982 | 1,229,116 | 20歳 | 5,597 | 5,241,915,000 | 936,558 | 972,337 |
21歳 | 6,065 | 7,364,632,000 | 1,214,284 | 1,237,816 | 1,274,597 | 21歳 | 3,131 | 2,899,433,000 | 926,041 | 936,795 |
22歳 | 3,954 | 5,325,153,000 | 1,346,776 | 1,235,580 | 1,241,127 | 22歳 | 1,611 | 1,544,172,000 | 958,518 | 903,125 |
23歳 | 2,659 | 2,974,892,000 | 1,118,801 | 1,300,217 | 1,253,572 | 23歳 | 491 | 282,447,000 | 575,248 | 835,982 |
24歳 | 1,555 | 2,320,124,000 | 1,492,041 | 1,229,633 | 1,266,473 | 24歳 | 211 | 107,007,000 | 507,142 | 545,208 |
25歳 | 1,227 | 1,395,416,000 | 1,137,258 | 1,286,932 | 1,192,554 | 25歳 | 61 | 26,540,000 | 435,082 | 500,351 |
26歳 | 891 | 1,011,360,000 | 1,135,084 | 1,081,974 | 1,265,585 | 26歳 | 4 | 4,550,000 | 1,137,500 | |
27歳 | 320 | 231,077,000 | 722,116 | 1,128,484 | 1,131,321 | |||||
28歳 | 209 | 360,010,000 | 1,722,536 | 1,111,399 | 1,125,626 | |||||
29歳 | 5 | 2,400,000 | 480,000 | 1,666,861 | ||||||
30歳 | 9 | 9,300,000 | 1,033,333 |