Edited at

データサイエンスの可視化 #2 Unit 1: データ分布への導入(R)- [MOOC/edX]

edXの「Data Science: Visualization(データサイエンスの可視化)」をまとめています。

前回の記事←→次回の記事


Unit 1 - 2. データ分布への導入


  • データ要素を要約する最も簡単な方法は、分布。


  • カテゴリカルデータ度数を求めるのは意味があるが、数値データで度数を求めても意味がない(170.154856cmの学生が1人、175.872343cmの学生が2人、...なんて意味ない)。

  • 数値データでは、累積分布確率(CDF: cumulative distribution function)がよく使われる。80%の学生が150cm以上だよ、的な

    IMG_0007.PNG


  • プロットは実際はあんまり使われてない。どんな値が分布を代表するのか、分布は対称なのか、どんな値の範囲が95%を占めるのかをパッと理解しにくいから。


  • ヒストグラムの方が好まれる。データの丸めが理に適ってるってのが大きい。


  • Smooth Density Plot1(下図水色の)はヒストグラム(下図灰色の)と似てるが、もっと美しいやつ。

    IMG_0008.PNG

    Picture1.png



Q-Q Plot(Quantile-quantile plots)


- Quantile(分位数)

「ある値$q$より小さいデータは全体のうちどれくらいか」の比率を$p$としたときの、$q$のこと。

ex.) 身長データ$x$のうち、50%が172.1cmより身長低い → $p$=0.5のとき、$p$によって定義される$q$=172.1。

# 分位数を求める関数quantile()

> q <- quantile(x, p)

分位数$q$の分布は正規分布になっていることが期待される。というのも、データ$x$自体が正規分布に従っていると想定するから。

→ でもほんとにそうなの?

→ プロットしてみよう! → これがQ-Qプロット

# 正規分布に従うかを調べる

> observed_quantile <- quantile(z, p) # 実測データから分位数を求める
> theoretical_quantile <- qnorm(p) # 正規分布に従う値を返す関数qnorm(確率)
> plot(observed_quantile, theoretical_quantile)
> abline(0, 1)

IMG_0017.PNG

横軸が正規分布から推定した推定値の分位数、縦軸が実測値の分位数。推定値と実測値がほぼ一致しているので、$x$は正規分布に従っていると言うことができる2

→ヒストグラムや密度プロット、Q-Qプロットを使うときに、$x$は正規分布に従っているという前提を使うことができる。


- パーセンタイル(Percentile)

$p=$0.01とか, 0.02とか, ..., 0.99までで$p$を定義したときの分位数$q$の特別な呼び方。言い換えると、データ分布を$q$:(1-$q$)に分ける値。

ex.)

$p=$0.25のとき 1/4百分位数(25th percentile)と呼ぶ。小さい方から数えて25%にあたる値。

$p$=0.50のときの$q$は中央値。

$p$=0.25, 0.50, 0.75のときの$q$は四分位数(quartiles)3としてよく使われる4


箱ひげ図(Boxplots)

次は、こんな感じで普通の分布じゃないときを考える。

IMG_0021.PNG

この場合、箱ひげ図が効果的だそう。四分位数(1/4四分位数、1/2四分位数、3/4四分位数)に沿った範囲で分布を表現する。データそれぞれの点のプロットをやめ、外れ値を無視する。 byJohn Turkey。

IMG_0022.PNG

パッと見て、下の例みたいなことがすぐ分かるのがいいところ。


  • 分布が非対称(中央値が箱の真ん中より上にずれてるから

  • 2つの大きな外れ値を除いて、0〜5の範囲に分布していることがわかる。

また、2つ以上の分布を簡単に比べたいときに便利。下の例も分布の特徴がわかりやすい。

IMG_0023.PNG


  • 女性より男性の方が身長が高い分布になってる

  • SDが同じくらい


実践:宇宙人に地球人の女性の身長を伝える

以上を踏まえて、データの特徴を相手に伝える = 分布を説明する実践を考えてみます。下の例は、女性の身長に関する密度プロットとQQPlotです。

IMG_0024.PNG

いい感じに正規分布に従っていれば、「正規分布に従っている!平均とSD(標準偏差)はこう!」で事が足ります。この例も概ね正規分布に従っていそうですが、よく見ると黄色い丸部分が謎です。

講師のRafael先生は、「この調査はWebフォームを使用して回答させたが、性別選択欄のデフォルトが女性になっていた。もしかしたら、自分の身長を入力した後に、性別選択欄を見ずに送信した男性がいたのかもしれない」と考察していました。なるほど〜。

統計学の父John Tukeyの言葉"The greatest value of a picture is when it forces us to notice what we never expected to see."の通り、可視化することでデータの分布について新たな情報を手に入れることができました!なるほど〜。


Unit1 まとめ


  • 探索的データ解析のために、データ可視化は必要

  • データを相手に伝えるために、分布を記述することが必要


    • ヒストグラム、密度プロット、QQプロット、箱ひげ図




今後の予定

随時リンク追加予定


  • Unit 1: データ可視化とデータ分布の導入(R)



  • Unit 2: ggplot2の導入とプロットの作り方

  • Unit 3: dplyrを使ったデータの要約

  • Unit 4: Gapminderというデータセットを使ったggplot2とdplyrの例

  • Unit 5: データ可視化についての一般理論

(いつか)まとめる予定の講座の記事一覧





  1. 「密度プロット」?和訳不明 



  2. 随分ざっくりな気がするが、visualizationの講座なので数学はあまり掘り下げたくない...。 



  3. 紛らわしいが、分位数はquantile、四分位数はquartile。四分位数:データを小さい順に並べて、小さい方から数えて1/4(28個のデータだったら7番目)、2/4(14番目(=中央値))、3/4(21番目)、4/4(28番目、最大値)の4つの分位それぞれの値を抽出することで、データ分布を理解するヒントとします。 



  4. こんがらがってきたのでまとめると、分位数(quantile)の中で特別に百分率で分けてるやつがパーセンタイル(percentile)で、そのパーセンタイルの中でも特別に4つに分けてるやつが四分位数(quantile)。