データ分析におけるデータ可視化の極意

# はじめに
データ分析においてデータの可視化はなくてはならない非常に重要な作業です
この記事では、データ分析の現場でクライアントからよく相談を頂く
「データ可視化のコツは何か？」「こういうデータが見たいときはどういうグラフを使うと効果的か？」について、どういう視点でデータ可視化をすべきか、データ可視化の目的別のビジュアル（グラフ）の選び方と使い方を Power BI Desktop を使って具体例で説明します

# データの可視化とは
・数値データだけでは確認しにくい現象や事象を、グラフ・図・表などのビジュアルで表現することで数字からわかる情報の理解を助けること
### データの可視化の目的
・データセットのパターン、傾向、関係性、外れ値を簡単に識別できるようにすること
・データを可視化することで、データから情報と知識を正確かつ効率的に抽出し、わかりやすく伝達して価値に変えること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/38ea8286-237e-b3e9-ccd9-aafb946ce4ff.png)
### データの可視化のメリット
・データをわかりやすく表現することで、**問題箇所や原因の特定、意思決定を迅速に行える** ようになる
・誰が見ても一目瞭然の可視化を標準化することで、**情報共有がスムーズに行える** ようになる

# データ分析における可視化
・データ分析の世界において、データを理解せずにその先の分析工程に正しく進むことはできない
・高度な機械学習を使うとしても、可視化して様々な分析アプローチの判断をし、
　AIモデルの予測結果や精度を業務視点・粒度で可視化して関係者を腹落ちさせることになるため、
　可視化は最初から最後までとても重要な工程である
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/27f09bfa-cbd7-4fc8-9997-55a0d9d2f2bd.png)

# 基礎集計（データ理解）のための可視化の心得

::: note 
データ可視化の心得
✔ まずは先入観を持たずにそのデータや業務を理解する気持ちで、
データ期間、種類、ボリューム、トレンド等、大枠からデータを捉えていく

✔ データを正しく理解するために、シンプルでわかりやすいビジュアル（グラフ）を選択
（上記を無視した凝ったビジュアルは意外と数字が頭に入ってこないことが多い）

✔ 可視化したら、なんとなく眺めるのではなく「このグラフ結果から何が読み取れるか？」具体的に考察を書き出して整理する

✔ データの全貌が理解できてきたら、分析目的となる数値にフォーカスして、
考察した仮説を確認していくように様々な切り口で可視化⇒仮説⇒可視化を繰り返し掘り下げていく

✔ データ分析では、分析対象となるデータを人手で収集・取込・加工することが多く、その工程で不備はつきもの
  データ可視化の中で不備がないかも確認
（上記の流れと心得で進めていれば自然に不備に気付く）
:::

# 可視化手法
## 目的別ビジュアル（グラフ）の選び方
データ分析の目的別によく使うビジュアルを整理してみました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/6a273cb9-bf60-0c51-4b19-0d8557640d72.png)
Power BI Desktop にはすぐに使用できるビジュアルが多数用意されており、それだけでも十分可視化できますが、更にカスタムビジュアルから豊富なビジュアルを追加することもできます
上記の整理で、薄グレーになっているビジュアルは、カスタムビジュアルです

https://docs.microsoft.com/ja-jp/power-bi/developer/visuals/power-bi-custom-visuals



それでは、実際の活用例を紹介しながら、ポイントをお伝えしていきます
「訪日外客数データで Power BI レポート作成」シリーズの記事で作成したビジュアル達を例に説明します

実際にPower BI レポートを触りながら本記事の説明を確認したい場合は、以下の GitHub から「F-data_report_sample_4.pbix」を手元にダウンロードしてご利用下さい

https://github.com/mimocihz/powerbi_sample_report

## データの時系列推移を見たい ①
時系列推移を見たい場合は、時間軸をX軸に、対象数値をY軸にセットし、
ビジュアル：折れ線グラフ、折れ線積み上げ棒グラフ、データフォール図 等で可視化するとよいでしょう

**活用例：訪日外客数の時系列推移**
ここでは凡例を [国名] にして、ページ上部の[地域]・[国名] スライサーで国名を指定してフィルターをかけて、国別に訪日外客数の時系列推移を見ています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/6e66f0fe-1afd-8713-e266-d8cdd1414375.png)

::: note 
可視化からの考察
✔ 各国とも2014年あたりから訪日外客数が年々急増
✔ 2020年1月以降、COVID-19 のパンデミックによる 訪日外客数の急落＆低迷が続く
✔ 各国とも訪日時期のスパイクがあるが、その時期が国によって異なることに気づく
　⇒どの月が多いのか把握しやすいように下に月別棒グラフを配置し、国別に見てみよう！
:::

::: note warn
ここがポイント！
月別棒グラフは通常月の昇順に並ぶが、ここでは人数の多い月を見たいので
軸の並べ替え > 人数の降順 にして、知りたいことをズバリ確認できるような表現にすることがポイント
:::
【中国の訪日外客数】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/945eeaa1-f653-fd14-3082-ad417d8a63e9.png)
【タイの訪日外客数】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/67140fc7-cd91-1312-b85a-d36dc7309a92.png)

::: note
可視化からの考察
✔ 中国は、7,8月の夏休み時期？がピーク、5,11,12月が最も少ない、春節の2月は意外と少ない
✔ 韓国は1,2月が最も多い、台湾は6,7月が最も多い
✔ タイ、フィリピン、ベトナムは4月が最も多い、シンガポール、マレーシアは12月が最も多い
　⇒情報：タイ、フィリピン、ベトナムでは流行ドラマの影響で桜の季節に訪日したい人が多いと聞いたことがある
　仮説：流行ドラマやそのロケ地は、訪日外客数増加に影響があるのでは？
:::

## データの時系列推移を見たい ②
各国通貨vs円の為替レートと訪日外客数には相関があるのでは？という仮説を検証するために
同時期の訪日外客数、訪日外客数昨対比％と為替レートを比較してみます

**活用例：各国通貨vs円為替レートと訪日外客数の時系列比較**

::: note warn
ここがポイント！
・[訪日外客数] と [外国為替ヒストリカルデータ] という別々のテーブルを同じ [年月] 軸で１つのビジュアル（グラフ）で比較するために、[年月カレンダー] と各テーブルリレーションを作成しておく
・各ビジュアル（グラフ）の軸や凡例に使用する項目はマスタテーブル側の項目を使うこと
（[年月カレンダー] の [年月]、[国マスタ] の [国名] を使用）
・Y軸のスケールを自動にしていると [訪日外客数] の [昨対比] の外れ値の影響でスケールが幅広になって折れ線の推移が見にくくなるため、外れ値は切れてもいいのでスケールを調整する
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/5042aff2-82b7-f143-be26-b504a8b90485.png)

::: note
可視化からの考察
✔ 訪日外客数と為替レートを比較したが、月毎の人数増減に引っ張られ相関が見えにくいため、
訪日外客数の昨対比％で均して比較してみた方がよさそう
✔ 少なくとも近隣アジア（韓国、中国、香港、台湾）の国では、円安だと訪日外客数が増え、円高だと訪日外客数が減る傾向が見られ、訪日外客数の昨対比％と為替レートは相関がありそう
✔ 他の国ではその傾向はあまり見られなかった
:::

## データの構成比を見たい
構成比を見たい場合は、全体に対する占める割合を面積の大小で表現するような
ビジュアル：ツリーマップ、円グラフ、ドーナツグラフ、集合横棒グラフ、100％積み上げ棒グラフ 等で可視化するとよいでしょう

**活用例：訪日外客数の地域別、国別人数構成比**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/8b016df0-6247-46eb-b675-95409d977e32.png)

::: note
可視化からの考察
✔ 訪日外客数累計の地域別に構成比は、1位は近隣アジア(韓国、中国、香港、台湾、マカオ)で全体の70%を占めている
✔ 国別の構成比は、1位：韓国 2位：中国 3位：台湾 4位：米国 5位：香港、上位5ヵ国で全体の 75％ を占める
:::

## データのシェア推移を見たい
年毎の国別構成比推移を確認してみたい場合は、ビジュアル：リボングラフが向いています
リボングラフは、構成比の高い順に凡例が並び、時系列で追えるので、シェア構成比と順位争いがわかりやすいです

**活用例：訪日外客数の国別シェア推移**

::: note warn
ここがポイント！
・年月毎だと推移がごちゃごちゃし過ぎてわかりにくいので、X軸の[年月]を日付階層の[年]にすることで年単位で大まかなシェア推移を確認
＝ビジュアル（グラフ）から読み取りやすい粒度に調整することがポイント
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/457c9336-d872-3050-b03f-489586780c27.png)

::: note
可視化からの考察
✔ 2013 年までは韓国が首位だった、2014 年以降は中国、台湾が急増し、2015 年以降は中国が首位
:::

## データを一覧で見たい
グラフもわかりやすいですが、Excel に慣れている人にとっては、なんだかんだ表形式がわかりやすかったりします
特に軸が増えてきたりするとシンプルに テーブル、マトリックス等のビジュアルを使い、
Excelのように条件付き書式でセルの色濃淡で数字の大小を表現してあげるとわかりやすいでしょう

地域・国別に月別の訪日外客数の割合を表現するマトリックスを作成してみたいと思います

**活用例：地域別、国別の訪日外客数の各月人数割合表**

::: note warn
ここがポイント！
・人数を「行集計に対する比率」にすることで、国別に月毎の人数割合％が計算され、各国比較しやすくなる
・条件付き書式を使って数値の大小で背景色の濃淡で、どの月が多いか少ないか視覚的に理解しやすい
::: 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/811095e5-f0eb-5563-e7e9-d21fb2913953.png)

::: note
可視化からの考察
✔ 全体でみると1月と7月が多い、続いて4月と10月が多い
　⇒仮説：訪日の理由としてビジネスと観光とあると思うので、観光なら長期休暇が取得しやすい月？仕事なら年度初月？が多いということか？
✔ 同じ地域でも国によって訪日月の割合は特徴が分かれることがわかった
:::

## データの流量や組合せを見たい
データの流量や組合せを見たい場合は、
ビジュアル：Sankey Chart や Pie Charts Tree （両方ともカスタムビジュアル追加で利用可能）で可視化するとよいでしょう

::: note warn
ここがポイント！
・Sankey だとスタートとゴールを1つずつしか項目設定できないので、今回のように [国名] [出発地] [目的地] 等複数ポイントがある場合は Pie Charts Treeの方が融通が利く
・流量の降順に上から並ぶのでわかりやすいのも使い勝手がよい
:::

**活用例：訪日外客数の入国から目的地への流量**
・[訪日外国人_流動データ] を 2019 年で絞って分析
・Categories にスタートや通過ポイント、ゴールを順番にイベント発生順に設定（ここでは [出発地][目的地]を設定）、
　Value には流量となる [訪日外国人流動量(人)] を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/4f25176d-ce69-3207-746e-1baed6b7add7.png)

::: note
可視化からの考察
✔ 訪日外国人の入国は、成田空港が1位、続いて関西空港、羽田空港
✔ 近隣アジアに絞ると、関西空港が1位になる
:::

**活用例：沖縄を目的地とする訪日外国人の国と入国港の流量**
・Categories に[国名]を追加
・[目的地_名称] スライサーを　"沖縄" にして、どの国の人がどの空海港から入国してくるか確認してみる
・[地域] スライサーを "近隣アジア" に絞って見やすくする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/8b896f98-e7ca-57c9-4009-6f67ebecc498.png)

::: note
可視化からの考察
✔ 沖縄を目的地とする訪日外国人は、1位：台湾、2位：韓国、3位：中国
✔ 入国港は、各国とも那覇空港からの入国が98％超
　⇒仮説：目的地に対して各国からの直行便有無は流量に大きく影響しそう
:::

## データの地理的分布を見たい
データの地理的分布を見たい場合は、ビジュアル：マップ や Azure Map で可視化するとよいでしょう
Power BI のマップは Bing マップと統合されており、緯度経度の地理的なデータ以外に、国名、都道府県、市区町村、郵便番号などの情報を持つデータでも、簡単に地図上にプロットして可視化できます
※Bing マップがジオコーディングする際に、インターネットへアクセス可能なネットワーク環境が必要です

**活用例：都道府県別の訪問人数と各国構成比**
ここでは近隣アジアの国に絞って、都道府県毎に訪問人数をバブルサイズで表現し、凡例に [国名]を設定して、各国の構成比がわかるようにしています
バブルサイズでどの都道府県が訪問人数が多いか、円グラフの色の割合で視覚的にデータの特徴を捉えやすいですね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/d0b105c2-0f22-f6fc-d6b8-9ed23965147c.png)

