PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

ヒストグラムの「最適な箱の数」を数学で決める方法

記事のキーポイント

ヒストグラム、実はかなり奥が深い

ヒストグラムって、だいたい「とりあえず作るグラフ」という印象が強いと思うんです。
でもこの記事は、その“とりあえず”を真正面からひっくり返します。

テーマはズバリ、​​「ヒストグラムのbin(箱)をどう決めるのが数学的に筋がいいのか」​
binが少ないとザックリしすぎるし、多すぎるとギザギザでうるさい。ここまでは誰でも体感でわかります。
問題は、その中間の「ちょうどいい」をどう決めるかです。

image_0001.jpg

著者のFetze Pijlmanは、これを単なる見た目の問題ではなく、​density fitting(密度推定)​の問題として扱います。
つまり、ヒストグラムは“棒グラフ”というより、​データの背後にある分布をどう近似するかという数学の話になるわけです。ここがまず面白い。

まずは直感:データが増えたら、細かく見たくなる

記事の導入はかなりわかりやすいです。

image_0002.svg

これ、実務でも本当にそうなんですよね。
少量データに細かすぎるヒストグラムを当てると、ただのノイズの絵になりがちです。逆に大量データを大雑把にまとめると、せっかくの構造が消えます。
なので「データ量に応じて分解能を上げる」という発想は、かなり自然です。

ただし、ここで困るのが「じゃあ、どのくらい細かくするの?」という問題。
この記事はこの問いに、​Bayesian statistics(ベイズ統計)​で答えようとします。

ヒストグラムを「モデル」として扱う

image_0004.png

ここがこの記事の肝です。

普通はヒストグラムを「可視化の道具」と見ます。
でも著者は、ヒストグラムそのものを確率モデルとして扱います。

各binに重み ( w_k ) を持たせて、「その区間にデータが入る確率」と考える。
そして全部の確率の合計は1になる必要があるので、binの重みには制約があります。

このとき自然に出てくるのが Dirichlet distribution です。
Dirichlet distribution は、​​「合計が1になる複数の割合」を表すのに向いた分布です。
たとえば、「3つの選択肢への割り振り割合」を考えるときみたいな場面にぴったりです。

image_0005.png

個人的には、ここはかなり美しいと思いました。
ヒストグラムを「ただの棒」ではなく、​確率の部品の集合として見ると、急に数学的な骨格が見えてきます。

prior と posterior の話を、できるだけやさしく言うと

ベイズ統計では、データを見る前の仮定を prior(事前分布)​
データを見た後の更新結果を posterior(事後分布)​ と呼びます。

image_0006.png

ざっくり言うと、

ということです。

記事では、ヒストグラムのbinの重みに対して prior を置き、そこから posterior を計算します。
著者の主張は、これなら過剰適合(overfitting)をかなり抑えられるということです。

image_0007.png

overfitting とは、データに合わせすぎてしまって、逆に本質を見失う状態のこと。
binを増やしすぎるヒストグラムは、まさにこの罠に落ちやすいです。

重要なのは「最良の1つ」ではなく「重みづけ」

この記事でかなり印象的なのが、​winner takes all にしないという考え方です。
つまり、「一番良さそうなbin数を1個選んで終わり」にしない。

image_0008.png

著者は、1, 2, 4, 8, 16, 32, ... といった複数のbin数で密度を作り、それぞれの model の evidence を比較します。
evidence はざっくり言えば、​そのモデルがデータをどれだけうまく説明できるかを表す指標です。

ここで面白いのは、

という、いつものトレードオフをきちんと扱っている点です。

image_0009.png

さらに著者は、「最良のモデルを1つ選ぶ」よりも、​複数モデルを確率で重みづけして足し合わせる方が安全だと言います。
これ、すごくベイズ的で、私はかなり好きです。

なぜなら現実では、「このbin数が絶対正解!」なんて、そんなに簡単には言えないからです。
データが少し変わるだけで最適解が揺れることもあるし、たまたまのノイズで見え方も変わります。
だったら、1点賭けよりも、可能性の幅を持たせたほうが誠実だと思うんですよね。

等幅binだけじゃない。不均一なbinも使う

image_0010.png

記事では、等幅のbinだけでなく、​unequal bins(幅がそろっていないbin)​にも触れています。
これはかなり実践的です。

等幅binはわかりやすい反面、どうしても「ブロックっぽさ」が出ます。
データが局所的に密な場所と疎な場所があるのに、全部同じ幅で切るのは少し不器用です。

そこで、ランダムな分割を使ったり、prior を調整したりして、より柔軟な密度を作る。
この発想は、「ヒストグラム=単純な棒グラフ」という固定観念をかなり崩してくれます。

さらに uncertainty まで出すのがすごい

image_0011.png

記事の終盤では、密度のerror bars(誤差棒)​、つまり不確実性の可視化まで扱います。
これがまたいい。

多くの可視化は、点や線を“断定”して見せがちです。
でも実際には、データにはばらつきがあるし、推定結果にも揺らぎがあります。
そこをちゃんと「このくらいの不確かさがある」と見せるのは、かなり誠実です。

この記事では、その標準偏差の式も示されていて、単なるアイデア紹介に留まっていません。
数式ベースで、推定の揺らぎまで扱う。
このあたりは「見栄えのいいヒストグラム」ではなく「信頼できる推定方法」を作ろうとしている感じがして、個人的にはかなり好感が持てました。

image_0013.jpg

この文章の読みどころは「ヒストグラムを再定義している」こと

この記事の本質は、binの決め方テクニックではないと思います。
むしろ、

ヒストグラムは単なる可視化ではなく、確率分布を推定するためのモデルである

と捉え直している点が核心です。

image_0014.png

この視点に立つと、bin数の問題は「見た目の調整」ではなく「モデル設計」の問題になります。
すると、Bayesian inference、Dirichlet prior、model weighting みたいな道具立てが一気に意味を持ってきます。

もちろん、実務で毎回ここまで厳密にやる必要はないと思います。
でも、「なぜそのbin数にしたのか」を説明したい場面では、こういう考え方はかなり強いです。
特に、ヒストグラムを下流の分析に使う場合は、かなり重要ではないでしょうか。

まとめ

image_0015.png

この記事は、ヒストグラムのbin数を「なんとなく決める」世界から引き上げて、
Bayesian approach による密度推定の問題として扱い直しています。

ポイントを一言でいうなら、

という流れです。

image_0016.png

正直、ヒストグラムって地味な題材に見えるんですが、この記事を読むと全然地味じゃないです。
むしろ、「あの棒グラフの裏には、こんなにちゃんとした数学が潜んでいるのか」と少しワクワクします。
こういう、日常的すぎて見過ごしがちな道具を深掘りする記事、私はとても好きです。


参考: How to Mathematically Choose the Optimal Bins for Your Histogram | Towards Data Science

同じ著者の記事