HiÐΞClassic

MLBピッチャーのデータ分析:今永昇太選手の投球を解剖する(第1回)

SHOGAKU
24 days ago
MLBピッチャーのデータ分析:今永昇太選手の投球を解剖する(第1回)はじめにデータの概要分析の目的使用するツールと手法シリーズの構成おわりに

MLBピッチャーのデータ分析:今永昇太選手の投球を解剖する(第1回)

こんにちは、野球データアナリストの shogaku です。今回から、シカゴ・カブスの日本人左腕、今永昇太選手のMLBでの投球データを詳細に分析するシリーズを始めます。

はじめに

今永昇太選手は2024年シーズン、MLBデビューを果たしました。日本のプロ野球で培った技術がMLBでどのように通用するのか、データを通じて見ていきましょう。

データの概要

今回の分析では、MLB公式のStatcastデータを使用します。Statcastは、球場に設置された高速カメラとレーダーによって、投球や打球の詳細なデータを取得するシステムです。

分析対象期間は2024年4月1日から7月21日までです。以下のPythonコードで、pybaseballライブラリを使ってデータを取得しました。

!pip install pybaseball

from pybaseball import statcast
import pandas as pd

dates = [
    '2024-04-01', '2024-04-07', '2024-04-13', '2024-04-20',
    '2024-04-26', '2024-05-01', '2024-05-07', '2024-05-13',
    '2024-05-18', '2024-05-29', '2024-06-04', '2024-06-09',
    '2024-06-15', '2024-06-21', '2024-06-27', '2024-07-03',
    '2024-07-10', '2024-07-21'
]

df_684007_all_dates = pd.DataFrame()

for date in dates:
    df_single_day = statcast(start_dt=date, end_dt=date)
    df_684007_single_day = df_single_day[df_single_day['pitcher'] == 684007]
    df_684007_all_dates = pd.concat([df_684007_all_dates, df_684007_single_day])

df_684007_all_dates.reset_index(drop=True, inplace=True)

このコードで、今永選手(ID: 684007)の全投球データを取得しました。

分析の目的

  1. 今永選手の投球の特徴や傾向を明らかにする
  2. シーズンを通じてのパフォーマンスの変化を追跡する
  3. 投球メカニクスの理解を深める

使用するツールと手法

分析にはPythonを使用し、主にpandas、matplotlib、seabornライブラリを活用します。例えば、以下のコードで投球種類の分布を可視化できます:

import matplotlib.pyplot as plt

def plot_pitch_distribution(df, date):
    df_L = df[df['stand'] == 'L']
    df_R = df[df['stand'] == 'R']

    fig, axs = plt.subplots(1, 3, figsize=(18, 6))
    plt.suptitle(f'Pitch Distribution on {date}')

    colors = {'FF': 'blue', 'SL': 'red', 'CU': 'purple', 'CH': 'green', 'PO': 'orange', 'ST': 'cyan', 'FS': 'yellow', 'SI': 'pink'}
    
    df['pitch_type'].value_counts().plot(kind='pie', ax=axs[0], autopct='%.1f%%', colors=[colors.get(key, 'grey') for key in df['pitch_type'].value_counts().index])
    axs[0].set_title('Total')
    axs[0].set_ylabel('')

    df_L['pitch_type'].value_counts().plot(kind='pie', ax=axs[1], autopct='%.1f%%', colors=[colors.get(key, 'grey') for key in df_L['pitch_type'].value_counts().index])
    axs[1].set_title('vs Left batter')
    axs[1].set_ylabel('')

    df_R['pitch_type'].value_counts().plot(kind='pie', ax=axs[2], autopct='%.1f%%', colors=[colors.get(key, 'grey') for key in df_R['pitch_type'].value_counts().index])
    axs[2].set_title('vs Right batter')
    axs[2].set_ylabel('')

    plt.show()

# 例:最新の試合日のデータで投球分布を表示
latest_date = df_684007_all_dates['game_date'].max()
df_latest = df_684007_all_dates[df_684007_all_dates['game_date'] == latest_date]
plot_pitch_distribution(df_latest, latest_date)

このコードを実行すると、最新の試合日における投球種類の分布が表示されます。

シリーズの構成

これから7回に分ける

  1. イントロダクション(本記事)
  2. 投球タイプの分布分析
  3. リリース特性の分析
  4. ボールの動きの分析
  5. 相関分析
  6. 特定日付の詳細分析
  7. 結論と今後の展望

おわりに

このシリーズを通じて、今永選手の投球の特徴や、MLBでの適応過程を詳細に見ていきます。次回は投球タイプの分布について、より詳しく分析していきます。



コメント
いいね
投げ銭
最新順
人気順
SHOGAKU
24 days ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン