Fundamentals of Data Visualization読書会第10回まとめ

# 本記事の位置付け

下記読書会のためのまとめです。

https://gaisaba.connpass.com/event/305612/

# 課題図書
https://clauswilke.com/dataviz/

この記事に出てくる図は、すべて上記ページから引用したものです。

# 今回の範囲
8 Visualizing distributions: Empirical cumulative distribution functions and q-q plots

ヒストグラムや密度プロット（7章にて扱った）は直感的で視覚的に訴えやすい一方で、作成する際にどんなパラメータを設定するかによって出来上がったグラフの印象がかなり変わってしまうという欠点があります。例えばヒストグラムにてひとつの帯の幅をどの程度にするか、密度プロットにてbandwidthをどうするか、など。
このことはこのふたつの種類の可視化の場合、データが直接示されているというよりも、なんらかのデータの解釈（an interpretation of the data）に近いとも言えます。
その対策として、直接ECDFとQQプロットを紹介します。とても良いところは設定しないといけないパラメータがないことです（作成のときに悩まなくてヨイ）。一度にすべてのデータを示せるという利点もあります。
ただすこしばかり直感的ではないかもしれません。
これらふたつは専門的な文献以外ではあまり見ませんが統計を専門にする人の間ではとても一般的なものです。

:::note info
Empirical Cumulative Distribution Function
(ECDF、経験に基づく累積分布関数)
と
Quantile–quantile plots（QQプロット）
の話・・・
:::





## 8.1 ECDF (Empirical cumulative distribution functions)

ECDFの活用例を、学生の成績（グレード）のつけかたを基に考えてみます。学生50人が0-100点で採点されるテストを受けたという状況で、グレードの境界線をどこに引くべきかといったことを検討するのに役立つ可視化の仕方を見ていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/665ee7c3-475c-8d44-acbb-a8a3031aedb8.png)

この図では、順位を利用してプロットしています。縦軸が学生の順位（この場合は点数の低いほうがランク1）、横軸がテストの点になっています。45点あたりが最も低い点でランク1としてプロット、次に50点超えたあたりにランク2としてプロット、という形です。このようにして得る図を、ECDF、経験に基づく累積分布関数、または単に、累積分布（cumulative distribution）と言います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/6d988136-e390-f6b1-f6f0-003ecc1fba14.png)

やっていることは同じながらランクを昇順から降順に変更したものがこちら。

:::note info
Rank1が最高点が、一般的な気がするものの
ECDF的には前者のほうが一般的とのこと。
（降順パターンは次の節に関連）
:::

実際に使うときは以下の処置をすることが多いです。
・各点のドットを書かない
・Rankをその最大値で正規化
　（今回でいえば50で割るので、Rank1が 0.02 になる）

結果こんな形になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/05d3b658-6ad6-c1c2-8163-0a3898e533ca.png)


:::note info
正規化したあとのY軸は
累積度数　cumulative frequency　と呼ばれるそうな
:::

この図は、どこでグレードの境界線を引けばいいか考える際に便利です。
中央値をみたいのであれば 累積度数0.5 のところを見ればよく、0.8 が90点あたりにあることからおおよそ学生の20% は90点以上なようだといったことを読み取ることができます。

:::note info
この図の情報をみながら、
80点以上をB（79点以下をC）にしようかといった検討をしたり
:::

:::note warn
昇順でも降順でも、最低点プロットのまえ（左側）には線を引かないも、アリかと思ったり
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/3db2c8b9-fa49-47ed-1f20-9d81ee86a3e9.png)　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/815ac97a-dc30-3e9b-ffc5-315209229193.png)　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/8d2e72a7-5f03-3201-ffdd-00e8f892e84c.png)

:::

## 8.2 大きく歪んだ分布（Highly skewed distributions）

多くの経験則に基づくデータセット（empirical datasets）は大きく歪んだ分布（特に右側に尾のあるような形）となり、こういった分布の可視化はなかなか難しいものがあります。
右にとても長いテール（tail、尾）を持つ形だったり、値の幅が極端に大きかったりします。

:::note warn
All these distributions have in common that **their right tail decays slower than an exponential function**.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/15468277-8b09-801e-b73e-276fb9a64b6c.png) 指数関数（図のような）よりも減衰が遅い？
:::

べき乗分布（power-law distributions）という重要なクラスがあります。アメリカの純資産を例にすると、例えば100万ドルの資産を基準としたときに、50万ドルの資産をもつひとは4倍の人数、200万ドルの資産をもつひとは1/4の人数と推測されるような分布のしかた（指数2 べき乗則に従うという例）。この関係は1万ドルを基準としても、1億ドルを基準としても、同様の関係をもつことから、power-law distributions　は　scale-free distributions とも呼ばれます。


:::note info
冪乗則（power-law）　Wiki
https://ja.wikipedia.org/wiki/%E5%86%AA%E4%B9%97%E5%89%87
:::

