Tunny Icon
TunnyDocs

The next-gen Grasshopper optimization tool.

ヒストグラム

概要

ヒストグラムは、1 つの変数の値域を連続したビン(区間)に分割し、各ビンに含まれる観測数を数えることで単変量の分布を要約する手法です。 平均のような単一の要約統計量では見えない「分布の形」、すなわち歪み(skewness)、多峰性(複数の山があること)、外れ値の有無を、最も直接的に把握できます。


ビン数の決め方

ビンの数(あるいは幅)は分布の見え方に強く影響するため、妥当なデフォルト値を自動的に選ぶための経験則がいくつか存在します。

Sturges の公式は、標本サイズのみからビン数 kk を決めます:

k=log2n+1k = \lceil \log_2 n \rceil + 1

これはデータがおおむね正規分布に従うという前提で導かれています。 kknn の対数でしか増えないため、 nn が大きくなるとビンが少なすぎて(幅が広すぎて)分布の細部を潰してしまう傾向があります。

Scott の公式は、正規性を仮定した積分平均二乗誤差の最小化から、ビン幅 hh をデータのばらつきそのものより導きます:

h=3.49σn1/3h = 3.49 , \sigma , n^{-1/3}

ここで σ\sigma は標本標準偏差であり、 n1n-1 で補正した不偏推定量を用います。 σ\sigma を使うため外れ値の影響を受けやすく、外れ値があると σ\sigma が膨らんでビン幅が過大になります。

Freedman–Diaconis の公式は、 σ\sigma の代わりに四分位範囲(IQR、箱ひげ図参照)を用います:

h=2IQRn1/3h = 2 \cdot \mathrm{IQR} \cdot n^{-1/3}

IQR は極端な値の影響を受けにくい頑健なばらつきの指標です。 そのためデータに外れ値がある場合や正規分布から大きく外れている場合でも安定して機能し、Scott の公式より汎用的な既定値として安全に使えます。

計算されたビン幅 hh が非正または非有限になる場合は、Tunny Dashboard は不正なビン数を生成する代わりに Sturges の公式へフォールバックします。 これは、同一値が多く Freedman–Diaconis の IQR が 00 に潰れる場合や、データがほぼ定数で Scott の σ=0\sigma = 0 になる場合に起こります。


特性・限界

  • ヒストグラムの見た目(山の数、歪みの向き)は、選んだビン数やビン幅によって大きく変わり得ます。あるビン設定では本物の山に見える特徴が、別の設定では消えることもあります。ヒストグラムはデータそのものではなく、データに対する 1 つの「見方」に過ぎないことを、常に意識する必要があります。
  • ヒストグラムは、真の分布を離散的なビンで区切って推定した不連続な近似です。カーネル密度推定(KDE)はこれを滑らかな連続曲線に置き換えますが、ビン境界に依存する問題をバンド幅の選択に依存する問題へ置き換えているに過ぎず、どちらが「より正しい」とは一概には言えません。ただし棒グラフに滑らかな KDE を重ねて表示すると、読み取りやすくなることが多いです。
  • どの公式を使っても、得られるビン数は常に [1,200][1, 200] にクランプされます。病的な入力や非常に大きなサンプルでも、無制限あるいは実用に耐えないほど細かいビンにならないようにするためです。
  • ビンは、最後のビンを除いて半開区間 [境界i,境界i+1)[\text{境界}i, \text{境界}{i+1}) となり、最後のビンのみ両端を含む閉区間 [境界k1,境界k][\text{境界}_{k-1}, \text{境界}_k] となります。これは numpy.histogram と同じ規約であり、データの最大値が捨てられずに必ず最後のビンへカウントされることを保証します。

アプリ内での利用箇所

  • Histogram ウィジェット:選択したパラメータや目的関数の値の分布を表示し、歪みや多峰性の把握、最適化の探索がどの領域に集中しているかの確認に用います。Fit セレクタでは、最尤推定によるパラメトリック密度を重ね描きできます(分布フィッティングを参照)。

参考文献