1
2

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.

【2023年】プロ野球のパリーグの戦績でデータ分析 ver1 〜打撃編〜

Last updated at Posted at 2023-10-17

はじめに

2023年のレギュラーシーズンが終了し、クライマックスシリーズの真っただ中です。この機会に、セイバーメトリクスを使ってチームのデータを比較してみたくなり、この連載を始めました。セリーグ編もアップしていますので、興味のある方は以下のリンクからご覧ください。CS1stでは広島カープが勝利し、Finalは阪神と広島の対決となりました。

セリーグ編の記事はコチラ

引用したサイト

得点圏打率はこちらから引用させていただきます

得点との相関係数のランキング

スクリーンショット 2023-10-16 15.06.13.png

順位 項目 相関係数
1位 出塁率 0.93
2位 安打 0.85
3位 打率 0.85
4位 長打率 0.84
5位 塁打 0.83
6位 本塁打 0.82
7位 四球 0.63

※相関係数は小数点第3位で四捨五入しています。
相関係数の絶対数が大きい順に並べています。
打点、打席、打数、勝利、敗北は除外しています。

上記の表は、各指標と得点との相関係数をランキング形式で示しています。
セリーグとの違いや、その原因を分析すると、セリーグの試合の特性やDH制の有無、投手の打席への出場などが影響していることが考えられます。
また、セリーグは四球との相関係数が0.78でしたが、パリーグでは0.63となっています。

各項目と得点数とのグラフ

・出塁率
Figure_得点-出塁率.png

・安打
Figure_得点-安打.png

・打率
Figure_得点-打率.png

・長打率
Figure_長打率-得点.png

・塁打
Figure_得点-塁打.png

・本塁打
Figure_得点-本塁打.png

・四球
Figure_得点-四球.png

・打率と得点圏打率
オリックスは両方の指標でリーグトップの成績を記録しています。
楽天や西武などは打率や得点圏打率に明らかな差があり、この差がチームの得点能力や勝敗に影響していることが読み取れます。
Figure_打率-得点圏打率.png

環境構築

pip install pandas numpy seaborn matplotlib japanize-matplotlib

コード

データ分析に必要なライブラリをインポートします。

import pandas as pd
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
import japanize_matplotlib

pd.set_option('display.max_columns', None)

# パリーグのチーム打率のCSVを読み込む
df = pd.read_csv('baseball/data/npb_2023_pacific_batter.csv')

# グラフの凡例のチームカラー
team_colors = {
    'オリックス': 'navy',
    'ソフトバンク': 'yellow',
    '楽天': 'red',
    'ロッテ': 'black',
    '西武': 'blue',
    '日本ハム': 'cyan'
}

# チーム順位を追加
df['順位'] = ['1', '2', '4', '3', '5', '6']
df = df.sort_values(by='順位')
# 得点圏打率を追加
df['得点圏'] = [0.266, 0.250, 0.254, 0.239, 0.220, 0.252]

出塁率と得点の分析のコードです。

column = '出塁率'
plt.figure(figsize=(10, 5))
sns.scatterplot(data=df, x=column, y='得点', hue='チーム', palette=team_colors, s=100)
plt.title(f'{column}と得点の関係')
plt.xlabel(column)
plt.ylabel('得点')
plt.grid(True)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
for i, row in df.iterrows():
    plt.text(
        row[column], row['得点'], str(row['順位']), color='black',
        fontsize=10, ha='right', va='bottom'
    )
# 出塁率と得点の平均値を示す線を追加
plt.axvline(df[column].mean(), color='red', linestyle='--', label=f'{column}の平均')
plt.axhline(df['得点'].mean(), color='blue', linestyle='--', label='得点の平均')
#  相関係数
correlation_coefficient = np.corrcoef(df[column], df['得点'])[0, 1]
plt.text(0.1, 0.9, f'r: {correlation_coefficient:.2f}', transform=plt.gca().transAxes)
# 回帰直線
slope, intercept = np.polyfit(df[column], df['得点'], 1)
x = np.linspace(min(df[column]), max(df[column]), 100)
y = slope * x + intercept
plt.plot(x, y, color='black', label=f'回帰直線: y = {slope:.2f}x + {intercept:.2f}', alpha=0.2)
plt.show()

