BigQueryとLooker Studioで実現するNBAデータの可視化と分析
2024.4.9
はじめに
こんにちは、Shunです。
以前、バスケットボールのシュート効率を求めるブログを執筆しました。
その際、「いつかデータの可視化ができればいいな」と考えていました。
今回、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 を使用して費用を可視化する
少しでも簡単に可視化ができることが伝われば幸いです!
最後まで読んでいただきありがとうございます!
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter週8バスケしたいです。Google Cloud11冠、2024 AWS All Cert
Recommends
こちらもおすすめ
-
【初心者向け】BigQueryって聞いたことあるけど、どんなサービス?
2023.12.22
-
BigQuery ML で単語をクラスタリングしてみる
2020.3.12
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 8 %割引になる!
『AWSの請求代行リセールサービス』
2023.01.15