9月19日時点で、セ・リーグのCS争いが荒れに荒れています。わざと混戦になるように仕向けているとしか思えない勝敗パターンを辿っています。

ゲーム差では、暫定3位の巨人から、暫定6位の阪神まで、それぞれ0.5ゲーム差あるのですが、残り試合の対戦相手との相性を加味すると、このように並んでしまうんですね。自分でも不思議なぐらいで、自分のモデル(計算式)に欠陥があるのでは? と心配になってくるほどです。

この「CSまで」の勝敗数は、95%CS進出が決まる勝敗ラインですが、もうここまで混戦になれば95%とか贅沢は言ってられません。巨人の残り試合の対戦相手との相性が良くないので、4勝5敗のラインあたりでもつれそう、というのがこいつの計算です。巨人(と阪神)が想定より負けたので、想定CSラインが急激に下がったので、試合のなかった中日まで確率が上がったわけですね。

ただ、ここに来て急上昇したから上がったような気がしますが、20%台ってことは、まだ7割以上無理ということですので、冷静に見て下さい…って、ファンなら冷静になっていられませんよね!! ずーーーーっと5位が定位置だったチームを20年以上応援してきたのでわかります!!

ここにきて故障者や過密日程の影響のあるチームもありますし、さきほど降り始めた雨はさらに日程を狂わせそうです。そこは皆さんの経験と勘で数字を補正して楽しんでください。

このオフに余裕があったら、この表も、優勝日確率やオッズ計算と同じ新型計算エンジンにしたかったのですが、こうなってくると、今すぐ切り替えたいぐらいです。計算量は激増しますが、より現実に合わせてパラメタを増やしたモデルなので、もっとリアルな値を出せるはずなんです。2ヶ月ぐらい、これに専念する時間が欲しいです。

それと、「まだ確定してないのに、100.0%とか0.0%とかどう言うことか」って方は「四捨五入」で検索してみてください。「まだ0.1%ぐらいあるだろ」って思うかもしれませんが、無いものは無いので、ご容赦ください。もちろん、確定するまでゼロではない、というのはその通りです。

シーズン終盤、つまりあと数試合で、これらの数字は全部 0 か 100 になって終わるわけですから、今後も毎日乱高下します。なぜ確率が動くのか、分からない方は「ベイズ推定 事後確率」で検索してみてください。

「ちょっと前まで2%、3%だったのに、急に20%だなんてあてにならん!」と言う方もいらっしゃいますが、その2%のシナリオを辿って、20%まで可能性をこじ開けてきたんですよ。これを素直に喜べない人も居るんだな、と、ファン心理の不思議を感じました。


プロ野球確率ページをご愛顧下さりありがとうございます。1分お時間を頂いて、プロ野球確率計算の拡張をクラウドファウンディングで支援頂けるかのアンケートにご協力お願い致します。

新時代の野球データを開拓したい

「この投手と野手の対戦成績は、3打数2安打、.667 と当たっています!」

こういう解説をよく聞きますが、2安打しただけなんて、まぐれなんか、ほんまに相性が良いんかわからんだろー! って思いませんか? もう21世紀ですよ。ビッグデータとAIの技法をふんだんに取り入れた統計指標を生み出して、昭和のデータ野球に平成最後の革命を起こしませんか!?

時々目にする謎のスタメンや采配。この投手と打者の相性は本当に良い(悪い)んでしょうか?

中途半端なデータで干されている選手が不憫ではありませんか?

AIが車を運転する時代に相応しい、高度なデータと共に選手を見たくありませんか?

この「プロ野球 順位確率」ページは、元々カープ応援ページの一部でしたが、今や、カープファンだけでなく、多くのプロ野球ファンに親しんて頂いております。これは本当に喜ばしいことであり、また、本物の統計データに価値を感じて下さる皆様に感謝しております。

プロ野球データに「客観的な確率」を導入したことで、思ったより余裕、思ったよりやばい、そんな一喜一憂が生まれたと思います。この興奮をみなさんと共有できて、毎日のペナントレースがとても楽しく、また他球団のファンの方との交流も増えました。

それと同時に、大きなもどかしさを覚える毎日でもあります。

