2014年5月8日木曜日

異なるリーグに所属する選手同士の対戦予測

今回は異なるリーグに所属する選手同士が、あるリーグで対戦した時にどの程度の成績を残すのかということを考えてみたいと思います。今まで考えていたのはおなじリーグ内部での話でしたから、最終的に少しリーグ平均のOddsでいじれば良かったのですが、投手打者そして今現在所属するリーグが異なっている場合ちょっとややこしくなります。

具体的には打者が打高のリーグに所属投手が投高のリーグに所属そして現在のリーグの反発係数が2つのリーグに比べて高いというような場合です。 ボールが飛びやすかったり、球場が狭かったりと言った平均的に打者が有利なリーグに所属している場合は、打者および投手の安打発生Oddsは高くなる傾向にあります。逆の場合も同様で、したがって異なるリーグに所属している選手同士を対戦させようとする時は、それぞれが所属するリーグの影響をまず取り除き、その上でodds ratioを考えるのが妥当でしょう。

Oddsを用いる成績予測の考えの根底には、選手の突出度をOdds同士の比であるOdds Ratioによって比較するという概念があります。この作業は、数学や物理でいうところの規格化手法です。規格化とは、ある値を基準として、自分の大きさをそれの何倍かで表すという考えです。これを考えれば、打者、投手、今考えているリーグをLb,Lp,Lthisとすると $${Odds Ratio}_b=\frac{Odds_b}{Odds_{Lb}}$$ $${Odds Ratio}_p=\frac{Odds_p}{Odds_{Lp}}$$

という風に表せます。これを掛け算することで、打者と投手を合わせた突出度を計算できます。そしてそれに今打者と投手が所属するリーグのOddsを掛け算することで、今いるリーグの平均と比べることができ、合理的にOdds Ratioを算出出来ます。 $$Odds Ratio_{AvsBonLthis}= Odds Ratio_b\cdot Odds Ratio_p\cdot Odds_{Lthis} $$

  • $Odds Ratio_{AvsVLthis}$ : AとBがリーグLで対戦した時のオッズ
  • $Odds Ratio_b$ : Batterのオッズ比、リーグでの卓越度
  • $Odds Ratio_p$ : Pitcherのオッズ比、リーグでの卓越度
  • $Odds_{Lthis}$ : PitcherとBatterが所属するリーグのオッズ

ex).平均打率0.300のリーグで0.350打つバッターと平均打率0.270のリーグで被打率0.280のピッチャーが超低反発球が導入された平均打率0.220のリーグに所属する場合の期待される打率 $$ \begin{aligned} Odds Ratio_{Lthis} &=\frac{0.350/(1-0.350)}{0.30/(1-0.30)}\cdot \frac{0.28/1-0/28)}{0.27/1-0.27}\cdot 0.220/(1-0.220)\\ &= 0.372\\ &\therefore P = \frac{0.372}{1-0.372} = 0.271 \end{aligned} $$

しかしこの考え方にも欠点があります。それは、比べるリーグのレベルが明らかに異なる場合です。

例えば少年野球チームで平均以上にヒットを打つバッターと、プロ野球選手だけど1軍ではボコボコに打たれまくった投手が対戦するときなどにはこの方法を用いてはいけません。Oddsの考え方の基礎にあるのは、その選手が平均値からどれだけ突出した選手なのか、ということに焦点を合わせて結果を推定するというものです。

そのため、比べる2選手の所属するリーグの選手の能力が基本的にはほとんどおなじであるということが大前提となっています。したがって、同一のリーグでも大きく年代が異なる選手同士の対戦成績予測や、NBPとMLBといった明らかに能力の平均値が異なるリーグの選手同士の成績予測にはこの方法を用いるのは適切ではありません。

2014年5月7日水曜日

複数の可能性がある確率でのOddsRatioの使い方

前回に引き続いて、OddsRatioのお話

OddsRatioが勝率の違うチーム同士の対戦成績や、ある打者と投手が対戦した時の打率や奪三振がどの程度の確率で起こるのかを計算する際にとても有効であることについて書きました。

今回考えて見たいのは、確率の分岐先が複数存在する場合です。

2014年5月6日火曜日

