見出し画像

【超基礎】PowerBIでいろんなダッシュボードを作ってみた

どうも、分析屋の東雲(しののめ)です。

普段私はTableauでダッシュボードを作ることが多いのですが、
今回は新たなツールの基礎習得として、PowerBI基本的なグラフ・少しの応用でできるグラフを同じデータを使い回して作ってみました。

初学者がはじめの一歩としてやってみたという感じの内容ですので、
有識者の方はどうか生温かい目で流し見ていただき(おいこら間違ってるぞ!ってところがあれば優しく指摘してください)、同じく駆け出しの方には少しでも参考になれば幸いです。


データの用意

今回は、日本の人口の時系列推移データを用意しました。
統計局の公開データからダウンロードしてきて、1テーブルにまとまっていたデータを以下2つのテーブルに分けています。

❶人口時系列データ ※ファクトテーブルとして使用

❷地域マスタ ※ディメンションテーブルとして使用

出典:総務省統計局ホームページ

はて、「ファクトテーブル」やら「ディメンションテーブル」とやらは一体なんじゃいとなる方もいらっしゃるかと思いますが、勉強したてでスマートに解説する自信がないので、詳しくはまた今度別の記事で解説できたらと思います。

一旦、正確な言い回しかは定かではないですが簡潔にいうと、
ファクトテーブル=ログデータ、ディメンションテーブル=マスターデータ、という意味合いで、「ファクトテーブル1個に対して複数のディメンションテーブルをID等で紐づけした状態(=スタースキーマ)がデータベースモデルとしての理想」、という感じかと理解しています。

今回は2テーブルしか使わないので特に分けなくても大差ないのですが、テーブル構造はスッキリさせておいて損はないです。
※ファクトテーブルとディメンションテーブルに関して、Microsoft公式の解説ページもありますのでこちらも参照ください。

かなりシンプルな時系列データですが、どのような風に可視化ができるのか色々試してみたいと思います。

PowerBIに読み込み

PowerBIのツールバーから「データを取得」から「Excel」を選択し、準備したExcelファイルを読み込みます。

この画面で「読み込み」を押すと読み込んだ状態そのままで適用され、
「データの変換」を押すとPowerQueryでの加工画面が開きますので、そこでデータの加工が可能です。

今回は特にPowerQuery上で加工などは行わないのですが、
データエラーや欠損値がないかの確認をしたいので、「データの変換」を押します。

オレンジ枠の部分で各列のデータ型、エラー行、空の行の有無が確認できます。

今回は2テーブル共確認して特に欠損値などはなかったので、そのまま左上の「閉じて適用」を押します。

読み込んだ後、左メニューバーの「モデルビュー」を選択すると、読み込んだテーブル同士の関連付けの状態が確認できます。

データを読み込んだ直後特に何もしていないのですが、「地域コード」という2テーブル間で共通のカラムを見つけて自動的に関連付けしてくれているようです(かしこいですねぇ)

これでデータ読み込みはひとまず完了です。次からようやくグラフの作成に参ります。

グラフの実装(基本編)

PowerBIでは、基本的なビジュアルは視覚化レイヤーにあるボタンで簡単に実装できます。
この中から代表的なグラフをいくつか実装してみましょう。


折れ線グラフ

時系列データを可視化するときの代表的なグラフで、何年の時点で(X軸)人口が何人いるか(Y軸)を俯瞰してみることができます。
ちなみに今は「地域」をフィルターに入れて、「全国」に絞り込んで表示しています。

グラフを見てみると、1990年ごろから5年おきに落ち込む傾向がありますね。
これは測定や集計の際に規則的に発生してしまう誤差のような印象があります(統計学で言う系統誤差というやつでしょうか)

円グラフ

こちらも有名なグラフですね。各凡例(今回でいうと地域)の全体を占める割合を確認できます。

円グラフでは時系列を直接表現するのに向かないので、年度を2022年に絞ります。
また47都道府県分のデータがありますが、今回は見易さのためフィルターで上位20都道府県のみ表示しています。

作ってみたものの、せっかくなので別の年と並べて比較してみたいですね。
という訳で、同様な感じで2012年の円グラフも作って並べてみました。

左が2022年、右が2012年の上位20都道府県の割合を示しています。

ふむ。パッと見た感じ大きくは差がないように見えますが、東京の割合が13.78% → 14.6%と、2022年の方がやや高くなっていますね。
10年間で地方から都心へ人が流れている様子がここからもわかります。

一方で、コロナ禍でのリモートワーク普及以降は、地方暮らしを選ぶ方も少なくないと聞きます。

業種・年代・性別などなど環境ごとにセグメントを分けてみて分析するのも面白そうですね。
もしかしたら一部の地方地域では逆に人口が増えていて、リモートワーカーをターゲットにした施策が有効だったりするかもしれません。

リボングラフ

こちらは少し変わり種で、順位の入れ替わりを見たいときに使われるようです。

「バンプチャート」という名前の似た用途のグラフもありますが、Tableauでは比較的実装が大変そうな印象でしたので、ボタン一つで実装できてしまうのはびっくりですね。