この確率計算は、もっとデータと時間、有り体に言えば、お金をつぎ込めば、もっと色々な値が出せる設計なんです。

できそうなこと

今すぐにでもやりたいのは、現在試合ごとにしか得られていない対戦データを、打席ごとのデータに置き換えたいのです。そうすれば、次のような数値を出す事ができるようになります。

  • 予告先発を考慮したオッズ計算
  • ファーム成績を一軍換算した値の計算
  • 最近の調子の波を考慮した計算(これはもう少し熟慮が必要)
  • 今日の先発投手との相性を考慮した、スタメン各打者の打点期待値
  • 同様に、先発投手の失点期待値
  • 代打・投手交代などにおける、得点期待値の上下
  • 一球ごとの、凡退・安打・出塁・打点期待値

上から、実装が簡単な順に書きました。時間が無限にあれば、もっと色々できるのですが、特に、これらは最初から想定してモデルを設計しているため、今できていないことがもどかしいものでもあります。

これらの計算は、過去の対戦結果を単純に引いているのではなく、独自の数値統計モデルを用いて数値化した仮想選手同士を、AI将棋のように何度も仮想対戦させて確率を計算するので、初対戦でもある程度の精度で計算可能です。この手法は、セイバーメトリクス導入以来の、野球データの革命と言えると思います。

ただ、これらを計算するのには、大きな困難があります。

とにかく最初のコストが高い

  • 一打席ごとの過去データがとても高い
  • 一球ごとの過去データはもっと高い
  • リアルタイムでデータを受け取るのはもっと高い
  • リアルタイムで計算させるには、かなり高性能な計算機が必要
  • データの購入には継続して費用が発生する
  • こんなの一朝一夕にはつくれないので、年単位で継続して開発資源を投入し続けなければならない

これらは、それぞれが、おおまかに何百万円単位の話になってしまい、資産家でも大企業でもない私(と私の会社)には、とても手が届きません。そんな中、先日、クラウドファウンディングのような形でご支援頂けるなら、それが可能になるのではないか、との助言を頂きまして、その予備調査として、このアンケートを行っております。

これまで、趣味の範囲で、仕事の合間にコツコツ開発してきて、10年近くたってやっとここまで来ました。次の10年、いや、まず1年、本気でやらせて貰えませんか?  いかんせん、次のステップに必要な金額が大きすぎて行き詰まっているのです。

はたして、これらの計算にどれだけの需要があるのか分かりません。そもそも、なぜ、野球中継で、選手の打率や防御率が見たいのか、突き詰めて考えると、余計に分からなくなってきました。そこで、思い切って皆さんに聞いてみようと思うに至りました。

理想を言えば、今後も皆さんに野球データを楽しんで頂くため、基本データは無料公開のままにしつつ、ご支援頂いている方には、さらに精度の高い数値をお知らせするなど、プレミアムサービスを返礼に充てられればと思っています。もしかしたら、将来的には、もっと色々な人の知恵を借りて、ビジネスとして自立できる日が来るかもしれません。その日まで、皆様のご支援を賜ることはできませんでしょうか。

プロ野球確率計算の拡張をクラウドファウンディングで支援頂けるかのアンケートにご協力お願い致します。


マジック点灯から勢いがあるのかないのか分からない広島東洋カープ。7連勝したかと思えば6連敗(9/11まで)というジェットコースターを走っており、ファンは一喜一憂どころか七喜六憂していることでしょう。

さて、ここでは、話を簡単にするために、今日も負けて7連敗したとしますね! (←怒られそう) ― 追記:7連敗には至りませんでした

7連勝とか7連敗とか、そりゃあもう1シーズンに1回あるかないかの出来事です。ま、7連敗が3回も4回もあれば、もうそのシーズンは絶望的ですからね。

広島東洋カープの平均的な勝率は6割前後で推移しているので、簡単のために、6割に固定して計算していきましょう。

勝率6割の広島が7連勝する確率は、0.6^7 で、2.8% です。では、同じく勝率6割の広島が7連敗する確率は (1-0.6)^7 = 0.16% となります。

これが勝率5割のチームだと、どちらも 0.78% ですから、勝率5割と6割の差がどれだけ凄い事かが分かりますね。