セイバーメトリクスの指標を用いて、より詳しく分析していきます。

・OPS
チームの得点に貢献する指標(出塁率+長打率)

オリックス、ソフトバンク、楽天が上位で、3位のロッテがリーグ平均近くの値を記録しました。
相関係数が0.94で強い相関を示しているので、今季のパリーグではOPSが得点に直結する傾向があります。
Figure_得点-OPS.png

・ISO(IsoP)
安打数から単打を引いた打者の長打力を測る指数(長打率-打率)

優勝したオリックスはOPSに続きISOもリーグ上位。このことから、オリックスの長打力がパリーグ1位であることが確認できます。
OPSで高い値を示していたソフトバンクと楽天はリーグ平均程度の数値でした。
最下位の日本ハムはOPSとISO、両方でリーグ平均近くの値を持っています。
5位の西武はOPSとともにISOでもリーグ最下位。来季の挑戦としては選球眼の向上や、長打力の強化が期待されます。
相関係数は0.60であり、長打が増えると得点も増える傾向があることが分かります。
Figure_得点-ISO.png

・BABIP
打者の運や守備の影響を除いた打撃能力を示す指標(安打-本塁打)/(打数-三振-本塁打+犠飛)

ホークスがリーグ1位、続いて優勝したオリックスが2位となっています。これは両チームの打者の打球の質が高い可能性があります。
その他のチームは打球の質が平均以下であるか、守備シフト等の対策を受けている可能性が考えられます。
相関係数は0.74で、質の高い打球が得点に大きく影響していることが示されています。
Figure_得点-BABIP.png

・RC
打者がどれだけ得点を生み出したかの指標(安打+四球)x塁打/打席

パリーグ1位と2位のオリックスとソフトバンクがリーグ上位のRCを持っています。
相関係数は0.95で、RCが高ければ高いほど得点が増加する強い関係が確認できます。
Figure_得点-RC.png

・BB/K
打者の選球眼の指標(四球/三振)

楽天がリーグ1位のBB/Kを持っており、特に浅村選手の選球眼が際立っています。
優勝したオリックスはリーグ平均をやや下回るBB/Kで、この点では5位の西武と近い数値です。しかし、他の指標での高いパフォーマンスでその差を補っていると考えられます。
相関係数は0.64であり、選球眼が得点にも影響していることが分かります。
Figure_得点-BB:K.png

おまけ

盗塁数とその成功率を示すグラフです。
「走魂」の西武はリーグ平均以上の盗塁数を持ちながら、成功率は平均を下回っています。
効果が思ったより無さそうなので来年のスローガンは「激走魂」「爆走魂」なのでしょうか?(X旧Twitterで「爆走死魂」とか書き込まれそうです)
Figure_盗塁-盗塁成功率.png
また、盗塁規画数と成功率でグラフを作成しました。
優勝したオリックスは盗塁規画が少なく、成功率も低くなっています。

横軸に盗塁を試みた数で、縦軸に盗塁の成功率です。
楽天はリーグ平均よりも多くの盗塁を試みており、成功率も高くなっています。

ロッテは少ない盗塁規画数ですが、成功率はリーグ1位となっており、選手の盗塁の上手さなのか、ベンチワークの良さなのか。
Figure_盗塁成功率-盗塁規画.png
ただ、盗塁と得点の関係は-0.07で弱い相関を示しており、今季のパリーグで見ると盗塁が増加しても得点が増えにくいというデータになっています。
気になった人は様々なデータを見て盗塁の有効性を調べると面白いと思います。Data⚪︎tadium🔥さん🙇

関連するデータを可視化する時は
Seabornで見やすいグラフを作った方が良さそうです。とほほ

Dear 野球をしている人達
フライボール革命、バレルゾーン、打ち方など気になったら👇

1
2
0

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?