clock2015.03.04 08:49
SERVICE
home

計算フィールドの利用|プロ野球データでクロス集計with Tableau 第8回

AUTHOR :  花谷 慎太郎

2014年のプロ野球全打席データをクロス集計していきます

2014年のプロ野球の打席データを全量(約6.6万件)手元に置き、さまざまな切り口でクロス集計して、プロ野球全体の打席の傾向を見ていく「プロ野球データでクロス集計 with Tableau」の連載シリーズ。これまではその6.6万件の打席データを様々な切り口でクロス集計した結果、見えたことを中心に紹介してきました。

今回からは少し趣を変えて、これまで紹介してきた結果はTableauでどのように集計していたかという、具体的なTableauの使い方をいくつか紹介したいと思います。

動的に打率を計算する方法

本連載で利用しているデータは第1回に説明した通り、2014年のプロ野球の全打席6.6万打席です。この6.6万打席のデータを利用して、第2回では6.6万打席全体の「カウント別」の打率、第3回第4回では、「余裕時(0ストライクと1ストライク時)」「追い込まれ時(2ストライク時)」の個人の打率ランキングをセリーグ・パリーグ別に算出しました。第5回以降はその打席時点での点差に着目し、第5回では6.6万打席全体の「大差リード時、大差ビハインド時、僅差時」の打率、第6回第7回では、「大差リード時、大差ビハインド時、僅差時」の個人の打率ランキングをセリーグ、パリーグ別に算出しています。

このように様々な条件を重ねて絞り込んだ状況での打率を集計してきましたが、これらの集計は一つ一つ手運用で計算しているわけではなく、Tableauの『計算フィールド』の機能を使って動的に瞬時に計算しています。Tableauのこの機能は大変便利で多くの分析シーンで活用できると思いますので、今回はその『計算フィールド』の使い方を紹介します。

Tableau計算フィールドの使い方

本連載で利用している2014年プロ野球全6.6万レコードには、その打席の結果に応じて「凡打」「安打」「四死球」「犠打飛」というフラグをつけています。そのフラグから「打率」を算出するためには「打率」=「安打」/(「凡打」+「安打」)という式で計算をすることになります。上述したように、その打率は「カウント別」でも算出しますし、「カウント別」x「人別」でも算出します。さらに「点差別」でも、「点差」x「人別」でも算出したいわけです。このような要望に対応できるのがtableauの計算フィールドです。

具体的な使い方は、データを読み込んだ状態で、まずTableau左下の「メジャー」というフィールドで右クリックして計算フィールドを選択します。

計算フィールド1

次に、表示された計算フィールドのポップアップ内で、「名前」のボックスに”打率”と入力し、「式」のボックスにsum([安打])/(sum([安打])+sum([凡打]))という式を入力します。

計算フィールド2

ここでのポイントは、[安打]や[凡打]という変数の前にsumという関数を入れるということです。このsum関数を入れることで、「カウント別」や「点差別」や「人別」とデータを切ったり絞ったりした状況での打率を求めるときに、自動的にその切り口に応じた分母、分子を集計し、打率を計算してくれます。このsum関数がTableau集計の肝の一つなのでぜひ覚えておいてください。

上記のように計算フィールドを作成してオッケーすると、新たにメジャーのフィールドで「打率」という項目が用意されます。これで打率の集計の準備が整いました。(ちなみに打率の#の横についている小さな=マークは、ユーザーが計算フィールドで自作した変数ということを意味しています)

計算フィールド3

では、早速この作成した「打率」という変数を使っていきましょう。

カウント別の打率を求めるためには、「ストライクカウント」という項目を列フィールドに、「ボールカウント」という項目を行フィールドにドラッグ&ドロップし、今回作成した「打率」という項目を、できたマトリックスの真ん中にドラッグ&ドロップします。すると、第2回で紹介したような、2014年プロ野球全6.6万打席のカウント別の打率が自動的に計算されます。

計算フィールド4

次に、行フィールドに「選手名」と「球団名」をドラッグ&ドロップ、マトリックスの真ん中に「打率」をドラッグ&ドロップしたうえで、フィルターで「ストライクカウント」を2だけに、「セパ」をパリーグだけに、「選手打席数」を規定打席の446打席以上に絞ると、第4回で紹介した、パリーグの追い込まれ時の打率ランキング(規定打席到達者のみ)が自動的に計算されます。

計算フィールド5

このように、表示したい条件を絞るだけで動的に瞬時に打率が計算されることになります。

 

今回紹介したsum関数を使った計算フィールドの作成は、様々な分析シーンで非常に有益ですので、ぜひ活用してみてください。次回は2次属性の試行錯誤をする時に便利なTableauの「グループ」機能について紹介します。

 

SERVICE