そして、7連勝する確率は 2.8% もあるのに、7連敗する確率は 0.16% しかないので、ここに来ての7連敗となれば、広島ファンにはどれだけショックなこととなるでしょう。

さて、せっかく7連勝の直後に7連敗した(まだしてないけど)わけですから、「7連勝したあとに7連敗する確率」を求めてみましょう。これは、単純なかけ算で、2.8%×0.16% = 0.0046% と、2万分の1の珍事となるわけです。とんでもないことが起きたわけです!!

ペナントレース全体から見れば、ただの7勝7敗

しかし、ペナントレース全体から見ると、結果的には14試合を7勝7敗でぬけただけです。勝率6割の広島が、14試合を7勝7敗で抜ける確率は、14C7 0.6^7 0.4^7 = 15.7% となります。まあ、普通に考えても普通ですよね。

14試合を7勝7敗した時、それが7連勝7連敗になるのは数万分の1ですが、どの順番でかっても勝敗は変わりません。ペナントレースを決める、7勝7敗という結果は、16%ほどで極々普通に起こることなのでした。

7勝7敗ならなんてことないのに、7連勝7連敗だと世界の破滅に感じるのは、勝率6割のチームが7連敗する確率が0.16%しかない上に、心理的にも連勝より連敗のインパクトが大きいので、その相乗効果なんでしょうね。

ロングテイル

しかしながら、実は、7連勝や7連敗の起こる可能性は、この計算よりも頻度が高いのです。完全ランダムな二項分布より、すこし裾野が広がった確率分布をとり、その部分を「ロングテイル」と呼んだりします。このサイトの確率計算でも、このロングテイルの効果を最尤法の中で組み込んで再現しています。

しかし、こんな記事を書いて、本当に7連敗になりませんように…

※言い訳
この新しいエディタで、<sup> <sub> の使い方が分かりません、また分かったら修正しますね。


2018年シーズンも首位を独走するカープ。このデータを見ると、必ず優勝できるパターンが見えてきました! 全ての試合に勝たなくても、この試合だけ勝てば良いのです! 各球団の監督必見です!!

今年のセ・リーグは、カープが首位を独走する一方で、2位以下がめまぐるしく入れ替わっています。2位以下の争いはまだ(9月3日現在)決着がついておらず、ペナントレースを最後まで面白くしています。

めまぐるしく2位が入れ替わる原因は、実はカープにもあるのかもしれません。9月2日までに、カープが1位で迎えた首位攻防戦(2位との対戦)は10カードあります。そのカードの勝敗と終了後の相手チームの順位を見てみましょう

カード初日対戦相手対戦前順位対戦成績対戦後順位
4/3ヤクルト2○●○4
5/1巨人2○×○3
5/22巨人2●○2
6/26巨人2○○○4
7/3ヤクルト2×○×3
7/20巨人2○○○2
7/31ヤクルト2○○●3
8/10巨人2○△●2
8/21ヤクルト2●○○2
8/31ヤクルト2○○○2

なんと、首位攻防戦の10カードで負け越し無し。下位が混戦の時は、一気にBクラスまで押し返したこともあります。

勝率を見てみると、

首位攻防戦        20勝  5敗 1分 の .800
その他の試合    35勝28敗 1分 の .555

と、首位攻防戦にめっぽう強いことが分かります。

せっかくなので、フィッシャー検定をしてみましょう。

> fisher.test(matrix(c(20,5,35,28), ncol=2, byrow=T))
Fisher's Exact Test for Count Data
data: matrix(c(20, 5, 35, 28), ncol = 2, byrow = T)
p-value = 0.04972
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
0.9843529 12.1573690
sample estimates:
odds ratio
3.160325

p値は 0.05 を下回りました。これは社会科学などで、偶然では起こりにくい事柄の目安とされている値です。首位攻防戦と、そうでない試合との間で、勝率に統計的に有意な差が認められた、と言えます。この差は、偶然では 5% 以下の確率でしか起こりえず、偶然ではないなにかが作用している可能性が示唆されます。

首脳陣が、戦略的に2位に勝つ布陣を敷いているのか、と言われると、あまりそうは見えませんので、選手達の気合いが入るのか、はたまた、5%の偶然か、この件、選手や監督に訊いてみたいですね!!