Fundamentals of Data Visualization 輪読会資料 第7回 (2023.11.20)

# 当記事の位置づけ
- この記事は、[「英語でデータ可視化を学ぼう：第7回 」](https://gaisaba.connpass.com/event/301607/)における発表資料です。
- 翻訳箇所は、「[7 Visualizing distributions: Histograms and density plots](https://clauswilke.com/dataviz/histograms-density-plots.html)」です。

# 概要
- データを可視化する際によく使うヒストグラムや密度プロットについての解説です。
- 今回の内容を翻訳する際に参考になりそうな内容が、[こちらのサイト：マンガと学ぶデータビジュアライゼーション](https://datareporting.kirikuroda.com/distribution)でも記載が有りました。

# 内容

## 7.0 まくら的な部分

- ある変数がデータセットの中で、どのように分布しているかを確認したいこと、ありますよね。
- 例えば、第6章でも出てきたタイタニック号に乗っていた乗客リストですよ！
- 1300人の乗客がいて、756人については年齢も分かっています。
- 何歳の人（幼児、子供、大人、高齢者）が何人乗っていたのか、という事を知りたいとします。
- 様々な年齢の人の全体に占める分布を年令分布と呼びます。

- 参考
    - タイタニックデータセットといえば、こちらの @makaishi さんの記事[「ダッシュボードでタイタニック・データセットを分析しよう」](https://qiita.com/makaishi2/items/9177a0d7c05a12494f75)も、データの可視化の参考として非常に面白いです。
    - 上記記事では、IBM のCognos Dashboard を使用しています。


## 7.1.Visualizing a single distribution（単一の分布を可視化）
- 年齢ごとにグループ化し、そこに乗客を振り分けると、年令の分布を把握できます。（以下図7.1）
![スクリーンショット 2023-11-17 15.57.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/0f207afe-dff8-0c5e-cc76-6ca25711b313.png)
---



- 年令グループ毎の、年令の幅を横幅、そのグループに入る人数を縦幅として、色塗りの帯（※）でそれを可視化する事をヒストグラムと言います。（以下図7.2）
    - ※：原文では瓶（bin）と記載していますが、日本語の場合、帯のほうが伝わりやすそうなので帯、と翻訳しています。
- 帯はすべて同じ幅でなければ正しく情報を伝えられるヒストグラムとは言えません。
![スクリーンショット 2023-11-17 15.58.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/750ea210-2631-a789-1e0e-cd30a90bd321.png)
---

- データは帯で表現されるので、その帯の幅（年令幅）によって正確さが変わってきます。
- 可視化ソフトでヒストグラムを作ると、その幅はデフォルトで決まっていることがありますが、それが伝えたい内容を必ずしも正しく反映しているわけでは有りません。
- そのため、毎回どんな幅が正しく内容を伝えられるかを試す必要があります。
- 幅を小さくしすぎると、尖ってうるさい感じのグラフになって、伝えたい全体の傾向がぼやける可能性があります。
- 逆に幅を大きくしすぎると、小さな特徴を消してしまうおそれがあります。
- タイタニックのデータで言えば、年令幅が１歳（左上）だと小さすぎ、１５歳（右下）だと大きすぎ、３歳（右上）から５歳（左下）の幅が適切であることがわかります。（以下図7.2）
![スクリーンショット 2023-11-17 16.22.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/dbad498f-5cda-bd6f-245b-1c1b98b05ebb.png)
- 図7.2
    - ヒストグラムは帯の幅に依存します。
    - 上記は同じ年齢層のグループを、4つの帯幅でそれぞれ表現しています。
        - 1年、3年、5年、15年です。
---


- __ヒストグラムを作成する際は、複数の幅を試してみましょう！__



## 7.2.Visualizing multiple distributions at the same time（同時に複数の分布を可視化）


- 多くの場合、同時に可視化したい複数の分布を持つことがあります。
    - 例えばタイタニックの乗客
        - 男性と女声の間で年令の差はあるのか。
    - 　一つのやり方が「積み上げヒストグラム」
        - 　女性の帯を男性の帯の上に乗せてみたのが以下の図7.6です。
---
![スクリーンショット 2023-11-20 9.48.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/7cada989-3259-2b5b-19d8-f974da49b693.png)
- 図7.6：
    - タイタニックの乗客を性別ごとに階層化した年令ヒストグラム。
    - この形式は「悪い」と認識されています。
        - 理由
            - 積み上げヒストグラムは前後で重なり合っているんじゃないかという誤解を与えるため。（図7.7参照）
            - 女性側のヒストグラムが開始位置が揃っていないので比較しづらい
---
- 作者の見解
    - この手の可視化は避けるべきです。
    - 2つの問題があります。
        - １．帯の開始位置が不明瞭。
            - 帯の色が変わる箇所が開始位置なのか？
            - ゼロの位置が開始位置なのか？
            - １８歳から２０歳の女性は２５人いるのか？８０人いるのか？
        - ２．女性の帯を直接比較できません。開始位置がそれぞれ違っているからです。
            - 例えば、男性の平均年令は女性の平均年令より高いが、それがこの図７．６では分かりづらいです。

- この問題をすべての帯をゼロ位置から開始して帯の色を半透明にすることで解決しようとします。（図７．７）
---
![スクリーンショット 2023-11-20 10.10.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/e534d384-1635-e635-cea8-a20b72b8c3be.png)
- 図７．７
    - タイタニック乗客の男女の年令分布。
    - ２つの重なり合った帯で表されています。
    - この図も「悪い」と認識されています。
        - 理由
            - 青の帯がゼロから始まると明示されていません。
---
- しかしながらこの図にも問題があります。
- 実際のところ、２つではなく３つのグループがあるように見えるし、それぞれの帯がどこからはじまってどこで終わるのかが明確ではありません。
- 重なり合ったヒストグラムがよくないのは、第１と第２がかさなりあった部分が「１と２が重なり合ってますよ」という事を表現するかわりに「第３の別勢力ですよ」という印象を与えるからです。

- 重なり合った密度プロットには、重なり合ったヒストグラムのような問題は無いのは、連続した密度線がそれぞれ（男と女）の分布がそれぞれ別である事をわかりやすくしているからだです。
- このデータでは、１７歳くらいまでの男女の分布はほぼ同じであり、そこから異なってきているので、まだ理想的とは言えません。（図７．８）
---
![スクリーンショット 2023-11-20 10.37.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/57a5fec6-0bb0-1d5c-0d39-9533f324f0a5.png)
- 図７．８
    - タイタニック乗客の男女の年令の密度推定。
    - 女性乗客よりも男性乗客のほうが多かったという事を強調する為に、曲線の下の面積が、年令が分かっている男女の数（それぞれ４６８人と２８８人）を表現するように密度線をスケーリングしました。
---
- このデータセットでうまくいく解決策は、男女の年令分布を分けるという事です。例えば全体からみてどの程度、というように。（図７．９）
- この可視化では２０代から５０代までの年齢層では男子絵が女性よりも数が多い事を直感的に明らかに表現できています。
---
![スクリーンショット 2023-11-20 10.47.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/cf29258d-2873-fe24-2999-477b1956affa.png)

- 図７．９
    - タイタニック乗客の年齢分布
    - 乗客総数に対する割合としての表示
    - 色付きの場所は男女乗客の年令の密度推定であり、灰色の場所は乗客の全体数。
---
- 最後に、２つの分布を性悪に表現するため、２つに別れたヒストグラムを作成しました。
- 図を９０度横に回転させて、片方のヒストグラムをもう一つとは逆側に配置しました。
- 年令の分布を表現するときによく使われる手法で、年令ピラミッドと呼ばれます。（図７．１０）
---
![スクリーンショット 2023-11-20 10.54.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/7636bb8b-4a71-e89e-b020-ea26beff4ff2.png)
- 図７．１０
    - ピラミッドとして表現されたタイタニック乗客の男女の年令分布
---
ものすごく蛇足を書きますが、上記の図７．１０ってすごくガンダムに出てくる[アクシズ](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%AF%E3%82%B7%E3%82%BA)という小惑星っぽい形をしているように見える。というかそれにしか見えない。
![スクリーンショット 2023-11-20 11.01.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/e689778b-83a4-62d5-c0e6-eb26610c20d1.png)
（　https://dorasuta.jp/battlespirits/product?pid=429918 より　）


---

- 重要な事だが、この手法は同時に表現したい要素が２つを超過する場合には使えません。
- 複数の分布を表すにはヒストグラムは混乱しがちである一方、密度プロットは分布が明確で連続的である場合には有効です。
- 例えば、４つの異なる牛の品種の乳脂肪分の割合を表現するには、密度プロットは有効です。（図７．１１）
---
![スクリーンショット 2023-11-20 11.08.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/e8c2d4f3-d430-832a-135c-d25da343d30d.png)
- 図７．１１
    - ４つの異なる牛の品種の乳脂肪分の割合についての密度推定。
    - 出典：カナダの純血種乳牛の成績記録
    - (久保の感想：確かにジャージー乳牛のミルクをつかったアイスとかよく売れてるよな。。。)
---

- __複数の分布を一度に視覚化するには、通常、ヒストグラムよりもカーネル密度プロットの方が適しています。__