
ゆうき( @BASEBALLY15 )です^^
今回は,『ベイズの定理』を使って,プロ野球の球団ごとの年俸について分析してみました.
『ベイズの定理』を使って,何が出来るのですか・・・?
例えば,プロ野球選手のデータから傾向を掴むことが出来ます.
今回の分析では, 強いチームの年俸が,全チームに比べてどれくらいの割合を占めているのか,ということが分かりました.
(Udemy『実践Pythonデータサイエンス』を参考,Jupiter notebookを使用)

目次
ベイズの定理とは?
ベイズの定理とは, ある事柄Aが起きた後に,事柄Bが起きる確率のことを言います.
高校で習う『条件付き確率』と『乗法の定理』を組み合わせたものです.
以下に,今回使うデータと合わせて,より分かりやすく説明します.
学習内容-ベイズの定理-
使うデータ
今回は,こちらのサイトのデータを使います.
以下に,csvファイルにまとめたものを載せておきます.
今回の検証は,
『プロ野球のセ・リーグの中で,年俸が1億円の選手が, Yomiuri Giants というチームに所属している確率』
というテーマで行います.

上で紹介したベイズの定理の『事柄A』が『 年俸が1億円の選手 』を指し,『事柄B』が『 Yomiuri Giants というチームに所属している 』を指します.
それでは,ベイズの定理を使って,分析を行っていきましょう^^
流れ
以下の手順で分析を行います.
- 選手がYomiuri Giantsというチームに所属している確率Pxを求める
- Yomiuri Giants というチームの中で,年俸が1億円以上ある選手の確率Pxyを求める
- 全体で年俸が1億円以上ある選手の確率Pyを求める
ライブラリ
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
import seaborn as sns
sns.set_style("whitegrid")
import matplotlib.pyplot as plt
%matplotlib inline
コード
まず,csvファイルを読み込みます.
#ファイル名を定義
filename = "anual_salary.csv"
#ファイルの読み込み
salary_data = pd.read_csv(filename)
読み込んだcsvファイルを表示してみましょう^^
#実行
salary_data
すると,このように,球団名と選手名と年俸が表示されます.
team | player’s name | annual salary(yen) | |
---|---|---|---|
0 | Yomiuri Giants | 菅野 智之 | 650000000 |
1 | Yomiuri Giants | 坂本 勇人 | 500000000 |
2 | Yomiuri Giants | 丸 佳浩 | 450000000 |
3 | Yomiuri Giants | ゲレーロ | 400000000 |
4 | Yomiuri Giants | マシソン | 355000000 |
… | … | … | … |
451 | Yakult Swallows | 田川 賢吾 | 5000000 |
452 | Yakult Swallows | 鈴木 裕太 | 4800000 |
453 | Yakult Swallows | ジュリアス | 4000000 |
454 | Yakult Swallows | 内山 太嗣 | 2800000 |
455 | Yakult Swallows | 松本 友 | 2800000 |
次に,確率を求めるために,
説明変数Xと目的変数Yを定義したいと思います.
#説明変数Xを定義(チーム名)
X = salary_data["team"]
#目的変数Yを定義(年俸)
Y = salary_data["annual salary(yen)"]
ちなみに,以下のコードを記述すると,全データ数を確認することが出来ます.
#実行
len(X)
456
今回使うcsvファイルには,6球団456人のデータが入っていることが分かりました.
選手が Yomiuri Giants というチームに所属している確率Pxを求める
まず,上のデータフレームから,” Yomiuri Giants “のデータのみを取り出します.
#giantsを定義
giants = salary_data[salary_data["team"]=="Yomiuri Giants"]
#giantsのデータ数を表示
len(giants)
90
そして,選手がYomiuri Giantsというチームに所属している確率Pxを求めます.
Px = len(giants)/len(X)
#実行
Px
0.19736842105263158
Pxは,約20%ということが分かりました.
Yomiuri Giants というチームの中で,年俸が1億円以上ある選手の確率Pxyを求める
全データからYomiuri Giantsだけを取り出したものを表示させたいと思います.
#Yomiuri Giantsのデータフレームを表示
giants
team | player’s name | annual salary(yen) | |
---|---|---|---|
0 | Yomiuri Giants | 菅野 智之 | 650000000 |
1 | Yomiuri Giants | 坂本 勇人 | 500000000 |
2 | Yomiuri Giants | 丸 佳浩 | 450000000 |
3 | Yomiuri Giants | ゲレーロ | 400000000 |
4 | Yomiuri Giants | マシソン | 355000000 |
… | … | … | … |
85 | Yomiuri Giants | 沼田 翔平 | 2400000 |
86 | Yomiuri Giants | 黒田 響生 | 2400000 |
87 | Yomiuri Giants | 平井 快青 | 2400000 |
88 | Yomiuri Giants | モタ | 2300000 |
89 | Yomiuri Giants | ラモス | 2260000 |
このデータフレームから,1億円以上の選手を取り出したいと思います.
giants_over1を定義
giants_over1 = giants[giants["annual salary(yen)"] >= 100000000]
#実行
giants_over1
このように,年俸が1億円以上の選手のみを取り出すことが出来ました.
team | player’s name | annual salary(yen) | |
---|---|---|---|
0 | Yomiuri Giants | 菅野 智之 | 650000000 |
1 | Yomiuri Giants | 坂本 勇人 | 500000000 |
2 | Yomiuri Giants | 丸 佳浩 | 450000000 |
3 | Yomiuri Giants | ゲレーロ | 400000000 |
4 | Yomiuri Giants | マシソン | 355000000 |
5 | Yomiuri Giants | 陽 岱鋼 | 300000000 |
6 | Yomiuri Giants | 山口 俊 | 230000000 |
7 | Yomiuri Giants | ビヤヌエバ | 225000000 |
8 | Yomiuri Giants | 阿部 慎之助 | 160000000 |
9 | Yomiuri Giants | 野上 亮磨 | 150000000 |
10 | Yomiuri Giants | 中島 宏之 | 150000000 |
11 | Yomiuri Giants | 炭谷 銀仁朗 | 150000000 |
12 | Yomiuri Giants | クック | 140000000 |
13 | Yomiuri Giants | 澤村 拓一 | 121500000 |
14 | Yomiuri Giants | ヤングマン | 114000000 |
そして,Yomiuri Giants内の1億円以上の選手の数を Yomiuri Giants の選手の数で割ると,Pxyを求めることが出来ます.
#Pxyを定義
Pxy = len(giants_over1)/len(giants)
#実行
Pxy
0.16666666666666666
Pxyは約15%くらいということが分かりました.
全体で年俸が1億円以上ある選手の確率Pyを求める
最後に,Pyを求めたいと思います.
まずは,全データから,年俸が1億円以上の選手を抽出したいと思います.
#全データから,年俸1億円以上の選手を抽出
all_over1 = salary_data[salary_data["annual salary(yen)"] >= 100000000]
#実行
all_over1
データフレームが長くなるので,表示結果は割愛させていただきます.
そして, Py を求めます.
#年俸1億円以上の選手を抽出する確率Pyを求める
Py = len(all_over1)/len(salary_data)
#実行
Py
0.1206140350877193
なんと,年俸が1億円以上の選手が Yomiuri Giants に約12%存在することが分かりました.
終わりに
今回は,ベイズの定理を使って,プロ野球の球団の年俸について分析してみました.
今後は,今まで以上に,統計の知識も交えながらブログを投稿していきます^^
それでは・・・