【後編】Tableauを駆使して競馬場別の複勝率を分析!

どうも、馬好きエンジニアです。

この記事は、【前編】Tableauを駆使して競馬場別の複勝率を分析!のつづきになります。

「競馬場別の複勝率を可視化する棒グラフ」の作り方について紹介していきます!

この記事はこんな人におススメ!

競馬が好きで、数字も得意な人

Tableauを学びたい人

競馬仲間と情報をシェアしたい人

X(旧Twitter)もやってます。毎日、騎手に関する分析データを投稿しているので、ぜひフォローして見に来てください!!

「複勝率×競馬場」棒グラフの構成

今回作成するグラフがこちらです。

シェルフは、次のようになっています。

シェルフ

それでは、次の章から棒グラフの作り方や複勝率ピルの作成方法など、Tableauを用いた分析グラフの作り方を解説していきます!

データソース

分析グラフで利用するデータソースの構成は次の通りです。

項目名説明
id_recordデータ固有の番号
場所競馬場の名前
確定着順何着だったか?
馬場馬場状態を表す
芝・ダ芝 or ダート
騎手名騎乗した騎手の名前

私はデータベース管理に、PostgreSQLを利用しています。

そのため、厳密に言うと用途ごとにテーブルを分けて管理しています。(競走情報テーブル、騎手情報テーブルみたいな)

Tableauで分析をする場合、それらテーブルを結合してデータソースを作成します。

ただ今回は、そこら辺の詳細は置いといて、分析で利用する項目のみ紹介しています。

シェルフの設定

シェルフとは、データフィールドをドラッグし、視覚化の要素を設定するための領域です。

今回の棒グラフでは、列と行のシェルフにそれぞれ次のフィールドを設定しました。

シェルフ

列には「場所」を設定します。
列に設定することで、競馬場を水平方向に表示することができます。

行には「集計(複勝率)」を設定します。
データソースから条件ごとの複勝率を計算し、グラフ表示してくれます。

この複勝率は計算フィールドを使っており、データソースのフィールドだけでは表現できない値や項目の作成が可能です。

⇑目次へ戻る

「複勝率」メジャーの作り方

複勝率メジャーは、「計算フィールド」を使って作成します。

計算フィールドは、分析したいフィールドが元のデータには無いとき、関数を使ってTableauの中に作成することができる便利な機能です。

四則演算を初め、Tableau独自の関数やIF文を使った条件式など、使用用途は多岐にわたります。

それでは、複勝率メジャーが計算フィールドを使って、どのように作成されているか見ていきましょう。

複勝率メジャーの計算フィールドがこちら!

馬好きエンジニア

うん。長い(笑)

オレンジ文字がフィールド、青文字が計算式になります。

やっていることは。。。

  • 1~3着の数をカウントする
  • 上記をすべて足し合わせる
  • 対象であるレース総数で割って複勝率を求める

例えとして、以下のようなデータの場合について、複勝率を求めてみましょう。

まずは、1~3着の数をカウントします。

集計項目該当数
1着4
2着1
3着0
レース総数10

複勝率フィールドでは、新しく「count_1st~count_3rd」という計算フィールドを作成しています。

代表してcount_1stの計算フィールドがこちらです。

「確定着順」=1のデータ、つまり確定順位が1着のデータのみ「1」というフラグを立てて、他はNULLとするようなIF文の計算式となっています。(2,3位の場合は=2、=3に書き換えます。)

こうすることで、count_1stをSum関数で集計したとき、フラグである「1」の数を数えれば1着データの件数を求めることができます。

「複勝率」フィールドで、IF文の条件分岐が複数ある理由はcount_1st~count_3rdを計算した際、集計過程にNull値が含まれるのを防ぐためです。

計算フィールドでの計算でNull値が含まれていると、正しい値が導出されません。そのため、Null値を含んだ計算を回避するため、Isnull関数とIF文による条件分岐を使っています。

次に、1~3着の数を足し合わせます。

1~3着までの総数
4+1+0=5

最後に、対象であるレース総数で割って、複勝率を導出します。

複勝率
5÷10=0.5(複勝率50%!)

「複勝率」フィールドは、このように計算フィールドを用いて作成されています。

まとめ

「競馬場別の複勝率を可視化する棒グラフ」の作り方について紹介しました。

Tableauの計算フィールドを使うことで、既存データだけでは表現が難しいことも、グラフ化することができます。

今後もさまざまな分析グラフについて紹介していくので、乞うご期待!