NPBに4割打者は誕生するのか統計的に考察してみた


導入

背景

日本にプロ野球が誕生して85年。さまざまな記録が打ち立てられましたが、まだ誰も達成していない記録がいくつもあります。そのうちの1つが打率4割です。この記事では4割打者が誕生する確率を統計的アプローチを用いて計算してみました。

4割打者が誕生する条件

4割打者が誕生するためには、以下のどちらかの条件を満たす選手の登場が必要です。

  1. 真の打率が4割の天才バッター
  2. 真の打率は4割に満たないが、運よく打ち続けて4割を達成するバッター

1の「真の打率が4割の天才バッター」はなかなか出てこないでしょう。プロ野球の長い歴史の中で「まぐれで4割を打つ打者」すら出てきていないのに、「順当に4割打つ打者」が登場するのはあまり現実的ではありません。今回の考察では1の選手は考えず、2の選手に注目して考察することにします。

推測統計学について

先ほどの4割打者が誕生する条件を読んで、「おいおい、真の打率ってなんだよ」って思った方も多いかもしれません。この考え方は統計学の分野の1つである推測統計学がベースとなっています。

推測統計学について具体的を挙げながら軽く説明しましょう。ここに種も仕掛けもない至って普通のコインがあるとします。何の変哲もないコインですので、コインを投げた時に表が出る確率は当然50%です。同様に裏が出る確率も50%です。
ではここで、コインを10回投げました。表が出た回数は7回でした。ということは今10回コインを投げて表が出た割合は70%だったといえます。コインの表が出る確率は50%なのに、10回コインを投げた時に表が出た割合は70%でした。これはなぜでしょう?

理由は簡単です。たまたま表がたくさん出たからです。表が出る割合は50%になると期待できるけど、実際にコインを投げてみたら70%の割合で表が出た。たったこれだけのことです。大事なのは観測値は偶然に左右されて変動するということです。

ここで、情報を整理しましょう。コインを投げた時に表が出る割合として期待される値(ここでは50%)のことを「真の割合」と呼びます。一方、実際にコインを投げて表が出た割合(ここでは70%)のことを「観測された割合」と呼びます。「真の割合」はランダムで変化せず1つの値であるのに対し、「観測された割合」はランダムで変化する値です。
※統計学では真の割合のことを母比率、観測された割合のことを標本比率と呼びます。

さて話を打率の話に戻します。先ほどの話を踏まえると、真の打率とは「その打者がヒットを打つ本当の確率」のことを意味し、「その打者の実際の打率」が観測された割合を意味します。ここで理解していただきたいことは、あるシーズンに打率3割をマークした打者の真の打率が3割であるとは限らないということです。あるシーズンに記録した打率=観測された値なだけであって、真の打率は2割5分かもしれないし、3割3分かもしれないのです。そして今回の考察ではこのことを利用します。真の打率は4割に満たなくてもシーズン打率4割をマークすることは可能です。では何パーセントくらいの確率で、たまたま4割を打つことができるのか検証してみましょう。

※「運良く打ち続けて4割を達成する」や「たまたま4割を打つ」というような表現を用いていますが、これは真の打率から上振れして打率4割を達成することを平易な言葉にしているだけです。4割などの高打率を達成した選手を「まぐれで記録しただけで実際は大したことないぞ」と揶揄しているわけではないので注意してください。

統計的考察

ここからは実際に統計的なアプローチで4割打者が誕生する確率を計算していきます。計算するにあたっていくつか条件を決めます。

  • 打数はシーズン規定到達の最低条件である443打席とする(143試合×3.1=443.3打席)
  • 打席数=打数とする(打率を計算するときの分母を443に固定する)
  • 通算打率を「真の打率」と仮定し、歴代最高の通算打率を基準に考察する(2019/5/10現在の歴代最高打率は青木宣親選手の.329)

この条件をベースに考察していきます。

1. シミュレーション

まずはpythonを使ってシミュレーションしてみましょう。まず歴代最高の通算打率を誇る青木選手のクローンを作成し、10000シーズン過ごしてもらいます。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# 青木選手のクローンを作成し10000シーズンのシーズン別打率を算出する
aoki = np.random.binomial(n=443, p=0.329, size=10000) / n