アメリカの異なる郡に住む人口を例に見ていきます。右向きのとても長いテールを持つ、このことは、ほとんどの郡は比較的少ない住人で、いくつかの郡が突出して高い値を持つという分布を持つということにつながります（この例では中央値約2.5万人に対し、ロサンゼルスは約980万人）。
うえがデンシティプロットを用いた可視化、したがECDFを用いた可視化、どちらにしろあまりわかりやすくはありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/b2859924-2948-b4b6-714f-cf845e906c65.png)



:::note info
50万人以下の郡で大多数を占めてる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/8bd05652-12c3-f28d-e43a-c61ea3e0c2fc.png)
:::

この例は、べき乗分布ではなく、ほぼ完全な対数正規分布（log-normal distribution）にとなっています。

:::note info
対数正規分布（log-normal distribution）　Wiki
https://ja.wikipedia.org/wiki/%E5%AF%BE%E6%95%B0%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83
:::

ここで横軸にログスケールを適用します。すると先ほどは見づらかった、デンシティプロットとECDFがそれぞれ、良い感じの正規分布（a nice bell curve）、良い感じのS字カーブ（a nice sigmoid shape）となりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/de48d539-227e-30bc-5189-56175972c548.png)

:::note info
シグモイド（sigmoid） Wiki
https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B0%E3%83%A2%E3%82%A4%E3%83%89
:::

もし、べき乗分布である者に対し。X軸Y軸両方をログスケール（log-log）とると、直線となります。この性質でべき乗分布に従うかを見ることができます。実際に上述の例の、降順のECDFについてX軸Y軸両方をログスケールにしたものをみると、直線にはちかい部分もあるものの完全には直線にはなっていません（べき乗分布ではないため）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/e2a6736b-ad5a-d2f7-a236-6d5730b1d777.png)

小説Mody Dick（白鯨）における文字の登場頻度のデータについて同様の可視化をしてみます（下図）。このデータは完全なべき乗分布に従っているもので、それを示すように、かなり完全な直線に近い状態になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/371a5d5f-29a7-0300-3418-4d4aee13a53e.png)

:::note info
log-log ECDFにしたときに、直線かどうかで、べき乗分布に従うかみれるというのは便利そう
:::

## 8.3 QQプロット（Quantile–quantile plots）

与えられた分布に従っているかいないか、またその程度を確認したいときにQQプロットは有用である。データの順位付けと順位と値の関係の可視化といったところは、ECDFと似ている。しかし、QQプロットでは順位を直接プロットすることはせず、与えられたデータがどこに位置するかを予測するために使います。実際には、正規分布に従っているかを見るために、QQプロットはよく使われます。
平均10、標準偏差3のデータで考えてみると、ここで、正規分布を想定すると50th percentile（0.5で順位が真ん中＝中央値？）は「10」に位置すると予想されます。
このようにしてすべての点に対し予測をし、そして予測値と比較できる形で実測値をプロットしていきグラフを作ります。

:::note warn
a data point at the 84th percentile to lie at **position 13** (one standard deviation above from the mean), and a data point at the 2.3rd percentile to lie at **position 4** (two standard deviations below the mean).
84th percentile（0.84）は13に位置すると予想される（中央値から1標準偏差）
2.3rd percentile（0.023）は4に位置すると予想される（中央値から2標準偏差）

68–95–99.7則　wiki
https://ja.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7%E5%89%87
:::

冒頭の学生の成績データを例に見てみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/75fadfc3-7ac5-c0dc-887a-38fbe9cfb05f.png)

灰色のラインは（回帰直線ではなく）実測値と予測された値（理論値）が同じだったときの位置を示しています。どの程度このラインに乗っているかをみることで、想定した分布に従っているかを検討することができます（この例では正規分布が想定する分布）。この例ではおおむね正規分布に従っています（下位と上位の端を除いて）。

:::note warn
一番左のプロットで見ると、実測値45点で、理論値は55点、
二つ目のプロットで見ると、実測値50点ちょいで理論値は60点手前
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/e61cc8c8-85f8-13f4-6fef-22e5d8ae154b.png) ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/65a19004-9a6f-af7a-6d35-63189d64d8c8.png)
:::

:::note warn
The deviations from the distribution at the top end are caused by the maximum point value of 100 in the hypothetical exam
たしかによく見ると、実測値100のプロットは理論値の100を超えたところにあるような
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/5e1d7ce3-98b2-b92d-5dda-a78dc9ec42fe.png)

:::

続いて、上述の人口のデータについても見てみます（想定する分布は今度は、対数正規分布）。プロットしてみると、想定分布を表すラインに、合っているようです。このデータが想定する分布（対数正規分布）にまさになっていることをこの図は示しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/602459d9-2d0e-862e-193b-0b6eb46a4289.png)

（まとめ終わり）