野球シミューレーションを作る時に大事なこと

FanGraph今月のまとめ!みたいな記事に乗ってた、シミュレータを作る上で学んだ10のこととかいう最近ネットでありがちなタイトルの記事がなかなかおもしろいことを書いてあったので、ちょっとメモ

2014年4月18日金曜日

野球における打率とサイコロ

去年あたりから、プログラムの練習を兼ねて野球のシミュレータを作っています。
その時改めて野球の結果と偶然とか確率と言ったことについて考えた時に、ふと疑問に思ったことがいくつかあったので、この間Twitterでどばどばと適当に垂れ流した内容をもとにちょっと考えを練りなおしてみました。

1.打者の結果はサイコロとおなじなのか?


例えば出塁率.400のバッターが居たとして、そのバッターが10打席回ってきた時にヒットを打つ本数と、仮に10面あるサイコロが合ったとして(このような過程は乱数を用いれば作ることが可能です)、そのサイコロのうち1~4の面が出れば出塁とする場合とで厳密に言うとヒットの出方が違うのではないか、と言う疑問です。

ちょっとややこしいのですが、野球における打率や出塁率などの率系の指標はあくまで得られた平均値でしかなく、平均的にサイコロとおなじ割合でヒットが出るとしても、そのばらつきまでもおなじであるとするのには、大雑把には近似できるとしても厳密には異なるのではないかということです。
サイコロであれば、その時の出塁の数は二項分布で表現できます。一方現実の野球選手の出塁が決まる過程は、ピッチャーが投げた球がストライクになるかどうかとか、打った球がどこに飛んで行くかとか言ったもっと上位の過程の結果として表されるので、最も確率が高いのはサイコロで表した際の最尤値と一致するとしても、そのまわりの値を取る確率が先の二項分布で表される確率とくらべて高い、もしくは低い可能性は捨て切れません。


図1:N=50,p=0.30の二項分布(青色)と予想した現実の分布の違いのイメージ図。縦軸は確率。

とまあそんなことを考えていたんですが、いろいろと考えた結果これは間違いであるという結論に至りました。結論をいうと

もし図のような確率分布となるとすれば、おなじヒットを打つ能力を持つ打者が二人板として、序盤の打席でたまたまヒットを多く打った選手はもう一人の選手と比べて、その後ヒットを打つ能力が下がる必要がある。ということです。

普通に考えて、おなじ能力の選手が二人いればその二人が現在立っている打席でヒットを打つ確率は全く同じであると考えられます。したがって1打席だけの結果に注目するとその確立はベルヌーイ試行として表すことが出来ます。ベルヌーイ過程とは、コインを一枚投げた時に表が出ると1,裏が出ると0とみなす実験を行うことを意味します。そしてこのベルヌーイ過程がN回行われた時、出た表の数の合計を確率として表すと二項分布となることは証明されています。したがってこれを逆に考えれば、結果が二項分布とならない過程では、一回一回の打席の結果はベルヌーイ過程ではない他の過程によって決定されている事になります。

これは、過程が行われている時にバッターの持つ平均的な出塁割合 :p の値が変わらないということに矛盾するため、打席が増えるに連れて、過去の打席の結果により現在の打席のヒットを打つ能力が上がる、もしくは下がる事となり、これは直感に反します。
(ヒットを打ったからと言って次の打席は打てないだろうというのは、パチンコで負けたからと言って次の日勝てる確率が上がるわけではないことと同じですね)

ちょっとややこしいのは、この議論では、打者が仮に確定された真の実力pの確率でヒットを打てる、ということを仮定していますが、このpの値は必ずしも打率の値ではない(かもしれない)ということです。

ココらへんはベイズの定理が関連するので、どこまで考えるんぞという話であるうえに私自身しっかり理解できていない可能性が高いので微妙ではあるのですが、プロ野球の打者が持つと期待される打率の値は(恐らく)ある値p'を平均とした正規分布のような確率密度関数で表示できるとします。
次に今シーズンである打率pを残した選手が居たとして、その選手が持つであろう実力の打率qを推定することを考えます。

実際の打席に立つと、実際の過程をへることによるぶれが生じてしまうので、pからのずれが生じます。