# ヒストグラム作成
plt.hist(aoki, bins=15)
plt.savefig("aoki.png")

# 4割を超えたシーズン数をカウント
print(np.sum(aoki>=0.4))

結果は以下のようになりました。

4割を超えたシーズン数:8

つまり、歴代最高の打者である青木選手が10000シーズン過ごせたとしても、4割以上を記録したシーズンはたったの8回だけということになります。割合にしてたったの0.08%です。

ちなみに、青木選手よりもさらに高い真の打率を持つ打者を想定した場合はどうなるでしょう。ここではイチロー選手のNPBでの通算打率.353を用いてシミュレーションすることにします。
※NPB通算打率の記録は4000打数以上であることが条件なので、通算打数が3619のイチロー選手は規定に届いていません。

結果は以下のようになりました。

4割を超えたシーズン数:182

世界最高の打者ともいわれるイチロー選手だと、打率4割以上を記録した割合は1.82%とほんの少しだけ現実味を帯びた数字になりました。それでもまだまだ厳しい数字であることには変わりありません。これだけ可能性が低いなら、今までNPBに4割打者がいなかったのも当然ですね。

2. 推定

次に仮説検定という推測統計学の手法を用いて、「運よく打率4割」になる確率を計算します。
打率が従う確率分布は二項分布という分布なのですが、サンプル数(今回でいうところの打数)が十分に大きい場合には、大数の法則より正規分布に近似することができます。
正規分布はこんな分布をしています。

左右対称で、1こぶの確率分布だと思ってください。

さて、ここで真の打率を$p$、シーズン打率を$\hat{p}$、打数を$n$とすると、

\frac{\hat{p}-p}{\sqrt{\frac{p\times(1-p)}{n}}} \sim n(0,1)

と表すことができます。これは「左の式が平均0分散1の正規分布に従っていますよ」というのを意味しています。ちなみに平均が0で分散が1の正規分布のことを標準正規分布といいます。
この式の$p$や$n$に実際の数値を当てはめることで、真の打率が$p$の選手が打率4割を記録する確率を求めることができます。

では実際に$p=0.329$,$\hat{p}=0.400$,$n=443$を代入します。すると

\frac{\hat{p}-p}{\sqrt{\frac{p\times(1-p)}{n}}} = 3.18

という数字が出てきます。この3.18という数字がなんなのかというと、
標準正規分布に従う変数が3.18になる確率は、真の打率が$.329$である打者が打率4割を達成する確率と等しい
という意味合いを持っています。つまり、標準正規分布で3.18になる確率を求めれば、その打者が4割を達成する確率を求められるのです!
標準正規分布表やエクセル等でこの確率を求めると、0.07%という数字が求められます。
つまり、青木選手が4割を達成する確率は0.07%と求めることができました!
シミュレーション時の数値と比較してもおおよそ同じ結果になっていることが確認できると思います。

同じ手順でイチロー選手が4割を達成する確率を計算すると、1.37%となりました。若干、シミュレーション時の数値よりは下がってしまいましたが、おおよそ同じ結果になっていることがこちらでも確認できます。

結論

  • 青木選手と同程度の打力を持った選手なら、0.07%の確率で打率4割を記録できる
  • イチロー選手と同程度の打力を持った選手なら、1.37%の確率で打率4割を記録できる

最後に

今回は真の打率をその選手の通算打率と定義しましたが、全盛期の打率はもっと高い可能性もあります。逆に打席数は443よりも多くなるケースも大いに考えられます。(ex.1989年クロマティ選手)なのであくまで参考程度の数字だと思ってください。
※1989年の巨人・クロマティ選手は規定打席到達時に打率4割を記録していましたが、優勝争いをしていたチーム状況からその後も出場を続け、結果的に打率は0.378まで下がってしまいました。

未来のスター選手が4割という前人未到の地へと足を踏み入れる瞬間を、ぜひこの目で見たいものですね。