前の記事のモデルを若干拡張して、勝敗データから将棋のプロ棋士の強さ(skill)を推定しました。
まず勝敗データとレーティングの値ですが、こちらのサイトを参考にさせていただきました。このようなデータを日々更新していくのには多大な努力と忍耐がないとできません。素晴らしいサイトです。
モデルのBUGSコードは以下のようになりました。
model{ for (i in 1:N.member) { skill[i, 1] <- skill.0[i] for (t in 2:N.year){ skill[i, t] <- skill[i, t-1] + beta[i] + r.skill[i, t-1] } } for (g in 1:N.game) { winner.p[g] ~ dnorm(skill[Winner[g], Year[g]], tau.k[Winner[g]]) loser.p[g] ~ dnorm(skill[Loser[g], Year[g]], tau.k[Loser[g]]) z[g] <- 1 z[g] ~ dbern(constraint[g]) constraint[g] <- step(winner.p[g] - loser.p[g]) } for (i in 1:N.member) { skill.0[i] ~ dnorm(0, 1.0E-4) beta[i] ~ dnorm(0, tau[1]) for (t in 1:(N.year-1)){ r.skill[i, t] ~ dnorm(0, tau[2]) } tau.k[i] <- 1/(s.k[i]*s.k[i]) log(s.k[i]) <- log.s.k[i] log.s.k[i] ~ dnorm(mu.s.k, tau[3]) } mu.s.k ~ dnorm(0, 1.0E-4) for (k in 1:N.tau){ tau[k] <- 1/(s[k]*s[k]) s[k] ~ dunif(0, 100) } }
今回は以前よりはデータが豊富にあるため、skill
をこの10年の時系列に沿ったARモデルにしています。1年ごとに対局データを分けて、1年ごとにskillを推定しています。また個人ごとの勝負におけるムラも推定しています。こちらはARモデルにすると収束が著しく悪くなったため、時刻で不変としました。ほんとは禁酒しただとか彼女と別れただとかで勝負ムラも変わってくると思うんですけどデータ不足で推定は厳しいです。
また勝負ムラの標準偏差の事前分布をすべて一様分布にすると収束しませんでした。The BUGS Bookの10.4(p.239)やGelman氏のこちらの論文を参考に、log-normalにしました。1回1回の勝負はデータが1個ですので厳しいようです。
WinBUGSで推定に要した時間は、n.iter=153000, n.burnin=3000, n.thin=100
で1chainあたり17時間ほどでした。勝負回数が20552個でそれぐらいかかるようです。
以下は結果です。算出結果もここにアップしておきます。まずは既存のレーティングと2013年5月時点の推定されたskillのmedian値(skill.2013.median
)を比べてみました(クリックしてから画像を「名前をつけて保存する」とやっとちゃんと見えます 5000x1250)。
エラーバーは50%信頼区間です。かなりよく一致しています。ずれが大きいTop5人は以下の通りです。
nid | kname | kid | league | rating | skill.2013.25p | skill.2013.median | skill.2013.75p |
---|---|---|---|---|---|---|---|
182 | 斎藤慎太郎 | 286 | C1 | 1615 | 1.3465094 | 1.751578 | 2.188632 |
183 | 八代弥 | 287 | C2 | 1568 | 0.8667030 | 1.154105 | 1.502008 |
185 | 石田直裕 | 289 | C2 | 1537 | 0.8845165 | 1.317897 | 1.856214 |
187 | 千田翔太 | 291 | C2 | 1516 | 0.4491587 | 1.018304 | 1.654934 |
184 | 上村亘 | 288 | C2 | 1500 | 0.2927299 | 0.868440 | 1.511082 |
このでは斎藤五段は三浦八段・山崎七段らと同レベルと推定されています(信頼区間の幅はやや大きいですが)。またC2の強い方々も乖離が大きいです。このあたり、レーティングの「みんな同じような低い点数からはじまり、落ち着くまでは正常に評価できない」という弱点が出ていると思います。
次に、72期A+B1リーグ棋士のここ10年のskill値の推移をplotしました。レーティングでは渡辺竜王がトップですが、このモデルではまだまだ羽生三冠が健在です。
次にここ10年のskillの伸びにおけるTop10、Worst10を算出しました。
nid | kname | kid | league | rating | skill.2004 | skill.2013 | nobi.25p | nobi.median | nobi.75p |
---|---|---|---|---|---|---|---|---|---|
157 | 中村太地 | 261 | C1 | 1746 | 0.67175 | 1.437428 | 0.4434045 | 0.7332915 | 1.1001785 |
131 | 渡辺明 | 235 | A | 1965 | 2.27600 | 2.859812 | 0.3036646 | 0.5281010 | 0.8013349 |
151 | 広瀬章人 | 255 | B1 | 1710 | 1.13900 | 1.689989 | 0.2560142 | 0.4964510 | 0.7965535 |
142 | 横山泰明 | 246 | C2 | 1651 | 0.53575 | 1.018737 | 0.2609235 | 0.4788895 | 0.7769740 |
85 | 屋敷伸之 | 189 | A | 1768 | 1.02200 | 1.541046 | 0.2481112 | 0.4787627 | 0.7611302 |
156 | 糸谷哲郎 | 260 | C1 | 1802 | 1.25250 | 1.806659 | 0.2194060 | 0.4733840 | 0.7855363 |
104 | 行方尚史 | 208 | A | 1794 | 1.14400 | 1.667998 | 0.2505082 | 0.4705231 | 0.7428080 |
160 | 豊島将之 | 264 | B1 | 1825 | 1.71400 | 2.141491 | 0.1020700 | 0.3515275 | 0.6550150 |
145 | 村山慈明 | 249 | B2 | 1693 | 1.05400 | 1.403107 | 0.1142648 | 0.3211786 | 0.5757152 |
108 | 矢倉規広 | 212 | C2 | 1587 | 0.34030 | 0.645225 | 0.0944060 | 0.2990955 | 0.5599487 |
nid | kname | kid | league | rating | skill.2004 | skill.2013 | nobi.25p | nobi.median | nobi.75p |
---|---|---|---|---|---|---|---|---|---|
53 | 室岡克彦 | 153 | Others | 1308 | -0.648700 | -1.0155555 | -0.6221045 | -0.3295232 | -0.09669114 |
114 | 堀口一史座 | 218 | B2 | 1511 | 0.739050 | 0.3948955 | -0.6013588 | -0.3422950 | -0.12947450 |
81 | 先崎学 | 185 | B2 | 1563 | 1.090000 | 0.6795169 | -0.6440560 | -0.3834030 | -0.17505725 |
121 | 増田裕司 | 225 | C2 | 1454 | 0.455650 | 0.0320565 | -0.6821765 | -0.4126065 | -0.19333700 |
47 | 南芳一 | 147 | B2 | 1481 | 0.676650 | 0.2575185 | -0.7004830 | -0.4200815 | -0.19731450 |
51 | 西川慶二 | 151 | C2 | 1302 | -0.554950 | -1.0409635 | -0.7204574 | -0.4455855 | -0.21005515 |
8 | 桐山清澄 | 93 | C1 | 1345 | 0.011745 | -0.5530300 | -0.8314145 | -0.5273410 | -0.28145507 |
3 | 内藤國雄 | 77 | C2 | 1286 | -0.420350 | -1.0943750 | -0.9698775 | -0.6194700 | -0.35344555 |
102 | 川上猛 | 206 | Others | 1400 | 0.430650 | -0.2249530 | -0.9717605 | -0.6285038 | -0.36916637 |
116 | 近藤正和 | 220 | C1 | 1472 | 0.739100 | 0.0995915 | -0.9445024 | -0.6403400 | -0.38788652 |
個人的にはTop10は納得の顔ぶれです。近藤六段は最も下げていますが、これはゴキゲン中飛車がよく研究されて対策ができたということを数字が語っているように思います。個人的にはブームになる前の15年前から今でもまだゴキゲン中飛車を愛用していますので非常に応援しています。
最後に勝負ムラですが、思ったよりも差がありませんでした。将棋は運の要素が少なく実力が出やすい勝負と言えそうです。そんな中でも勝負ムラのあるTop6と安定なTop6は以下の通りでした。
nid | kname | kid | league | rating | mura.25p | mura.median | mura.75p |
---|---|---|---|---|---|---|---|
143 | 島本亮 | 247 | Others | 1393 | 1.073487 | 1.409662 | 1.686491 |
151 | 広瀬章人 | 255 | B1 | 1710 | 1.038477 | 1.400949 | 1.676528 |
119 | 小林裕士 | 223 | C1 | 1611 | 1.024129 | 1.398360 | 1.647609 |
135 | 橋本崇載 | 239 | B1 | 1676 | 1.031834 | 1.397102 | 1.648886 |
40 | 脇謙二 | 138 | C1 | 1367 | 1.069956 | 1.396543 | 1.681691 |
12 | 滝誠一郎 | 101 | Others | 1282 | 1.032019 | 1.395147 | 1.657814 |
nid | kname | kid | league | rating | mura.25p | mura.median | mura.75p |
---|---|---|---|---|---|---|---|
8 | 桐山清澄 | 93 | C1 | 1345 | 0.9896762 | 1.358729 | 1.623525 |
124 | 伊奈祐介 | 228 | C2 | 1478 | 1.0001535 | 1.356286 | 1.625069 |
81 | 先崎学 | 185 | B2 | 1563 | 0.9929785 | 1.354998 | 1.629421 |
62 | 日浦市郎 | 164 | C1 | 1517 | 0.9968000 | 1.354524 | 1.637671 |
127 | 松尾歩 | 231 | B1 | 1707 | 0.9982663 | 1.353305 | 1.644934 |
57 | 井上慶太 | 157 | B2 | 1562 | 0.9851563 | 1.351209 | 1.648227 |
安定キングは井上九段、松尾七段が続きます。ムラの大きいほうも広瀬七段、小林七段、橋本八段などなんとなく納得ができる顔ぶれです。
データさえあれば階層ベイズモデルでかなりお手軽に色々と推定できます。レーティングだけではわかりずらい勝負ムラなんかも推定できて楽しいです。まぁデータクレンジングは苦労しましたが。みなさんもいかがでしょうか。