これは表と裏が出る確率が1/2,1/2のコインを4回振っても毎回2枚が表になるとは限らないことと同じです。

普通に考えると真の打率はpであるとすればよい様に思うかもしれませんが、例えばpが極端な値.500をとった時のことを考えてみます。これは特に打数の少ない選手で起こりがちですが、たまたま数打席ヒットが多く出たからといって、その選手がイチローを超える打率を真の実力として持っているとは考えれない、せいぜい.300ぐらいであろうとかんがえると思います(普通は)。この作業が先のベイズの定理に当たる部分です。

ほとんどの選手は.250~.280ぐらいの間に真の実力があるとかんがえられますから、そもそも.500の実力を持つ選手は殆どいません。したがって、.500をシーズンの記録として残した選手のほとんどは.250~.280の平凡な実力を持った選手がたまたま運良くヒットが多く出た、と考えられます。これを数学的に調べようと思うと、選手がある真の実力を取る確率に、その実力を持ってシーズンを過ごした際に打率.500を取る確率を掛け算することで調べることが出来ます。これがベイズ的な打率へのアプローチです。

したがってシミュレータを作る際も、来シーズンの予想をするシミュレータをつくろうとするならば、このベイズから推定されたXを用いる方が信頼度が上がるのではないかと考えられます。

とはいえそのような処理をすると、例えば.350で首位打者を取ったようなバッターは「たまたま今シーズンは実力以上のちからが発揮されただけで、本当の実力は平均にもっと近い値に違いない」と推定されて平均へと回帰する圧力がかかりますから、全員の能力が平均化されシーズン予測の値も全チーム似たような得点となる可能性があるので、エクストリームな値が得られない分インパクトとしては小さいものになってしまうかもしれません。

2014年1月17日金曜日

円グラフの話

円グラフってのは全体の割合を角度で表して表示するグラフです。テレビのニュースとかビジネスとかでよく使われてるのを見かけると思うのですが、あんまり使うのよくないらしいという話が書かれた記事を見つけたのでしらべてみました。

Wikipedia 円グラフ
統計学者は、円グラフを情報伝達能力が低いとする傾向がある。円グラフはビジネスや報道ではよく使われるが、科学分野ではあまり使われない。理由の1つは、棒グラフなどに比べて個々の領域の大きさを比較するのが難しいためである。スティーブンスの冪法則によると、面積は0.7乗で知覚され、長さは1.0乗で知覚される。これは、知覚される差異と実際の差異が同じである長さの方が、尺度としては優れていることを示唆している。

 スティーブンスのべき乗則というのは実際のものの大きさの比に対して人間が感じる大きさの比で、要は今回の例だと面積が2倍になっても人間が感じる大きさは2^0.7倍になってる風にしか見えないってことです。長さの二乗が面積になってることを考えると0.7は1/√2におおよそ等しいことからも人間は面積ではなくて長さでものごと判断してるってことが言えるかもしれません。

てなわけで、面積が比例するように作られた円グラフはこの時点で精度という面でかなり使えないことがわかります。しかも世の中には3D円グラフっていうのも存在して、まあ上のことを考えると今度は3乗で効いてくるわけですからもっともっと見た目と実際の量とのギャップは大きくなります。

3D円グラフを使うのはやめよう http://oku.edu.mie-u.ac.jp/~okumura/blog/node/2266

統計用プログラムRのHelp:Pie
Pie charts are a very bad way of displaying information. The eye is good at judging linear measures and bad at judging relative areas. A bar chart or dot chart is a preferable way of displaying this type of data.

正しい情報を正しく表示するっていう意味合いでは完全に悪者扱いですね。意図なく惰性で円グラフを書くのは危険ってことがわかります。 特にねつ造したいとかそういう意図がなければ棒グラフで書くのが無難です。特に項目ごとの数値を表してるグラフ(さっきの教科書の例みたいなやつ)なら棒グラフで代用できます。というか棒グラフにしましょう。 こういうことって言われてみるとあたりまえなんですけど、実際見た瞬間に円グラフだからこのグラフ作成者はここを強調したいんだな、なんて考えられるかといわれると正直微妙なので、円グラフを見るときには気を付けてみる必要があります。
例として、wikipediaにあった酷い例を挙げておきます。

