1球ごとのデータをエクセルで記録し、ピボットテーブルで集計する方法 〜四国アイランドリーグplusデータレポート(5月第5週号)〜
この記事の要約
データ分析の具体的な方法を知りたいという相談がよくある
四国アイランドリーグplusデータレポートの第2回は野球の試合における1球ごとのデータをどのように収集し、どのように集計するのかを簡単にまとめたいと思います。
データの作り方、ピボットテーブルの使い方を紹介し、最後にソフトバンクとの交流戦での三浦瑞樹投手を3分で分析するところまでを書いています。
野球の試合データを分析し、戦術やスキル向上に活かしたいという意見を聞く機会は増えてきましたが、実際にはどのように分析すれば良いか分からないという話もよく耳にします。
そのため、今回はエクセルでデータを作り、ピボットテーブルで集計する方法から紹介します。
なにかと便利なエクセルのピボットテーブル機能
自分も選手から試合の映像を送ってもらいコメントを求められたり、まだ見たことのない選手が出場する試合に急遽行って分析をお願いされることがたまにあるのですが、その際には即席で今回紹介するような形でエクセルでデータを記録して、ピボットテーブルで集計をしています。
例えば、前回のコラムで「球場別投手別ストレート平均球速」や「球場別球速データ取得率」を算出していますが、これらは複数のデータ項目をかけあわせて集計する「クロス集計」と呼ばれる手法の一部に入ります。
「走者状況別打率」「ストライクカウント別球種別投球割合」など、野球の試合のデータを分析する初歩は「クロス集計」の繰り返しです。
エクセルのピボットテーブルはクロス集計地獄とも言える野球の分析を最も直感的に行えるツールであり、分析初心者におすすめです。
対象読者のイメージは「エクセルを触ったことはあるが、四則演算以外の関数は使ったことがない」という人です。
なお、記事執筆前提となるリーグでの自分の役割は、下の記事をご覧ください。
1球を1行で記録するデータの作り方
投球分析をするための1球ごとデータの作り方
ピボットテーブルでのクロス集計を行う前に、まず、試合での投手の投球分析をする上で最小限な必要なデータの作り方を記載します。
次のサンプルをご覧ください。
この画像は、四国アイランドリーグplusのチームとソフトバンクホークス三軍の交流戦の1球ごとのデータの一部です。
このデータでは、下記の項目を記録しています。
・イニング
・表裏
・投手名
・投手の左右
・投手の投球数
・打者の左右
・一球ごとの結果名(ボール、見逃し、空振り、ファウル、凡打、単打、二塁打、三塁打、本塁打、死球、犠打、犠飛)
・ランナー状況(なし、一塁、二塁、三塁、一二塁、一三塁、二三塁、満塁)
・投球前のボール、ストライク、アウトカウント
これに加えて、できれば結果球かそうでないかを判別できる情報はあとからでもつけておきたいです。結果球とは打者の打席内の最終球です(盗塁死で3アウトになった場合など打席途中でイニングが終了した場合を除く)。
試合の映像を見られる環境ならば、球種、コース、高さを入れることで、より深い分析ができます。スピードガンがある場合は球速も入れたいところです。
また、環境が整っていない場合は相手打者の名前がわからないことはよくありますので、最低限としては打席が右か左かを記載しておけばよいでしょう。できれば、打順を記録しておいて、後々スコアブックと照合できるようにしておくとより良いです。
1つのシートにすべてのデータをまとめる
上の画像は、先程のデータに試合日の列を足したものです。4/6と4/23に投げているデータを同じシートで管理しています。
データの作り方を聞かれる際によくあるのが、試合ごとにシートを分けてしまい、データと分析レポートを同じシート内で作り込んでしまうパターンです。
1球を1行で表すデータ(生データやローデータとも呼びます)と、そのデータから作成した分析レポートを作るシートは分けましょう。
紙の上で分析をしなければならない時代は、例えば上の例のように、1つの分析資料の中に生データと分析レポートを1つに表現する必要がありました。
今でも、エクセル上でこれに近い形を表現しようとするケースが見られますが、生データとレポートは分けた方が良いと思います。
その上で、生データの管理は、慣れないうちはできるだけ1つのシートで表現することをおすすめします。
日本のプロ野球でもせいぜい年間25万球、メジャーリーグでも70~80万球程度であり、1球を1行とすれば、どちらもエクセルで処理できる行数です。四国アイランドリーグplusは2ヶ月で2万球(=2万行)です。おそらく年間10万行も行かないでしょう。
大量のデータを取り扱うプロフェッショナルには決していい顔をされないのですが、まずは1つのシートに1球を1行で表すデータを作り、上記の試合日の例のように必要に応じて列を足す形でデータを管理すると分析しやすいと思います。
ピボットテーブルの使い方
投手の投球数を表示する
次に、具体的な分析を行うためにピボットテーブルを使います。
ピボットテーブルはデータの集計処理を直感的に行える機能で、個人的には分析初心者に優しい機能だと考えています。
まず、分析したいデータの全体を選択して、「挿入」タブをクリックした際に一番左にある「ピボットテーブル」をクリックします。
すると、下記のようなシートが新しく作られると思います。これがピボットテーブルです。
例えば投手名を「行」に入れて、イニングを「値」に入れると、下記のような表が出来ます。
イニングの合計には意味がなく、投手の投球数を表示したいので、「合計/イニング」と書かれているセルを右クリックし、値の集計方法を「データの個数」にします。
すると、下記のように「個数/イニング」と集計方法が変更され、投手の投球数が投手ごとに表示できました。
投手の投球数をカウントするためには、イニングでなくともすべての投球でデータが入っている列であれば何を選択しても良いです(球速などはデータが空の場合があるので、投球数全体をカウントする上では不向きです)。
レイアウトを表形式にし、小計を表示しない形にする
上の投手ごとの投球数の状態から「行」に打者左右を追加したものが下記です。
個人的にはこのままだと表として見づらいため、ここで表のデザインを変更することをおすすめします。
まずは、「デザイン」のタブをクリックし、レポートのレイアウトをクリックします。
ここで「表形式で表示」を選択し「すべてのアイテムのラベルを繰り返す」を選択すると、下記の形式に変更されます。
次に、左側にある「小計」で「小計を表示しない」を選択します。すると下記のように、投手名ごと、対左右打者ごとの投球数(個数/イニング)が表示されるシンプルな形になります。
ピボットテーブルで野球の1球ごとのデータを集計する上では、最初に表示の形式をこのように変更しておくと分かりやすくなると思います。
三浦瑞樹投手を3分で分析してみる
今日のメインはデータの作り方とピボットテーブルの使い方なので、詳細な分析は省きますが、せっかくなので3分だけソフトバンク・三浦瑞樹の傾向を分析してみましょう。
生データは最初に紹介した最低限度のものに加えて、球速、球種、打席結果名も入れたものを使っています。
まず、なぜ三浦投手を対象にしたかというと、いま手元にあるホークスの投手の中で最も投球数が多い投手だったからです。
投手名を行からフィルタに移動させ、三浦瑞樹のみを選択すると、対左右打者の投球数がどちらも145球であることが分かります。
一球ごとの結果を「列」に入れ、打者の打席結果名が空白のものだけ取り除くとこのようになります。
意味としては、結果球だけ抽出して、対左右打者別にどのような結果だったかを見たものになります。
このデータをコピーし、別の計算用シートに値だけ貼り付けをします。
ここから打数、安打、被打率を計算します。結果球だけを抽出しているんので、空振りから右の列に書かれている事象(空振り、見逃し、失策出塁、単打、二塁打、凡打)はすべて打数に含まれる一球結果のはずです。安打は単打と二塁打の合計を表しています。
サンプル数が少ないとはいえ、対左右打者の被打率にちょっと差が出ていて、左投手だけれど左打者に打たれているタイプかな?という仮説が立てられます。
となると、変化球はスライダー系中心の投手であるだろうなと思ったので、次に球種割合を見てみます。
やはり、対左打者への縦変化系(チェンジアップ、フォークなど)がないので、左打者が外角に目付けをしやすいタイプです。
球種割合を出しても、チェンジアップが左打者に対して0.7%とほぼ投げられていませんでした。
3分だとこのくらいまでですが、データだけでなく映像を見てみると、下記の映像は1球だけですが左打者の内角に投げようとして投げきれてないな、とか。
アマチュア時代の球質の分析動画からだと対左打者にもチェンジアップを投げきれていたらしい、とか。
解決したい問題次第で、1球ごとの結果データ、投球映像、トラッキングデータ、バイオメカニクスのデータなどを組み合わせて分析を深められるかとは思います。
試合のデータの基本単位は1球1行の今回紹介した形が基本形で、投球や打球の軌道情報をまとめたトラッキングデータも1球を1行で記録される場合が多いです。1球を1行で表すデータ作りをマスターし、クロス集計する方法を身につければ、データの分析がはかどると思います。
以上、今回はデータの作り方とピボットテーブルの使い方に重点を当てて書いてみました。
最初のコラムにも書いた通りで、自分は「アナリティクスディレクター」なので、問題解決に向けたデータ活用の環境を整えることがメインの役割です。
自分が分析してその結果を発表するというよりは、分析したいけれど一歩を踏み出せていない人の役に立つ情報を出すということを心がけて、一歩ずつ前に進んでいければと思います。
この記事が気に入ったらサポートをしてみませんか?