Lookerを使用したスポーツ成績のダッシュボードを作る
日本情報通信の中根です。
本記事は遅刻しましたが弊社のアドベントカレンダー13日目の記事になります。
今回は以前Lookerの学習で作成した個人的な趣味マシマシダッシュボードの紹介をしたいと思います。
なにをつくったのか
Lookerの基本的な機能でどこまで作れるかをベースにNFLのStatsを見られるダッシュボードを作成しました。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F532023%2Ff8a95c56-46cc-20d3-f266-2c96be7c6ab7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=01fa443ad92c5b56fea815720d731e2f)
このダッシュボードはLookerの研修に参加したときにハッカソンとして作成したものです。
BIダッシュボードというと売上データやとかになるのですが学ぶのであれば自分が好きなものを、ということでチャレンジしました。
大体半日ほどで作成しましたがどちらかというとデータの準備や理解の方が大変だったくらいかんたんに作成ができました。
完成イメージはES◯NやC◯Sのスタッツのページです。
利用データ
アメリカンスポーツはデータジャンキーにやさしく、データソースが豊富です。
今回はRのパッケージであるnflfastRやNFLGameData.comからデータを利用しています。
Standing
NFLではAFC/NFCの2カンファレンス(地区)、東西南北の4ディビジョンに分かれています。
今回画像としてはリーグ全体の順位表となっています。
ピボットを使うことで(ここではできていないですが)任意の分割をすることができます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F532023%2F45e4cf47-267e-2135-a34f-6fb39ba93299.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e18dfdf67315b5f0498eb3f9a2e4b82a)
またチームロゴやチームカラーの情報はnflfastRにて持っていますのでLookerのhtmlを利用しています。
Play by Play & Win Probability
NFLではプレー毎の記録とその時の勝率が計算されます。
選択したプレーと成功可否において勝率がどのように変化するかが可視化することが可能です。
ホームチームとアウェイチームの勝率を表していますのでクロスしているところが所謂ターニングポイントとなリます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F532023%2Fb4100841-9021-ab11-b39c-5d78df5ce85d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=34a9874d4e338c627e45df08f49539fc)
上の例では第2クォーターの残り1分弱でタッチダウンを取ったプレイがターニングポイントであることがわかります。
Stats Leaders
様々なプレー毎の順位を見ることができます。
なんてことはない一覧ですが私が作成したときに一番欲しい画面でした。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F532023%2Fd0115f78-74f2-0879-252e-533a78f1e732.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=79b7fe169b8d6557d8ff8e2d46c10971)
というのもよくあるサイトではドリルダウンができないのです。
この選手のラッシングヤード(走った距離)は試合毎ではどう変わるのか、ビッグランが飛び出したときはどういった試合状況なのか、といったことがドリルダウンできます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F532023%2Fc6e30030-7ca4-1c00-3c5b-f252cebe3810.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=33c4bbc63e898a4e983d54795416d528)
Lookerを使うメリット
ここまでつらつらと書きましたが、Lookerを使用したメリットをいくつか上げたいと思います。
データの説明をLook MLで定義できる
なにを当たり前な、と思うかもしれないですがこれは非常に重要です。
今回利用したPlay by Playのデータですが372カラムあります。
例えば冒頭のWin Probabilityだけでも27種類ありここからデータを探索しようとしたときに、何だっけこれ?と毎回ならないようにすることができます。
とくにデータを理解している人が操作するならまだしも、データをあまり理解していない人に利用してもらおうとおもったらこの機能は非常に重要になります。
そしてこれらの定義はLook MLとしてコードとしてGitで管理できることも重要です。
データは得てして変化していくものです。重要なKPIの定義が変わってしまっては大変です
そういったものをトラッキングできる、つまりデータの質を担保する意味でも非常に役に立ちます。
データの民主化というワードは流行りましたが、民主化するためには一定の教養が必要となります。
データ定義書とデータの定義を一箇所で管理できることは不要な混乱を防ぐことができます。
ガバナンス機能
このダッシュボードは研修の一環で作成したため利用者は私1人を想定しています。
しかしLookerのガバナンスを利用するとどんな便利なことがあるでしょうか。
今回はスポーツがテーマですがガバナンス機能があることで例えば単一のダッシュボードをロジックに基づいてチームごとに提供できることが考えられます。
団体が各チームにデータを提供する場合は公平であることが求められます。
その際にデータを出し分けるロジックを持ちLook MLという形で明確に定義できるLookerの機能は非常に強力です。
これはスポーツに限らずたとえばECショップに出店しているテナントであったり、複数のメーカーに対して情報を出し分ける、といったことでも同じです。
重要なのはロジックがLook MLという形でGit管理できるためブラックボックスになりにくいことです。
まとめ
Lookerだけで所謂スタッツページはほぼほぼ作れるな、という感想です。
また最近のアップデートであったLooker Extension Frameworkを使うことでより凝ったページをLookerだけで実現することができます。
Lookerは以前からデータプラットフォームと称していましたがまさにそのとおりの機能アップデートがされておりこれからのLookerのアップデートは非常に楽しみです。