ヒストグラムの階級数の目安はスタージェスの公式で
データをヒストグラムでいい具合に表現したいが、分け方が雑だと何のこっちゃよく分からん。細かすぎると凸凹してやはりよく分からん。いい具合の分け方はないものだろうか。
そんなお悩みを解決するのが、スタージェスの公式というやつです。
スタージェスの公式とは
階級数を$${k}$$、データ数を$${n}$$とすると、これでおおよそいい感じの階級数を割り出すことができます。
$$
k=1+\log_2{n} (スタージェスの公式 底2バージョン)
$$
例えば、データ数$${n}$$が$${2^{8}=256}$$くらいなら、$${k=1+\log_2{2^8}=1+8=9}$$くらいの階級数がいい感じになるようです。
以下のデータは、1024の乱数(0~1)から4ずつ平均をとった256個の数値をヒストグラムにしてみたものです。
うーん、6分割は確かに雑ですが、31分割もそんなに悪くない気が…。
また、底を10にして常用対数で
$$
k=1+3.3\log_{10}{n} (スタージェスの公式 常用対数バージョン)
$$
とする流儀もありますが、これは要するに
$$
\log_2{n}=\dfrac{\log_{10}{n}}{\log_{10}{2}}\approx \dfrac{{\log_{10}{n}}}{0.301}\approx 3.3\log_{10}{n}
$$
としただけのことで、どちらも同じです。
(分からない人は、「対数の底の変換公式」で調べてみよう。)
ただ、数が1000とか10000とかの時は、例えば$${n=1000}$$なら$${k=1+3.3\log_{10}{1000}=1+3.3\times 3 \approx 11}$$と計算がし易いので常用対数バージョンがお勧めかも知れません。
スタージェスの公式の導出
この式の考え方は、
グラフに凸凹もなく、大雑把にもならないためには、ヒストグラムがいい具合に正規分布っぽくなれば良い。
正規分布っぽいのは、$${n}$$が大きいときの二項係数$${{}_n C_x}$$そのものだ。
それなら二項係数からデータ数を求めて、どの二項分布ならデータ数いくらが適正かを計算すればよい。
という発想です。
まず、$${n}$$個のデータを$${k}$$分割してみます。
その時、二項係数を積み上げた合計がデータ数に(大体)一致するようにします。
注意が必要なのは、$${k}$$分割したとき、階級値の数字は0からk-1までのk個になることです。積み上げる数も$${{}_{k-1} C_0}$$から$${{}_{k-1} C_{k-1}}$$までとなります。要するにずれる訳です。
下の図は、$${2^8=256}$$個ののデータを$${{{}_{8} C_0}=1}$$、$${{{}_{8} C_1}=8}$$、、、、と分けて積み上げたものです。
計算してみよう。
階級数が$${k}$$のときのデータ数$${n}$$は、
$$
\begin{align*}
n &= \sum_{x=0}^{k-1}{}_{k-1} C_x=(1+1)^n=2^{k-1} \\
n &= 2^{k-1}
\end{align*}
$$
両辺を底2で対数をとると
$$
\begin{align*}
\log_2{n} &=k-1 \\
k &=1+\log_2{n}
\end{align*}
$$
導出完了。