テクテク日記

テクテク=テクノロジー&一歩ずつ(テクテク)

データアナリストが作る新型コロナ(COVID-19)BIレポート

世界が新型コロナの影響を受ける中、情報共有の一環としてPower BIで新型コロナ(COVID-19)のBI*1レポートを作成してみました。BIレポートの作成にはPower Query及びDAX / Data Modelの知識が必要ですが、これら全てを駆使して出来上がったものが下記の埋め込みレポートです。ちなみに、レポートは作成後も見た目、指標、使い勝手などを随時調整していますが、大まかな枠組み(80%程度)は3日で仕上げています。 

直リンク(別ウィンドウで開いてください)
https://bit.ly/2Utmey5

MicrosoftのPower BI Serviceではレポートとダッシュボードの2つの言葉が使用されており、それぞれ概念は微妙に異なるが、広義的に見れば2つはほぼ同じものとなります。そのため、本記事で使用されるレポートはダッシュボードと同義である前提で話を進めていきます。

レポートの作成はPower BI DesktopでデータのETL*2モデリング*3DAX*4記述を行い、それと並行してビジュアルデザイン*5を行い、UI*6や使い勝手などを検証しながら最終的なアウトプットへと仕上げています。

こだわりがなければBIレポートは単なる数字のアウトプットをビジュアル化したものとなりますが、良きレポートを作りたいのであれば、以下数点について深く考慮する必要があります。そこで今回は単に見栄えだけでなく、情報量も十分であるレポートを作るにあたって考慮すべきポイントをまとめてみました。

制作の背景

① コロナ情勢の中、誰もが知りたい情報

② BI構築のスキル磨きに最適

③ 自社サイトへの掲載

主な理由は上記3つですが、世界中で様々なCOVID-19レポートが作られる中、自分が作ったものと他の人が作ったもので何が違うかを比較したかったことも1つの理由です。中でもMicrosoftのニュースセンターで見つけたダッシュボードが非常にプロフェッショナル感が出ていて素晴らしいと思いました。

考慮点

次にレポートを作成するに当たって考慮すべき点をまとめてみました。自己流ですが、洗練されたBIレポートを作るには以下の要素を全て織り込むことが重要であると考えています。

① 対象ユーザー(Target User)

何事でもそうですが、完成品(=作成するBIレポート)は誰をターゲットとしているのかを最初に想定しておく必要があります。今回の場合は非常にシンプルであり、

BIレポートにアクセスできる全ての人

となります。ビジネスでBIレポートを作る際にも言えることですが、せっかく作ったレポートが活用されないままになってしまうのでは勿体ない、だからこそまずは活用してくれるユーザーを特定するわけです。

② 言語(Language)

対象ユーザーが決まれば、今度はどこまでその範囲を広げるかを考えなくてはいけません。私が所属する企業は外資系であるため、本社からの要請も考慮し、日本語と英語の2バージョンを作りました。手間は2倍かかりますが、マスターレポートを1つ作って複製していけば、あとは翻訳作業のみになります。

幸いにもレポートの見やすさ、情報量等が評価されて、グループCEOに米国専用版を作ってほしいと依頼され、米国版も作成しました。

直リンク(別ウィンドウで開いてください)
https://bit.ly/39sQUn9

③ 使い勝手(Usability)

レポートを作ったものの、思ったほど活用してくれない場合、それは使い勝手が悪いことが原因かもしれません。自分しか利用しないレポートならまだしも、対象ユーザーがいるなかで自己流に拘り過ぎて、気づくと使い勝手の悪いレポートが出来上がってしまった、なんてことはよくあります。

私はデータアナリストなのでよく気持ちが分かるのですが、BIレポートの作成は結局のところ、

筋トレと同じで自己満足

なのです。筋トレが大好きな人には申し訳ないですが、私も昔は週4回ジムに通うほどの筋トレマニアでした。だからこそ分かるこの微妙なニュアンス、決して筋トレをディスっているわけではございません。

BIレポートですが、Power QueryやDAX / Data Modelを使ってシンプルなレポートを仕上げるだけに拘る人もいれば、単に同じページにチャート等を乱立させて見栄えの良いレポートを作りたいという人もいます。作り手が最も知っているはずの使い勝手は往々にして忘れ去れてしまうことがあり、ここに実はレポートが活用されない大きな原因が隠されているのです。

当然ながら、最もよくない例がレポート上のビジュアル(チャートやテーブル)の動作が遅い(=クエリが遅い)ことであり、食べ物を落として3秒以内に拾えばOKという

3秒ルール

がBIの世界でも存在するのです。Power BIの計算エンジンは非常に速いので、データ量が少ない場合には殆ど心配はないですが、ユーザーが心地よいと感じる反応速度(=クリックしてビジュアルが変わるまでの時間)は凡そ1秒前後であるとされています。

COVID-19のレポートに話を戻しますと、使い勝手を向上させるため、自分がBIレポートの開発者であると同時に、a) 自分がユーザーだったら何を見たいか、b) どのように今見ているレポートを解釈するのか、という2つの項目を常に念頭に入れて、その都度ファインチューニングをやってきました。

④ ビジュアル・デザイン(Visual Design)

使い勝手と同じくらい重要な要素の1つが、レポートのビジュアル・デザインになります。そもそもBI自体が情報を瞬時に吸収できるようにするためのツールなので、デザインセンスが良くないレポートは瞬時に閲覧候補から外れてしまう可能性が高いわけです。「機能性はもちろんだが、Appleの製品はデザインが美しいから使っている」というコアなファンも多いのではないでしょうか。

ビジュアル・デザインは個人のセンスや過去の仕事内容に左右される部分が大きいので、一概に正解というものはないですが、BIレポートにおけるデザインとして、私なりに考えたベスト・プラクティスの1つが以下になります。

①時系列チャート + ②観測点チャート + ③詳細テーブル

ホストの帝王ローランドの”おれか、おれ以外か”に似た表現でいうと、ざっくりかじっくりということになります。つまり、「時系列データ」と「観測点データ」は”ざっくり”、詳細テーブルは”じっくり”、これらをうまくミックスさせてレポートを作り上げるとそこそこ良いレポートが出来上がる可能性が高いことになるわけです。

f:id:marshal115:20200424231951p:plain

f:id:marshal115:20200424232458p:plain

f:id:marshal115:20200424232037p:plain

重要なことは、どちらかに偏るもダメで、ざっくり過ぎてもじっくり過ぎてもいけないわけです。バランスさせることが何より大事ですが、今度はこのバランスというキーワードが難しい。なぜなら、

  1. レポートのテーマ
  2. あなたの好み
  3. あなたの好み + 対象ユーザーの好み

の3つを考慮する必要があるからです。これ以上説明はしませんが、何となく理解頂けるかと思います。

⑤ FSBC(Font, Size, Balance, Color)

文字通り、文字のフォントやサイズ、グラフのカラー、全体的なバランスを整えることが見栄えの良いレポートを作るためのコツの1つになります。フォントやカラーは会社によってコーポレートカラーがあると思いますので、そちらをうまく使うか、ご自身でお気に入りのテーマを作ってみるのも良いと思います。(テーマの作り方はいずれどこかで記事にするかもしれません)

f:id:marshal115:20200515184430p:plain

⑥ 情報量(Information Quality)

BIレポートは用途別に単純な集計から高度な分析用プラットフォームとして機能します。先ほどの「③使い勝手」とも関係することですが、レポートのテーマを考えたときに、どれほどの情報量を入れるかを考える必要があります。

ニュースに出ている情報以外に参考となる指標が欲しかったので、COVID-19レポートの場合、単なる集計だけに終わらないよう、相対指標の算出にこだわりました。例えば、

  • 100万人当たりの感染数
  • 10平方km当たりの感染数
  • 感染者の倍増日数
  • 回復率・死亡率・陽性率
  • 地域別・都道府県別最多感染者数の日付
  • 地域内感染者数の最も多い都道府県及びその人数

等、感染者数に関する公表情報以外に必要なデータ(人口動態データ)や、やや複雑なDAX関数を使う必要がありました。

ここは開発者のこだわりが顕著に出るところで、DAX / Data Modelの知識が必須となってきます。ただ、何もかもレポートに詰め込めば良いわけではなく、レポートの反応速度を犠牲にしないよう、ビジュアル・デザインを考慮しながら必要な項目を入れていくことが重要となってきます。

⑦ ディテール(Details)

最後に、ディテール(細部にこだわること)が気づかないところでレポートのクオリティを引き上げる要素となり得ます。例えば、レポートの各ページにさり気なく配置しているボタンは、ユーザーが操作して”迷子”となった場合にリセットできたり、ページ間のナビゲーション、更にチャートの切り替えを可能にしてくれます。

f:id:marshal115:20200425150331p:plain

一方で、詳細テーブルや一部のチャートの近くに注釈を入れることで、ユーザーがレポートを閲覧した際の疑問点に対する回答を用意することになるため、ユーザーフレンドリーであると言えます。

f:id:marshal115:20200425143631p:plain

