0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

プロ野球チームが大型連敗をする確率をChat GPTで聞いたPythonのコードで求めてみた

Last updated at Posted at 2023-08-05

先日、
プロ野球の世界では福岡ソフトバンクホークスが12連敗、
北海道日本ハムファイターズが13連敗、
これが同一リーグ・同一時期に発生するという事態が発生しました。

プロ野球の長い歴史において、
同一リーグ・同一時期に発生することは史上初めてのようで、
ファイターズファンとしては「なんだこれ...」と思いながら連敗脱出まで見届けていました。

さて。このような大型連敗をする確率はどのぐらいなのでしょうか。
Pythonで求めてみました。

前提条件

・両チームとも、昨年の試合数と勝率を元に計算。→ソフトバンクは141試合・0.539、日ハムは140試合・0.421

...といっても、正直Pythonはちょっと学んだことがあるものの、全く持って実践レベルではありませんので、思い切ってChat GPTに聞いちゃいました。

12連敗する確率を計算するためには、試合の結果がランダムで、連敗率が一定であると仮定します。この場合、12連敗が生じる確率は、二項分布を用いて計算できます。

Pythonでは、`scipy`ライブラリの`binom`モジュールを使用して、二項分布を計算できます。以下のコード例では、連敗率が0.5(50%)と仮定して計算しています。

from scipy.stats import binom

# 試合数
total_games = 143

# 連敗数
num_losses = 12

# 連敗率(成功率の逆数として定義します)
loss_rate = 1 / total_games

# 二項分布を使って12連敗が生じる確率を計算
prob_12_losses = binom.pmf(num_losses, total_games, loss_rate)

print(f"12連敗する確率: {prob_12_losses:.6f}")

上記のコードでは、`binom.pmf`関数を使用して12連敗が生じる確率を計算し、結果を小数点以下6桁で表示しています。連敗率が0.5(50%)の場合は、0.012282という確率が得られるかもしれません。

連敗率が異なる場合は、`loss_rate`の値を変更して計算することができます。

最初に聞いたところ上記の回答が出てきましたが、
ライブラリをを入れていないとかかんとかでエラーが発生。
ソフトを入れるのは面倒なので、ライブラリを使用せずに計算しました。

最終的なコードを使用し、このような結果となりました。

ソフトバンクの場合

qiita.py
# 勝率
win_rate = 0.539

# 連敗数
num_losses = 12

# 試合数
total_games = 141

# 連敗率を計算
loss_rate = (1 - win_rate) ** num_losses

# 141試合中で12連敗する確率を計算
prob_12_losses_in_141_games = loss_rate * total_games

print(f"{total_games}試合中で12連敗する確率: {prob_12_losses_in_141_games:.6f}")
qiita.py
141試合中で12連敗する確率: 0.012991

日ハムの場合

qiita.py
# 勝率
win_rate = 0.421

# 連敗数
num_losses = 13

# 試合数
total_games = 140

# 連敗率を計算
loss_rate = (1 - win_rate) ** num_losses

# 140試合中で12連敗する確率を計算
prob_13_losses_in_140_games = loss_rate * total_games

print(f"{total_games}試合中で13連敗する確率: {prob_13_losses_in_140_games:.6f}")
qiita.py
140試合中で13連敗する確率: 0.115067

ソフトバンクの場合は0.01%、日ハムの場合は0.1%という結果に。

両方とも余裕で柳田選手や万波選手の打率より遥かに低いですが、
0.01%は「10,000人に1人」、0.1%に至っては「1,000人に1人」と同様。

日本武道館で開催されるライブの収容人数が10,000人、
大きめのライブハウスや小さめのホールのキャパが1,000人なので、
そこまで低い数字ではないといえます。

さらに、1年あたりリーグ戦は750試合、交流戦は108試合、合計858試合開催されます。6年分に換算すると、5148試合ですので、試合数を考えれば大型連敗が発生しても不思議ではないといえます。(実際、2017年以降では巨人、ヤクルト2回、西武などで2桁以上の連敗が発生)

同時発生する確率は?

さて、同一リーグにおいて大型連敗が2つ同時に発生する確率はどのぐらいなのでしょうか。本気で計算したい場合、リーグの球団数なども変数に入れる必要がありますが、今回は簡単に

0.1%*0.001%=0.0000001%

かけあわせて計算しました。

人に換算すると、1億人に1人の割合となり、ここまで来ると日常生活では天文学的な数値となります。そりゃー、プロ野球史上初となるわけですね!

最後に:超初心者の投稿ですので、間違いなどありましたらすみません。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?