はじめに
前回の記事ウェルチのt検定を行う前のデータ加工と可視化にて、実際に今年2023年04月27日と去年のほぼ同時期の2022年5月5日の試合において、大谷翔平投手が投げたスイーパーの横の変化量の分布を比較してみました。
その結果、「大谷翔平投手のスイーパーは、2023年の方が2022年よりもスイーパー横の変化量が大きくなっているのではないか?」という仮説が立てられました。
そこで、今回はこの仮説が統計的に正しいかどうかということをウェルチのt検定という仮説検定を行い、検証していきます。
ウェルチのt検定
ウェルチのt検定とは?
ウェルチのt検定は、2つの独立した標本の平均値に差があるかどうかを検定する方法の1つであり、t値を計算することによって行われます。主に、等分散性がない場合に使用されます。
前提条件:
- 2つの標本は、独立している。
- 2つの標本は正規分布に従う。
- 標本サイズが小さくても良い。
手順:
- 2つの標本の平均値と標本サイズ、および標本の分散を計算します。
- 標本分散の不等性から、t値を計算するために、Welch-Satterthwaiteの方程式を使用して、自由度を計算します。
- 2つの標本の平均値の差に対するt値を計算します。
- t値を自由度と共に、t分布表から確率値を見つけます。
- 有意水準を決定し、検定結果を解釈します。
ウェルチのt検定は、等分散性がない場合にも使用できるため、実際のデータに対してより広く適用できるt検定の手法の一つです。
今回の仮説検定の概要
大谷翔平投手のスイーパーの横の変化量について、2023年の方が2022年よりも大きいかどうかを調べるために、以下のような仮説を立てます。
- 帰無仮説:2023年と2022年のスイーパーの横の変化量には差がない
- 対立仮説:2023年のスイーパーの横の変化量が2022年よりも大きい
この仮説を検証するために、ウェルチのt検定という統計的手法を用います。はじめに、前提条件を確認します。
前提条件としては、3つありましたが、確認を行うべきことは「2つの標本が正規分布に従っているか?」のみです。
次に、上記の前提条件を満たしたことを確認した上で、以下の手順でウェルチのt検定を行います。
- 帰無仮説に基づいて、t値を計算する。
- 自由度を計算する。
- t値と自由度から、p値を計算する。
- 有意水準を設定して、p値と比較する。
- p値が有意水準より小さい場合、帰無仮説を棄却し、対立仮説を採択する。
なお、前回の記事ウェルチのt検定を行う前のデータ加工と可視化にて加工を行った2023年4月27日と2022年5月5日の試合における大谷翔平選手のスイーパーの投球データがそれぞれ、「ohtani_pitch_sweeper_game_2023_04_27」と「ohtani_pitch_sweeper_game_2022_05_05」という名前のデータフレームに格納されているという前提で、これら2つを使い以降では説明を進めていきます。
2つのデータフレームの中身は以下のようになっている想定です。
# 2023年4月27日の試合における大谷翔平選手のスイーパーの投球データの確認
ohtani_pitch_sweeper_game_2023_04_27.head()
投手名 | 試合日時 | 横の変化量[cm] | 球速[km/h] | 変化球名 |
---|---|---|---|---|
Ohtani, Shohei | 2023-04-27 | 36.5760 | 135.023626 | Sweeper |
Ohtani, Shohei | 2023-04-27 | 43.2816 | 122.148906 | Sweeper |
Ohtani, Shohei | 2023-04-27 | 40.2336 | 133.092418 | Sweeper |
Ohtani, Shohei | 2023-04-27 | 44.8056 | 132.931484 | Sweeper |
Ohtani, Shohei | 2023-04-27 | 50.2920 | 133.092418 | Sweeper |
# 2022年5月5日の試合における大谷翔平選手のスイーパーの投球データの確認
ohtani_pitch_sweeper_game_2022_05_05.head()
投手名 | 試合日時 | 横の変化量[cm] | 球速[km/h] | 変化球名 |
---|---|---|---|---|
Ohtani, Shohei | 2022-05-05 | 31.3944 | 138.242306 | Sweeper |
Ohtani, Shohei | 2022-05-05 | 40.2336 | 136.311098 | Sweeper |
Ohtani, Shohei | 2022-05-05 | 25.9080 | 137.276702 | Sweeper |
Ohtani, Shohei | 2022-05-05 | 35.3568 | 133.575220 | Sweeper |
Ohtani, Shohei | 2022-05-05 | 32.3088 | 133.897088 | Sweeper |
前提条件(2つの標本が正規分布に従うか)の確認
ウェルチのt検定の前提条件のうちの一つ、それぞれの標本が正規分布に従っているかどうかを確認するために今回はシャピロ・ウィルク検定を行いました。
シャピロ・ウィルク検定は、データが正規分布に従っているかどうかを検定する統計的手法の一つです。正規分布は、統計的に多くの現象が従う分布であり、多くの統計解析手法で前提となっています。
シャピロ・ウィルク検定では、帰無仮説として「データは正規分布に従っている」と仮定し、その仮定が成り立つかどうかを検定します。検定統計量としては、標本の観測値と正規分布の期待値との差を標準偏差で割ったものを用いています。標本サイズが大きい場合、この検定統計量は正規分布に従うことが知られています。
この検定統計量からp値を求め、p値がある程度小さい場合(たいていは0.05以下)、帰無仮説を棄却し、データが正規分布に従っていないと結論づけます。一方、p値が大きい場合は、帰無仮説を採択し、データが正規分布に従っていると判断します。
シャピロ・ウィルク検定は、サンプルサイズが小さい場合には、正しい結果を得られないことがあるため、注意が必要です。また、正規分布に限らず、検定統計量が求められる分布がわかっている場合には、同様に仮説検定を行うことができます。
以下が、シャピロ・ウィルク検定を用いて2023年4月27日と2022年5月5日のデータがそれぞれ正規分布に従っているかどうかを確認するコードです。
# 正規分布に従うかの確認
from scipy.stats import shapiro
# 2023年4月27日のデータのShapiro-Wilk test
stat1, p1 = shapiro(ohtani_pitch_sweeper_game_2023_04_27["横の変化量[cm]"])
# 2022年5月5日のデータのShapiro-Wilk test
stat2, p2 = shapiro(ohtani_pitch_sweeper_game_2022_05_05["横の変化量[cm]"])
# 結果を出力
print("Shapiro-Wilk test (2023-04-27):")
print("Statistic =", stat1)
print("p-value =", p1)
print("\n")
print("Shapiro-Wilk test (2022-05-05):")
print("Statistic =", stat2)
print("p-value =", p2)
結果は以下のようになりました。
Shapiro-Wilk test (2023-04-27):
Statistic = 0.9620499610900879
p-value = 0.20863041281700134
Shapiro-Wilk test (2022-05-05):
Statistic = 0.9573003649711609
p-value = 0.23137706518173218
結果ですが、2023年4月27日のデータと2022年5月5日のデータの両方でシャピロ・ウィルク検定を行ったところ、p値が0.05よりも大きかったため、正規分布に従っているという仮定が成り立つ可能性が高いという結論が得られました。ただし、完全に正規分布に従っているとは限らないため、注意が必要です。
つまり、両方のデータが正規分布に従っている可能性が高いことが示されたため、ウェルチのt検定を行う際に必要な前提条件の一つである「2つの標本が正規分布に従っていること」が満たされていると言えます。
他に、前提条件として確認すべきことに「2つの標本が独立」がありますが、これは今回は行う必要はなさそうなので省略します。
ウェルチのt検定の実施
前提条件が確認できとして、いよいよウェルチのt検定の実施します。
コードは以下になります。
import pandas as pd
import numpy as np
from scipy.stats import ttest_ind
# グループ1のデータ
horizontal2023 = ohtani_pitch_sweeper_game_2023_04_27["横の変化量[cm]"]
# グループ2のデータ
horizontal2022 = ohtani_pitch_sweeper_game_2022_05_05["横の変化量[cm]"]
# ウェルチのt検定を実行する
t, p = ttest_ind(horizontal2023, horizontal2022, equal_var=False, alternative='greater')
# 自由度を計算する
s1 = np.std(horizontal2023, ddof=1)
s2 = np.std(horizontal2022, ddof=1)
n1 = len(horizontal2023)
n2 = len(horizontal2022)
dof = (s1 ** 2 / n1 + s2 ** 2 / n2) ** 2 / ((s1 ** 2 / n1) ** 2 / (n1 - 1) + (s2 ** 2 / n2) ** 2 / (n2 - 1))
# 結果を表示する
print("t値:", t)
print("p値:", p)
print("自由度:", dof)
以下が結果の出力です。(有効数字は小数点第二位)
t値: 8.39
p値: 2.15e-12
自由度: 68.04
今回の場合、「2023年と2022年のスイーパーの横の変化量には差がない」という帰無仮説、「2023年のスイーパーの横の変化量は2022年よりも大きい」という対立仮説を立て、ウェルチのt検定を用いて片側検定を行いました。
上記の片側検定の結果、p値は1.08e-12で、有意水準α=0.05の場合、p値はαよりも非常に小さいため、帰無仮説「2023年と2022年のスイーパーの横の変化量には差がない」を棄却し、対立仮説の「2023年のスイーパーの横の変化量は2022年よりも大きい」が有意水準0.05で有意であるという結論を得られました。
つまり、「大谷翔平投手のスイーパーは、2023年の方が2022年よりもスイーパー横の変化量が大きくなっている可能性がある」という結論が統計的に導かれたということになります!!
(※ あくまでも、統計的に正しいという結論です。)
まとめ・終わりに
直感的に、2023年度の大谷翔平投手のスイーパーの横の曲がりが大きくなったのでは?と思ったことが、統計的にも正しいということが今回の仮説検定の結果よりわかりました。
大谷翔平選手は日々、スイーパーの精度が良くなるよう分析し、投球フォームの改善やトレーニングに取り組んでいるとのことは良く耳にしますが、データからその成果が如実に表われているといことがわかりました。
2023年4月末時点で、大谷翔平選手の投手成績は上位に位置しますが、それもそのはず、決め球の変化量が大きくなったのだから。。
今年は、サイヤング賞とMVPを同時受賞するかもなんて言われていたりしますが、大谷翔平選手なら本当に受賞できるかもと、ファンとしては期待してしまいますね!!
今後も大谷翔平選手の進化に注目ですね!