レポートにデータ出所や注釈を入れることはアナリストが作るレポートでは基本的な作業ですが、今でも多くのレポートで指標に対する説明がないものが多く見受けられます。使い勝手の1つに含まれることになりますが、レポート対象者が不特定多数の場合、

作り手の当たり前を持ち込まない

ことが重要だと思います。当然ながら、こちらはレポートの特徴次第ですが、チャートを2つだけ作りました、というような場合にはこの限りではありません。 

苦労した点

BIレポートは凝った作りにしようとすればするほど、細かいところで苦労することになります。COVID-19レポートの場合、主に以下の点で苦労しました。

① データ整備

データの世界で永遠の課題であるデータ整備ですが、相対指標の算出に必要な人口動態データとCOVID-19データの国名の紐付き、所々発生するデータの細かい修正、COVID-19の世界データに加え、日本の詳細データの追加等、複雑ではないものの、クエリの微調整に時間がかかりました。

データ整備は意図するデータ形式でなかった場合や、異なるデータソースから抽出が必要な場合に苦労するので、データの世界における"奢侈品”とされるデータベースをデータソースとして使用できない場合には多くの時間を費やすことになります。

② マップビジュアル

これはPower BIの弱いところの1つですが、既存で使用可能なマップビジュアルのクオリティがあまりよろしくない。Power BIで使用できるMapビジュアル(チャート)はいくつかありますが、インサイト(洞察)を得るのに効果があまり高くない、というのが印象です。

例えば、下記マップはおそらくPower BIで最も使われているMapビジュアル(Bing Map)ですが、他のビジュアルと一緒にしたときにレポート全体のデザインがマッチしなかったり、感染数を知るのに円の大きさが微妙であったり、かなりミスリーディングな結果になってしまう可能性があります(※決してクオリティが低いと言っているのではなく、私の求めるクオリティにまだ少し届かないという意味です)。

f:id:marshal115:20200425173629p:plain

また、「その他」という分類をPower Queryで作ったから良いものの、このグループ分けがなければ、カラーで国別を表示させようとすると下図のように何を見るべきか分からないビジュアルになってしまいます。

f:id:marshal115:20200425174210p:plain

このようなビジュアルはそれ自体を作るのが目的であれば問題ありませんが、見ている人に伝えるメッセージが不明確なので、COVID-19ではこのビジュアルを使っていません。限られたスペースの中、Mapビジュアルを見ただけでメッセージが伝わるようなものでなければ、採用したくなかった、というのが自分のこだわりでした。

そこで考えたのがビジュアル的にレポート全体とマッチするシェイプマップと言われるビジュアルですが、これがなかなか曲者でした。具体的には、Mapとデータを紐付けるために地域キー(Region Keys)というKeyを用意してあげる必要があるので、そのKeyが含まれている日本地図を探すところから作業が始まったわけです。

出来上がりは下図の通りですが、シンプルな都道府県別の感染状況が一目で分かるビジュアルになっています。2020年4月24日時点、未だに岩手県の感染者数はゼロ、関東地区では東京都及びその周りの県で感染者が集中していることがこのMapを見ただけで分かるかと思います。

f:id:marshal115:20200425175313p:plain

DAX

DAXに関して、実は脳みそ汁が出るほどのものは作っていません。計算ロジックを考えたり、新しい指標を作る際に少し間がかかった、という程度のものです。最も重視したのはDAXクエリのパフォーマンスであり、レポート上でクエリの反応速度が悪かった場合(今回はなかったですが)、DAXの見直しを行うことになります。

まとめ

長い記事となってしまいましたが、最後にまとめです。

  • レポートを作るのは何のためか?誰向けか?をはっきりさせること
  • レポートを作るだけならば難しくないが、誰にも分かりやすいレポートを作ろうとすると難しい(細部にこだわる必要があるから)
  • Power QueryとDAX / Data Modelの知識と経験は必要

レポートが良いかどうかは自分で判断しにくいものです。作ったレポートは可能な限り周りに意見を聞いて、改善点が見つかれば改善していく、その繰り返しが大事だと思います。

*1:BI = Business Intelligence略。BIツールを用いて、大量データの分析やその結果を可視化することで経営上の意思決定を迅速にサポートする手法

*2:ETL: Extract, Transform, Loadの略。データを抽出・加工し、データモデルに落とし込む作業

*3:テーブル間にリレーションを構築し、DAX関数を記述できるようにすること

*4:Data Analysis eXpressionの略

*5:BIレポートを作成するにあたってのチャートの作成やカラー適用等の作業

*6:ユーザーインターフェイスの略