【要約】ヒストグラムとKDEのビン幅/バンド幅を変えたら、双峰のデータが単峰に消えた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
データ分析者が可視化を行う際、パラメータ設定一つでデータの真の姿を見失うリスクがある。適切な粒度を選択できないと、重要な構造を見落としたり、逆にノイズを構造と誤認したりする。具体的には以下の問題が発生する。
- ・ヒストグラムのビン幅が広すぎると、本来存在する「谷」が埋まり、双峰性が単峰として誤認される。
- ・ビン幅が狭すぎると、サンプル数の少なさに起因する偶然の偏りが、偽のピーク(山)として現れる。
- ・KDEのバンド幅が不適切だと、滑らかな曲線がデータの真の密度を反映しなくなる。
// Approach
筆者は、見かけ上の形状が変化する境界線上の分布を用いて、パラメータの影響を検証した。混合正規分布を組み合わせ、谷と山の比率が0.220となる「見え方が分かれる」極めてシビアな条件を設定している。
- ・平均-2.0と2.2、標準偏差1.0の正規分布を重み0.5ずつで混合したモデルを作成。
- ・この分布から220点のサンプルを抽出し、可視化の実験台とした。
- ・ヒストグラムに対し、幅2.4、0.8、0.15の3パターンのビン幅を適用。
- ・KDEに対し、scipyのfactor(スケール因子)を0.08、0.15、0.8と変化させて検証。
// Result
検証の結果、自動選択則は双峰性を維持しつつも、谷の深さを過度に平滑化することが判明した。デフォルト設定に頼ることで、データの重要な特徴が「ぼやけて」しまうリスクが定量的に示されている。
- ・ヒストグラムでは、幅0.8で真の形状に近付くが、幅2.4では単峰化する。
- ・KDEのfactor=0.15では谷/山比0.29と真値に近いが、自動則では大きく乖離する。
- ・Scott則(factor=0.340)の谷/山比は0.52、Silverman則(factor=0.360)は0.56となり、真値(0.220)の約2倍以上も谷が浅くなった。
Senior Engineer Insight
> 可視化の自動化は便利だが、境界条件における「中途半端な平滑化」は致命的な誤認を招く。特に、異常検知や分布の分離が重要なシステムにおいて、デフォルトのScott則等を鵜呑みにするのは危険だ。実務では、単一のグラフで結論を出さず、パラメータを意図的に振って「構造の頑健性」を確認するプロセスを標準化すべきである。可視化は「真実を映す鏡」ではなく、設定次第で「物語を書き換える道具」であることを自覚せよ。