::: note
可視化からの考察
✔ 訪問都道府県ランキングは、1位：東京、2位：大阪、3位：京都、4位：沖縄、5位：北海道で、最下位は、高知、福井
　⇒仮説：各都道府県の国際線発着便数と相関がありそう
✔ 韓国は西日本への訪問割合が多く、台湾には北国（北海道、東北、北陸）が訪問が多く人気がありそう
:::

## データの相関関係を見たい ①
データ同士の相関がみたい場合は、
ビジュアル：散布図、主要なインフルエンサー、相関プロット（カスタムビジュアル）で可視化するとよいでしょう

::: note warn
ここがポイント！
ただし、[人口比] や [為替昨対比] [訪日外客数昨対比] のようなメジャー項目は、そのときのフィルターや軸によって毎回再計算されるため、相関系のビジュアルではそのまま使用できません
相関系ビジュアルを使う前に事前にキー項目で集計したテーブルにしておく必要があります
これを Power BI Desktop 上で簡易的に実施する方法は、国別月別の集計テーブルに可視化して、そのデータをエクスポートして再度データを取り込むことです
イメージはこんな感じで、機械学習モデルのデータセットを作るような感覚です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/33c56670-6429-781b-5f0b-35f208e39b17.png)
:::

**活用例：訪日外客数の増減の主要なインフルエンサー**
**主要なインフルエンサー：人数の増加に影響を与えるもの**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/f2d0d6d4-511c-0bf4-8549-368cf1da1681.png)
**上位のセグメント：訪日外客数が少ない集団**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/72c662e5-8cac-8043-1477-3188bad6eb70.png)

::: note
可視化からの考察
✔ 主要なインフルエンサーによると、訪日外客数の多い条件は以下である
　・地域：近隣アジア
　・国名：中国、韓国、台湾、香港、タイ
　・人口比は0.749%以上の国
✔ これまでの各ビジュアルでの可視化から得られた内容と同等だが、何から見て良いかわからないときには最初にこのビジュアルでデータの当たりをつけるという使い方もよさそう
:::

## データの相関関係を見たい ②
**活用例：訪日外客数の昨対比と為替昨対比の相関関係を可視化**
2つの項目の相関関係を可視化するには、ビジュアル：散布図を使って可視化したり、メジャーで相関係数を作成したりするとよいでしょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/6bfdc14d-8786-e80b-7075-cf2282c3e652.png)

::: note
可視化からの考察
✔ [昨対比]と[為替昨対比]の相関は、全体的には相関があるとは言えないが、香港、ロシア、台湾等、近隣アジアはやや相関あり
　⇒仮説：目的が観光の訪日外客数が多い場合は、多少相関はあるかもしれない
:::

## 特性や評価データを見たい
5種類以上の評価項目データから特性を確認したい場合は、ビジュアル：レーダーチャート（カスタムビジュアル追加で利用可能）で可視化するとよいでしょう

この可視化だけは「訪日外客数データで Power BI レポート」シリーズのシナリオでは作成できなかったので、全然ちがうデータ例で紹介します

**活用例：新卒採用者のクラスタリング毎の特徴把握**
新卒の属性情報やSPI適正検査データを活用し、いくつかのグループにクラスタリングした後、
ビジュアル：レーダーチャートで、各グループの平均と全体平均をで比較することで、その集団を特徴づけしやすくなります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/e548be9f-9a9d-8f39-25a6-581472546b46.png)
各グループの特徴づけイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/a77bce5e-cee4-c288-ef55-e88bcda8b0fb.png)

# さいごに
色々な可視化手法を説明しましたが、
大事なことは「何が知りたいのか？」「何を見てもらいたいのか？」を基本軸にして、そのデータをシンプルでわかりやすいビジュアル（グラフ）で可視化し、「そこから何が読み取れるか？」具体的に考察し、仮説⇒可視化の繰り返しでインサイトは得やすくなると思っています
実践あるのみです 手を動かしてやってみましょう！

# 参考
本記事で紹介した活用事例は、「訪日外客数データで Power BI レポート作成」シリーズの記事で作成したビジュアルがベースになっています
詳細な実装方法については、以下記事を参照下さい

https://qiita.com/mimocihz/items/e7a4742c099691caa33b

https://qiita.com/mimocihz/items/c157e1b5e51fb0b58b6d

https://qiita.com/mimocihz/items/93c1ae158385851b0186

https://qiita.com/mimocihz/items/06aab526b0ac4411bf3f