目次
第1章 野球データセット
- 1.1 イントロダクション
- 1.2 Lahman データベース:シーズンごとのデータ
- 1.2.1 スラッガーたちのホームラン数の推移
- 1.2.2 データの取得
- 1.2.3 Master テーブル
- 1.2.4 Batting テーブル
- 1.2.5 Pitching テーブル
- 1.2.6 Fielding テーブル
- 1.2.7 Teams テーブル
- 1.2.8 クイズ
- 1.3 Game-by-Game(試合ごとのデータ)
- 1.3.1 1998 年のMcGwireとSosaのホームラン王争い
- 1.3.2 Retrosheet
- 1.3.3 Game Logs
- 1.3.4 RetrosheetからGame logを取得
- 1.3.5 Game logの例
- 1.3.6 クイズ
- 1.4 Play-by-Play(打席ごとのデータ)
- 1.4.1 Event files
- 1.4.2 イベントの例
- 1.4.3 クイズ
- 1.5 投球ごとのデータ
- 1.5.1 MLBAM GamedayとPITCHf/x
- 1.5.2 PITCHf/xの例
- 1.5.3 クイズ
- 1.6 プレイヤーの動きと打球のデータ
- 1.6.1 Statcast
- 1.6.2 Baseball Savant data
- 1.6.3 クイズ
- 1.7 まとめ
- 1.8 参考文献
- 1.9 演習
第2章 R入門
- 2.1 イントロダクション
- 2.2 RとRStudioのインストール
- 2.3 Tidyverse
- 2.3.1 dplyr
- 2.3.2 Pipe
- 2.3.3 ggplot2
- 2.3.4 他のパッケージ
- 2.4 データフレーム
- 2.4.1 Warren Spahn のキャリア
- 2.4.2 データフレーム
- 2.5 データフレームの操作
- 2.5.1 データフレームの結合・抽出
- 2.6 ベクトル
- 2.6.1 ベクトルの定義・計算
- 2.6.2 ベクトルに関する関数群
- 2.6.3 ベクトルインデックスと論理変数
- 2.7 Rにおけるオブジェクトとコンテナ
- 2.7.1 Characterデータとデータフレーム
- 2.7.2 Factors
- 2.7.3 Lists
- 2.8 まとまったRコマンド
- 2.8.1 Rのスクリプト
- 2.8.2 Rの関数
- 2.9 データの読み込みと書き込み
- 2.9.1 ファイルから読み込む
- 2.9.2 データセットの保存
- 2.10 パッケージ
- 2.11 データの分割,適用,結合
- 2.11.1 map 関数を使った繰り返し処理
- 2.11.2 他の例
- 2.12 ヘルプの活用
- 2.13 参考文献
- 2.14 演習
第3章 グラフィックス
- 3.1 イントロダクション
- 3.2 Character 変数
- 3.2.1 棒グラフ
- 3.2.2 軸のラベルとタイトルを追加する
- 3.2.3 Character 変数を使った他の種類のグラフ
- 3.3 グラフの保存
- 3.4 Numeric 変数:一次元の散布図とヒストグラム
- 3.5 2つのNumeric変数
- 3.5.1 散布図
- 3.5.2 グラフの作成
- 3.6 Numeric変数とFactor変数
- 3.6.1 並列一次元散布図
- 3.6.2 並列箱ひげ図
- 3.7 Ruth,Aaron,Bonds,A-Rodの比較
- 3.7.1 データの取得
- 3.7.2 プレイヤーのデータフレームの作成
- 3.7.3 グラフの作成
- 3.8 1998年のホームラン王争い
- 3.8.1 データの取得
- 3.8.2 変数の抽出
- 3.8.3 グラフの作成
- 3.9 参考文献
- 3.10 演習
第4章 得点と勝利の関係
- 4.1 イントロダクション
- 4.2 Lahman DatabaseにおけるTeamsテーブル
- 4.3 線形回帰
- 4.4 ピタゴラス勝率
- 4.4.1 ピタゴラスモデルの指数
- 4.4.2 ピタゴラスモデルの良い予測と悪い予測
- 4.5 1勝に必要な得点数
- 4.6 参考文献
- 4.7 演習
第5章 得点期待値を用いたプレーの価値
- 5.1 得点期待値行列
- 5.2 イニングの残りで記録された得点
- 5.3 行列の作成
- 5.4 打撃プレーの価値の把握
- 5.5 Jośe Altuve
- 5.6 全バッターの打撃機会とパフォーマンス
- 5.7 打順
- 5.8 ヒットの種類による得点価値の違い
- 5.8.1 ホームランの価値
- 5.8.2 シングルヒットの価値
- 5.9 盗塁の価値
- 5.10 参考文献とソフトウェア
- 5.11 演習
第6章 ボール球とストライク球の効果
- 6.1 イントロダクション
- 6.2 バッターのカウントとピッチャーのカウント
- 6.2.1 あるピッチャーの例
- 6.2.2 Retrosheet からピッチシークエンスを検討する
- 6.2.3 カウントごとの予測される得点価値
- 6.2.4 打席における「経過したカウント」の重要性
- 6.3 カウントによる行動
- 6.3.1 カウントによるスイングの傾向
- 6.3.2 ボール/ストライクカウントの影響
- 6.3.3 カウントによる投球の選択8
- 6.3.4 カウントによる球審の行動
- 6.4 参考文献
- 6.5 演習
第7章 フレーミング
- 7.1 イントロダクション
- 7.2 投球の詳細データ(pitch-level)の取得
- 7.3 ストライクゾーンはどこか
- 7.4 ストライク判定確率をモデリング
- 7.4.1 推定結果の可視化
- 7.4.2 推定した平面の可視化
- 7.4.3 利き腕の調整
- 7.5 フレーミングのモデリング
- 7.6 参考文献
- 7.7 演習
第8章 選手の成績推移
- 8.1 イントロダクション
- 8.2 Mickey Mantle の打撃成績推移
- 8.3 成績推移の比較
- 8.3.1 事前準備
- 8.3.2 通算成績のを計算
- 8.3.3 類似性スコアの計算
- 8.3.4 年齢,OBP(出塁率),SLG(長打率),OPS の定義
- 8.3.5 成績推移に対するフィッティングとプロット
- 8.4 ピーク時の年齢の一般的なパターン
- 8.4.1 全選手に対する成績推移の推定
- 8.4.2 ピーク時の年齢の変化
- 8.4.3 ピーク時の年齢と通算打数
- 8.5 成績推移とポジション
- 8.6 参考文献
- 8.7 演習
第9章 シミュレーション
- 9.1 イントロダクション
- 9.2 イニング途中のシミュレーション
- 9.2.1 マルコフ連鎖
- 9.2.2 得点期待値を使った評価
- 9.2.3 遷移確率の計算
- 9.2.4 マルコフ連鎖によるシミュレーション
- 9.2.5 得点期待値のその先
- 9.2.6 チームごとの遷移確率
- 9.3 シーズンのシミュレーション
- 9.3.1 Bradley-Terry モデル
- 9.3.2 スケジュールを組み立てる
- 9.3.3 素質のシミュレーションと勝率の計算
- 9.3.4 レギュラーシーズンのシミュレーション
- 9.3.5 ポストシーズンのシミュレーション
- 9.3.6 1シーズンをシミュレーションする関数
- 9.3.7 たくさんのシーズンをシミュレーションする
- 9.4 参考文献
- 9.5 演習
第10章 バッターの好不調分析
- 10.1 イントロダクション
- 10.2 好調
- 10.2.1 連続試合安打を見つける
- 10.2.2 移動平均を考慮した打率
- 10.3 各選手の打数レベルでの連続安打
- 10.3.1 安打とアウトの連続
- 10.3.2 移動平均打率
- 10.3.3 全選手のスランプを見つける
- 10.3.4 イチローとMike Troutの連続安打は異常か?
- 10.4 Statcastにおける打球速度の特有パターン
- 10.5 参考文献
- 10.6 演習
第11章 データベースを利用したパークファクターの計算
- 11.1 イントロダクション
- 11.2 MySQL のインストールとデータベースの作成
- 11.3 R からMySQL への接続
- 11.3.1 RMySQL を使った接続
- 11.3.2 R から他のデータベースへの接続
- 11.4 R からMySQL のGame log データベースへの入力
- 11.4.1 Retrosheet からR へ
- 11.4.2 R からMySQL へ
- 11.5 Rからクエリを実行する
- 11.5.1 イントロダクション
- 11.5.2 Coors Fieldと得点の関係
- 11.6 独自の野球データベースの構築
- 11.6.1 Lahmanのデータベース
- 11.6.2 Retrosheetのデータベース
- 11.6.3 PITCHf/xのデータベース
- 11.6.4 Statcastのデータベース
- 11.7 基本的なパークファクターの計算
- 11.7.1 Rにデータを読み込む
- 11.7.2 ホームランに与えるパークファクターの影響
- 11.7.3 提案アプローチの仮定
- 11.7.4 パークファクターの適用
- 11.8 参考文献
- 11.9 演習
第12章 Statcastの打球データ
- 12.1 イントロダクション
- 12.2 スプレーチャート
- 12.2.1 1年分のStatcastデータの取得
- 12.2.2 打球方向の傾向と内野守備
- 12.3 打球角度と打球速度
- 12.3.1 打球角度vs打球速度の散布図
- 12.4 ホームラン確率のモデリング
- 12.4.1 一般化加法モデル(GAM)
- 12.4.2 滑らかな予測
- 12.4.3 2017シーズンのホームランを推定
- 12.5 打球角度は能力なのか
- 12.5.1 打球角度の分布
- 12.5.2 シーズン前半の打球角度とシーズン後半の打球角度の相関
- 12.7 演習
付録A Retrosheetファイルの説明
- A.1 打席ごとのデータファイルのダウンロード
- A.1.1 イントロダクション
- A.1.2 セットアップ
- A.1.3 特定シーズンへの関数の使用
- A.1.4 ファイルの読み込み
- A.1.5 parse retrosheet pbp関数
- A.2 event file:簡潔なリファレンス
- A.2.1 試合とイベントの識別子
- A.2.2 試合の状態
- A.3 ピッチシークエンスのパース
- A.3.1 イントロダクション
- A.3.2 セットアップ
- A.3.3 全カウントの評価
付録B MLBAM Gameday・PITCHf/xデータの活用
- B.1 イントロダクション
- B.2 データが保存されている場所
- B.3 PITCHf/xデータを用いた分析
- B.3.1 オンラインリソースからデータを取得
- B.3.2 Rによる解析
- B.3.3 XMLの展開
- B.3.4 pitchRx:PITCHf/xデータのためのR関数
- B.4 データの詳細
- B.4.1 atbatに関する要素
- B.4.2 pitchに関する要素
- B.4.3 hipに関する要素(打球位置のデータ)
- B.5 Gameday and PITCHf/xデータに関するメモ
- B.6 雑集
- B.6.1 投球の軌道を計算
- B.6.2 他のデータソースとのクロスリファレンス
- B.6.3 オンラインリソース
付録C Statcastデータの活用
- C.1 イントロダクション
- C.2 試合のシチュエーション変数
- C.3 投球に関する変数
- C.4 プレーのイベント変数
- C.5 打球に関する変数
- C.6 導出される変数
- C.7 守備変数
- 参考文献