以下は2012年〜2022年の10年間での各都道府県人口ランキングの変遷を示しています。

上位20都道府県を表示していたのですが、あまり上位は動きがありませんね。
15~20位がたまに入れ替わるかな?程度でした。

下位10都道府県はどんな動きをしているのか気になったので、そちらも作成してみました。

下位でもそこまで順位の変動は大きくないのですね。
そりゃあ人口は10年そこらでは大きく変わるものでもないので、当然といえば当然ですね。

競馬の日別人気順変遷だとか入れ替わりの激しい分野で見てみると、また違ったことがわかるかもしれません。(競馬はまったく詳しくないのですが…)

グラフの実装(応用編)

ここまでは、特に新しいメジャーの作成の必要もなく、ボタン一つで実装可能なグラフをご紹介してきました。

しかし、DAX関数などの計算式を駆使して新しいメジャーを作成することで、表現できる幅がぐっと広がるかと思います。

まだまだ私も勉強中のため詳細の解説までは力及ばないのですが、ひとつ手を動かして作ってみましたのでご紹介いたします。

パレート図

「パレートの法則」という言葉を御存じでしょうか?

マーケティング界隈では「80:20の法則」とも呼ばれますが、
「全体の成果の8割は、全体を構成する要素のうちの2割の要素が生み出している」
➡「じゃあより全体の成果を挙げるためには、その8割を担う2割の要素を改善するのが効率いいよね」
という考え方になります。(ざっくりですが)

生産工場の品質管理に関わる方などは見かけることが多いかもしれませんね。
で、「じゃあ成果の8割を構成するのはどの要素だろう?」を可視化したものがパレート図になります。

今回の日本人口データを例にすると、
「100年後までに日本人人口を倍にしたい!」
➡「どの都道府県から集中的に人口増加の施策を打つのが効率的だろう?」
➡「まずは2022年の時点で全体の8割を占める都道府県を対象にやっていくのが効果的だろう」
みたいな感じで的を絞っていく感覚です。

以下では、2022年時点での各都道府県の人口が縦棒グラフで表示され、
その累積比率(人口が多い順に足し上げていった時の全体との比率)が折れ線グラフで示されています。

80%の部分で点線が入っていますが、都道府県の2割とまでは言いませんが、半数ほどで8割の人口が構成されているようです。

ひとまず施策はこの上位半数の都道府県を対象に行うと、効果が出やすいといえるかと思います。(人口増を受け止める土地の有無など、そう単純な話ではないのが難しい所ですね)

実装にあたり参考にさせていただいた記事と動画は以下になります。
累積比率の計算式はコピペでほとんど可能でしたが、内容を理解するのは初学者には少し難しめでした。。
時間をかけて各処理の背景を理解していきたい所存です。

▼今回実装した累積比率の計算式はこんな感じ

累積比率 = 
VAR S_Table = 
SUMMARIZE(
    ALLSELECTED('日本人口時系列データ'),'地域'[地域], 
    "Sum",SUMX('日本人口時系列データ','日本人口時系列データ'[日本人人口(総数)【人】])
)
VAR ruiseki =
SUMX(
    FILTER( S_Table,[Sum] >= SUMX('日本人口時系列データ','日本人口時系列データ'[日本人人口(総数)【人】]) ),
    [Sum]
)
VAR Total = SUMX(S_Table,[Sum])
RETURN
DIVIDE(ruiseki,Total)

まとめ

いかがでしたでしょうか。
同じデータでもいろんな角度からの可視化ができて面白いですね。

「データはあるけどどう使ったらよいのかわからない」だったり、
「PowerBIを使い始めたいけど何から手を付けたらよいのかわからない」といった場合に参考になれば幸いです。

私ももっと表現力をつけられるように精進します!



ここまでお読みいただき、ありがとうございました!
この記事が少しでも参考になりましたら「スキ」を押していただけると幸いです!

株式会社分析屋について

弊社が作成を行いました分析レポートを、鎌倉市観光協会様HPに掲載いただきました。

ホームページはこちら。

noteでの会社紹介記事はこちら。

【データ分析で日本を豊かに】
分析屋はシステム分野・ライフサイエンス分野・マーケティング分野の知見を生かし、多種多様な分野の企業様のデータ分析のご支援をさせていただいております。 「あなたの問題解決をする」をモットーに、お客様の抱える課題にあわせた解析・分析手法を用いて、問題解決へのお手伝いをいたします!

【マーケティング】
マーケティング戦略上の目的に向けて、各種のデータ統合及び加工ならびにPDCAサイクル運用全般を支援や高度なデータ分析技術により複雑な課題解決に向けての分析サービスを提供いたします。

【システム】
アプリケーション開発やデータベース構築、WEBサイト構築、運用保守業務などお客様の問題やご要望に沿ってご支援いたします。

【ライフサイエンス】
機械学習や各種アルゴリズムなどの解析アルゴリズム開発サービスを提供いたします。過去には医療系のバイタルデータを扱った解析が主でしたが、今後はそれらで培った経験・技術を工業など他の分野の企業様の問題解決にも役立てていく方針です。

【SES】
SESサービスも行っております。