こういう不思議なグラフを作ることができてしまうので、区切りを恣意的に決められるので適切ではないという例としてよくとり挙げられるヒストグラムよりもさらに悪いといえるかもしれません。あとはこんな例とか
「錯覚立体円グラフに(さらに)データ配置マジック」が混ぜられた「Appleが見せたiPadシェア」 http://www.hirax.net/diaryweb/2012/09/16.html

なかなかにエクストリームですね。ここまで来るとAppleを褒めたくなります。
こうやって調べてみると、学者は円グラフを使わずにマスコミとかビジネスマンが円グラフをよく使う理由がわかりますね。悪い人にだまされないように気を付けないといけません。
NHKの棒グラフ描画システムが機械的に世論を狂わせている可能性 http://takagi-hiromitsu.jp/diary/20070204.html

2014年1月16日木曜日

高校の物理の話

今やってるバイト先では高校の物理を教える機会もあって、今日は物理が嫌いではないけど苦手にしている高2の少年の担当でした。範囲は熱力学。
どうも熱力学第一法則の意味はわかるんだけどその使い方がよくわからないみたいで、もちろん僕も頑張って説明はするんだけどやっぱり教えるのとわかってるのとでは意味が全然違うし、どう考えても僕は教えるプロではないし言い訳をすればきりがないんですが、まあうまいこと伝えることができないわけです。
でもその生徒は数式がわからなくても頑張って食いついてくれるんです、そんでたとえば熱効率の問題で熱機関のエネルギー効率を求めなさい、っていう問題の答え合わせの時にちらっとエアコンの効率は100%を超える理由を言ったときとかにすごくいい顔をするんです。あとは跳ね返り係数を求める問題で、高さの比だけで係数が出せるとか、そういったちょっとした物理のtips?みたいなものが出てきたときですね。物事を俯瞰した視点から見れるっていう面白さはわかってくれてるんです。

日頃何気なく見てる現象とかが自分の知ってる知識で説明できる喜びっていうのはやっぱりみんな持ってて、それをもっと教えてあげる場面を学校でつくるってあげればもっと物理とか数学とか科学とかが好きになる子が増えるんじゃないかなと改めて思ったわけです。

確かにボールを投げ上げた時の高さと初速の関係とかは大事なんですけど、その式だけを闇雲に暗記させてこの問題はこう説くんだ!って教えてテストでぎりぎり合格点をとってきてあとは知らんっていうのもちょっと寂しいなと。

とはいっても毎回毎回わかりやすい身近な例を出してくるのも大変だし、勉強って最初はわからないものをうのみにする技術も(すくなくとも答えのある勉強に関しては)なかなか有効で、一概にそれをやめろとも言い難いのも事実で、どうやってその配分をとればいいのかなぁと考えてしまいます。もんもん。

2013年12月14日土曜日

とりとめのない休日

学生は平日も楽だから良い、とよくいわれますが、なんだかんだ授業の予習復習だとかバイトだとかで気にしなきゃいけないことが全くないわけではないわけで、何も予定のない休日がないとやっぱりやってられないのです。

いつもは休日は家で休むためにある!とかたくなに家から出ようとしない(家から出るのが面倒なわけではない)のですが、今日は学校で出た課題の資料探しを兼ねて本屋に出かけるついで、ダイレクトに最寄りまで電車で行かずに2駅ほど隣の駅で降りてちょこっと散歩をしてきました。
 


わざわざ京都に行かなくとも、東京にもこういう雰囲気のいい神社があるんですね。案外近場にあったのでまた機会があれば行きたいです


今日の収穫。(結局課題の参考資料は買いませんでした。長いこと立ち読みはしてたんですがなんかこうピンとくるものがなかったので…)
ベイズ統計の本とあとは乙一っていうひとの本読んだことなかったので一個ぐらいは読むかということで新刊を一つと、長いことよもう読もうと思ってていまだ読めていなかった恩田陸の6番目の小夜子を買いました。本屋に行って大量の本のなかから読みたい本を探すのはやっぱり楽しい。