ヒストグラム、奥が深いよ?

§1. ヒストグラムは意外と奥深い?

ヒストグラムは、データの傾向をとらえたいとき一番最初に書かれるグラフです。統計学や品質管理で知らない人はいないくらい。SASやSPSS、RやPythonで描いたことある方もいるでしょう。

でも、ヒストグラムを描くとき「ビンの幅」って気にしたことはありますか?ビンの幅ってココのこと。(ちなみに、このヒストグラムは僕の過去一か月の飲み代の履歴です。)

このヒストグラムなら「ビンの幅」は400です。実は、このビンの幅はとっても大事。これを適切に設計しないと、データの傾向をつかみづらいヒストグラムが出来てしまうんです。ものは試し、ビン幅を変えて描いた3つのヒストグラムを比較してみましょう。

左からビン幅200, 400, 600のヒストグラムです。ビンの幅が200だと、ちょっと細かすぎて段々になっています。ビン幅が400のヒストグラムと600のヒストグラムとでは、分布の形が違う印象さえ受けます……。

ビンの幅、とても重要なことが分かりましたね!ヒストグラムのビンの幅を適切に決めることが、データの傾向をつかむキーポイントなのです。でも、何をもって「適切に決めた」と言えるのでしょうか。また、様々な統計ソフトはどのようにビンの幅を決めているのでしょうか。

§2. その答えは?

統計学の基本のキに立ち戻ってみましょう。そもそも「データの傾向」とは何たるか。それは、そのデータの1つ1つの値の得られやすさです。先ほどの例で言えば「僕の飲み代の使いやすさ」と言い換えられます。

統計学では、そのデータ1つ1つの得られやすさは予め決まっていると考えます。(統計学で最も重要な考え方と言ってもよいでしょう。)
・僕が1000円から1200円ほど飲み代に使ってしまう確率は20%
・僕が1500円から1800円ほど飲み代に使ってしまう確率は50%
という具合に。この予め決まっている飲み代の使いやすさに従って、僕は飲み代を使ってくると考えるのです。これを統計学では「母集団分布」と呼ぶのでした。要は

「データの傾向をつかむ」=「母集団分布を知る」

だったのです。

言い換えれば、ヒストグラムは母集団分布を知るために描くグラフなのです。母集団分布とよく似ているヒストグラムほど素晴らしい。そうなるようにビンの幅を決めれば、ビンの幅を「適切に決めた」と言えるのです。

結論 ビンの幅を「適切に決める」とは、ヒストグラムが母集団分布とよく似ているようなグラフになるようにビンの幅を決めることである!

ただ、ここで一つ疑問が生じます……。母集団分布が予め決まっているとするのは良いとして、その具体的な形を僕らは知らないはずです。むしろ、母集団分布を知るためにヒストグラムを描くのですから。では、どうやって形のわからない母集団分布とヒストグラムと似ているなんて判断できるのでしょうか?

これは話せば長くなるので、後日改めてご説明しましょう。では、適切なビンの幅を設計する公式をご紹介します!!!

§3. Scottの公式

1979年12月、統計学者David W. Scottは論文誌Biometrikaにて、ヒストグラムのビンの幅の設計に関する興味深い議論を展開しました。その結論がこちらです。

定理(Scottの公式)もしデータが正規分布に従って得られるのであれば、ビンの幅は3.49×sd/(nの3乗根)あたりで設計するのがよい。

ここでsdはデータの標準偏差, nはデータのサイズ(サンプルサイズ)です。なんとnの3乗根が出てくるあたり、とても驚きですね。

例えば、27個のデータの標準偏差が2だった場合、ビンの幅はScottの公式によれば

3.49×2/3 ≒ 2.33

と設計するのがよい。特にこのデータが0から10の間に分布しているなら、ビンの幅を2にして5つの階級0-2, 2-4, 4-6, 6-8, 8-10を設計するのが良いわけです。

Rを使えば、Scottの公式によるヒストグラムをすぐに描くことが出来ます。

x <- c(1210, 1800, 2000, 1120, 1490, 1820, 1550) # 飲み代
hist(x, breaks = "scott") # データxのヒストグラムを描く

ヒストグラムを描くhist関数の引数breaksに"scott"を指定するだけです。とてもお手軽ですね!

ちなみに多くの統計ソフトでは、Scottの公式よりひと昔前につくられたSturgesの公式や平方根選択という方法を用いてビンの幅を決めています。一方で、Scottの研究以降もヒストグラムのビンの幅は様々な議論が行われてきました。

この周辺の話からは数式を使うのが便利なので、note.muで数式が書けるようになったときに是非お話ししましょう。それでは今回はこれにて!

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

サポートをいただいた場合、新たに記事を書く際に勉強する書籍や筆記用具などを買うお金に使おうと思いますm(_ _)m

ありがとうございます!励みになります!
24

Takayuki Uchiba

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。