#1,#2に書いてあることは要するに、「現実の野球ほど細かい要素を入れなくてもだいたいを表現する上では問題がないよ。」ということで、まこれはわりかし知られていることなのかなあと思います。自分が作ってる簡易的なシミュレータでもそれなりに得点がばらけたり、チームの強さが現れてたりしますから、厳密には現実とは違う簡易的なルールであったとしても、おおまかな説明をする上ではそれでいいんじゃないの、と言う発想ですね。
個人的におもろいなーと思ったのは#3の「打者と投手の対戦を考えるのは、思ったより結構複雑でムズいよ」というセクション
これ自分でシミュレータを作ってる時にもかなり悩んだ部分です。この記事では例として、かの有名なアダム・ダンとキンブレルが対戦した場合を考えます。アダム・ダンの三振率(三振数を打席数で割った数)は31%で、キンブレルの奪三振率は47%です。どっちもすさまじい値ですね。
じゃあアダム・ダンとキンブレルが対戦した時の奪三振が起こる確率を計算しようと思った時、単純にこの平均の40%ぐらいかっていうと、冷静に考えれば明らかにおかしいことがわかります。だって平均以上の三振を食らうアダム・ダンが相手なのに、平均以上の奪三振率を誇るキンブレルが自分の平均よりも三振を取れないってことになるわけですから。
じゃーこういうときどうすればいいのよ、というときに登場するのがBillJamsの提案したLog5という考え方です。 Log5 : Wikipedia The Origins of Log5 : chances is…
このLog5は、もともとチームA、Bの対戦結果をそれぞれのチームの勝率から算出することを目的にした指標です。具体的には、あるチームA,Bがそれぞれ勝率pa,pbを持っているとき、チームAがBに勝つ確率PA,Bが PA,B=PA−PAPAPA+PB−2PAPB
なぜこの不思議な関数がこのようなきれいな性質を持つかというと、Oddsという考え方に基づいて算出されているからです。Oddsとは、競馬のオッズとにたような感覚の数字で、あることがらが起こる確率がPである時、その起こる確率と起こらない確率との比で表される数字で Odds=P1−P
これを用いると先ほどのLog5は起こる確率PA,Bと起こらない確率Qa,b(=1−PA,B)を用いて OddsA,B=Pa,b1−Pa,b=PAQAQBPB=OddsAOddsB
これは Log5で出したAがBに勝つ確率のOddsが、チームAのOddsと、チームBの負けるOddsを掛け算して計算されていることを表しています。
要するにAとBの勝負を独立な事象として扱って、同時に起こる確率を積で計算してやろうというわけです。このように、Odds同士を割り算して計算したものをOddsRatioと呼び、これを用いるとそれぞれのOddsでの起こりやすさを比較する事ができるようになります。(なので先のOddsA,Bという表記は正確にはOddsRatioA,Bとなります。まあ正直A,Bって書いとけば分かるんですけど一応定義は定義なので…)
ちょっとややこしいので具体例を上げて考えてみましょう。例えばチームAの勝率が.600,チームBが.400だとします。 すると先の定義からOddsA=0.6/(1−0.6)=1.5,OddsB=0.4/(1−0.4)=2/3となり、OddsRatioは OddsRatioA,B=3/22/3=94
しかしこの計算には一つ特徴があります。それは、Oddsという指標が起こる確率P=1/2を中心として評価しているという点です。
どういう意味かというと、OddsRatioを考えた時、OddsRatioの結果に影響を与えないAやBのOddsを考えると、当然Odds=1の時です。これをOddsの定義式に代入すると 1=p/(1−p)⇔p=1/2
- Odds>1→P>1/2
- Odds<1→P<1/2
言い換えれば、オッズの大きさの基準は常に確率が1/2の点にあるということです。このため、チームAとBの勝負のような全体の平均を取れば必ず1/2になるような指標では、先のOddsRatioはうまく働きます。なぜなら、Odds同士の割り算をすることで、その値は比率になります。そして比率が1を超えることはすなわち勝利の平均1/2を超えることになるためです。
こんなややこしい説明をした理由は、これをを打率や被本塁打といった平均値が.500ではない指標に対して適用することを考えるときに一筋縄では行かないからです。
例えば、バッターAが打率.400,投手Bが被打率.200であるとしましょう. この時.400はPAに、.200はQBに相当します。(なぜPBではないかというと、Bが勝つということは、すなわち抑えることであって打たれる率すなわち被打率は1−PBに相当するからです) これらを用いてOddsRatioを計算すると OddsRatioAB=(0.4/0.6)(0.8/0.2)=16
なぜこうなるかというと、この確率の基準が1/2で固定されているからです。いいかえると、チーム勝率4割のチームとチーム勝率8割のチームの対戦とまったくおなじ理論による計算となっているために、このようなおかしな結果になるわけです。普通に考えれば、打率4割というのはかなり傑出した打率ですから、この値は平均以上の値として評価してあげなくてはかわいそうです。
これらを修正するために、リーグ平均の打率(OddsLG)を導入します。
具体的にどのようにリーグ平均を用いるかというと、OddsLGを打者と投手のOdds計算にわり算として追加します。数式として表すと以下のようになります。 rOddsRatioA,B=(OddsAOddsLG)OddsB
先の例で言うと、リーグ平均打率をPLG=0.300とすればOddsLG=0.3/(1−0.3)=3/7となりますから、修正されたOddsRatioは rOddsRatioA,B=(OddsAOddsLG)OddsB=1673=718
他にもおなじWARを持つチームではOBP(出塁率)とSLG(長打率)どちらが重要視されるべきか、とかリリーバーが良いチームはシミュレータ的にも勝率を上げることが出来る、とか言った興味深い話題がとりあげられているので、そういうの興味がある人は見てみると面白いかも。
今回参考にしたサイトたち
- 10 Lessons I Learned from Creating a Baseball Simulator:今回の記事の大本。なんか自分がやりたかったJavaScriptでのかっちょいいシミュレータを作っちゃってるのでちょっとめげてます。
- The Odds Ratio Method : TangotigerによるOddsRatioの解説
- http://en.wikipedia.org/wiki/Odds_ratio : Wikipedia先生
- http://en.wikipedia.org/wiki/Bradley-Terry-Luce
- http://en.wikipedia.org/wiki/Elo_rating_system
0 件のコメント:
コメントを投稿