BigQueryとLooker Studioで実現するNBAデータの可視化と分析

Google Cloud

2024.4.9

Topics

はじめに

こんにちは、Shunです。

以前、バスケットボールのシュート効率を求めるブログを執筆しました。
その際、「いつかデータの可視化ができればいいな」と考えていました。

関連記事
【バスケデータ分析】BigQueryで探るシュート効率

今回、Looker Studioを検証する機会があったため、バスケのデータを用いて簡単な可視化方法をまとめてみました。

概要

Looker Studioとは

Looker Studioは、カスタマイズ可能なレポートやダッシュボードを作成するためのプラットフォームです。BigQueryやスプレッドシートなどのデータを、線グラフ、棒グラフ、円グラフ、地図、面グラフやバブルチャートなどを使って効果的に可視化できます。

Looker Studioに似た名前のサービスにはLooker Studio ProとLookerがありますので、混同しないよう注意が必要です。

料金

Looker Studioは無料で利用できます。

一方、Looker Studioの上位版であるLooker Studio Proは、プロジェクトのユーザーあたり月額9.00USDで提供されています。

環境構築

1. データセットの準備

今回は、「Basketball Reference」というNBAのデータをまとめたサイトからデータセットを取得します。

このデータセットは、NBA 2023-2024シーズンの「Per Game Stats」として、全30チームの平均得点やフィールドゴール率などが記録されています。

「Share & Export」からデータをダウンロードすることができます。

2. BigQueryへデータのアップロード

ダウンロードしたファイルを.csvに変換し、BigQueryにアップロードします。

スキーマは自動検出では表記の揺れがあったため、すべて手動で定義しました。

作成したテーブルから、[エクスポート] > [Looker Studioで調べる] を選択し、Looker Studioへ遷移します。

3. Looker Studioで可視化

Looker Studioでは、デフォルトで作成される表やグラフを削除し、新しくカスタマイズすることができます。

今回は新しくグラフを作成します。
上部の [グラフを追加] > [縦棒グラフ] を選択します。

続いて、[設定] からディメンションなどの設定値を入力していきます。

ディメンション
データをグループ化するための条件となる一連の値。
ディメンションは情報のカテゴリです。これらのカテゴリには、通常、名前や説明など、対象データの特性を表す値が格納されます。
出典: ディメンション

設定値の詳細は、以下で解説がされています。

以下の設定を行います。

  • ディメンション: TEAM
  • 指標: PTS,TOV(指標の追加から実施します。)

しかし、これだけでは数値の差を把握するのが難しく、全30チームがグラフに表示されていません。
より視認性の高いグラフを作成するために、グラフの[スタイル]設定を行っていきます。

[スタイル] へ以下の設定を実施します。

  • 左Y軸の値: 最小100、最大125
  • 右Y軸の値: 最小10、最大16
  • 色: 適宜設定を行ってください。

作成したグラフは以下の通りです。

このグラフでは、x軸にチーム名、左y軸に平均得点、右y軸に平均ターンオーバー数を表示しています。

TOV(ターンオーバー)とは何か?
バスケットボールは攻撃と守備が交互に行われるスポーツですが、その攻撃が失敗したり中断されたりすることをTOV(ターンオーバー)と呼びます。例えば、パスが相手に奪われたり、ボールを持っている選手が足を踏み出しすぎたり、ショットクロックが切れたりする場合などがTOVにあたります。
出典: TOV(ターンオーバー)とTOPGを解説

平均得点が高いチームほど平均ターンオーバー数が少なく、平均得点が低いチームほど平均ターンオーバー数が多いことが見て取れます。

次に、BigQueryで各チームのeFG%を求めて、それを基にグラフを作成してみます。

eFG%とは
3Pシュートが決まる確率に3Pシュートの価値も上乗せした考え方をeFG%(エフェクティブ・フィールドゴール成功率)と呼びます。
計算方法を公式にすると、eFG%={FG成功数+(0.5×3Pシュート成功数)}÷FG試投数となります。
※eFG%={2Pシュートの成功数+(1.5×3Pシュート成功数)}÷FG試投数
出典:3Pシュートは1.5倍の価値がある!? アナリスト視点でB.LEAGUEを見よう(2)

BigQueryへ戻り、eFG%を求める以下のクエリを実行します。
(ASTはグラフを見やすくするために、調整しています。)

SELECT 
    TEAM,
    PTS,
    AST,
    POWER(AST, 5) AS multiplier_AST,
    ((2P + 0.5 * 3P) / FGA) AS eFG_Percentage
FROM `[プロジェクト名].[データセット名].[テーブル名]`

以下のように結果が出力されるので、今度はeFG%を使って、Looker Studioでグラフを作成します。

次は、散布図のバブルチャートを使用してみました。

バブルチャートは、以下のように設定を行います。

  • ディメンション: TEAM
  • 指標X: PTS
  • 指標Y: eFG_Percentage
  • バブルのサイズの指標: multiplier_AST
  • スタイル: 色やバブルの大きさなどを調整しています。

このグラフは、x軸に平均得点、y軸にeFG%、バブルの大きさに平均アシスト数を設定しています。

やはり平均得点の高いチームほどeFG%が高くなり、平均アシスト数が増え、バブルが大きくなっています。
すべての値がほぼ一番大きいチームは、Indiana Pacersです。

しかし、Indiana PacersはNBA全体の順位では、30チーム中16位です。(2024-04-04現在)
平均得点、平均アシスト数、eFG%の値が高いから、順位も高いとならないことがバスケの面白さの一つです。

さいごに

Looker Studioを使用することで、非常に簡単にデータの可視化を実現できました。
今回は単一のグラフの作成に焦点を当てましたが、複数のグラフを一つのレポートにまとめることも可能です。

引用: Looker Studio を使用して費用を可視化する

少しでも簡単に可視化ができることが伝われば幸いです!

最後まで読んでいただきありがとうございます!

Google Cloud データ分析基盤構築パッケージ | C-Chorus | NHN テコラス

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

Shun

週8バスケしたいです。Google Cloud11冠、2024 AWS All Cert

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら