密度プロット(Density Plot)は、データの分布を連続的に滑らかに可視化するためのチャートです。ヒストグラムのように離散的な区間ごとの棒ではなく、確率密度関数を推定して滑らかな曲線として描くことで、データの傾向や分布形状をより直感的に理解できます。主に連続変数の分布比較や、複数群の分布の重なりを可視化する際に用いられます。
歴史的経緯
密度プロットの基礎は、統計学における カーネル密度推定(Kernel Density Estimation, KDE) にあります。
KDEは、1950年代にEmanuel ParzenとMurray Rosenblattがそれぞれ独立に提案した手法で、確率密度関数を滑らかに推定するためのノンパラメトリックな方法です。
その後、統計ソフトウェアRやPython(Seaborn, Matplotlib, ggplot2など)に実装され、データ分析や機械学習分野で広く使われるようになりました。
データ構造
密度プロットでは、基本的に1次元の連続変数データを入力とします。
データは数値ベクトル(例:x = [2.3, 3.1, 3.5, 4.0, 5.1, ...])として扱われ、各データ点の近傍に「カーネル」と呼ばれる関数(通常はガウス関数)を重ね合わせ、全体の密度関数を推定します。
横軸は変数の値、縦軸は推定された確率密度(area under the curve = 1)を表します。
目的
密度プロットは、統計学やデータサイエンスの分野で広く用いられています。特に以下のような目的に有効です。
- 分布の形状を比較する:例えば、ある商品の購入金額分布を男女別で比較する。
- 異常値や多峰性を発見する:ピークが複数ある場合は、異なる集団が混在している可能性を示す。
- サンプルサイズの違いを吸収して比較する:正規化されているため、標本数が異なるグループでも比較可能。
密度プロットはしばしば 箱ひげ図やバイオリンプロット と併用されます。特にバイオリンプロットは密度プロットを左右対称にした形で、分布の全体像をより直感的に示す手法です。
密度プロットの目的は、分布の形状・集中度・広がり・モード(山の数)を滑らかに把握することです。
特にヒストグラムではビン幅(区間の幅)の選び方により印象が変わりやすいため、密度プロットを併用することで、分布傾向をより安定して比較できます。
ユースケース
| ユースケース | 説明 |
|---|---|
| グループ間の分布比較 | 男女別・地域別など、複数カテゴリ間での分布の違いを比較 |
| 正規性の確認 | データが正規分布に近いかどうかを確認 |
| アウトライヤー検出の補助 | 極端値による密度の変形を把握 |
| 機械学習前のEDA | 特徴量の分布把握により、スケーリングや変換の方針を検討 |
特徴
- 滑らかな曲線で分布を表現できる
- データ数が多い場合でも視認性が高い
- ヒストグラムよりも連続的な比較が容易
- バンド幅(smoothing parameter)の設定により形状が変化
- 単変量・多群比較のどちらにも対応可能
チャートの見方
| 要素 | 説明 |
|---|---|
| 横軸(X軸) | データの値(例:身長、収入など) |
| 縦軸(Y軸) | 確率密度(density)。面積が1になるように正規化されている |
| 曲線の形 | データの分布の形状を表す(尖りや裾の長さで特徴を判断) |
| 面積 | 全体の面積が1に調整されるため、確率を表している |
| 色分け | 複数グループを比較する際に用いる。例:男女別、地域別など |
密度プロットは ヒストグラムの滑らか版 と考えると理解しやすいです。各データ点の周囲に「カーネル関数」と呼ばれる滑らかな曲線を重ね合わせて、全体の分布を推定します。これを「カーネル密度推定(Kernel Density Estimation, KDE)」と呼びます。
デザイン上の注意点
- バンド幅(スムージング)の設定は非常に重要で、小さすぎるとノイズが目立ち、大きすぎると特徴が消失します。
- 背景にヒストグラムを重ねる(overlay)ことで、密度推定の妥当性を確認できます。
- 色分けによるグループ比較の際は、透明度(alpha値)を調整し、重なりを視認しやすくします。
- カテゴリ数が多い場合は、ファセット(facet)分割を用いる方が明瞭です。
応用例
- Seaborn の
kdeplot()やdisplot()を用いたEDA - ggplot2 の
geom_density()による分布比較 - Plotly によるインタラクティブな密度比較グラフ
- 金融データ分析におけるリターン分布の可視化
- 医療統計での検査値分布分析(例:BMI, 血圧)
代替例
| チャート | 特徴 |
|---|---|
| ヒストグラム(Histogram) | 区間ごとの度数を棒で表現、直感的だが粗い |
| バイオリンプロット(Violin Plot) | 密度プロットと箱ひげ図の組み合わせ |
| ECDFプロット | 累積分布を直接表示し、全体傾向を定量的に比較可能 |
| Rugプロット | 個々のデータ点を補助的に可視化する際に併用可能 |
まとめ
密度プロットは、連続変数の分布を滑らかに把握するための強力なツールです。ヒストグラムよりも柔軟で、群間比較にも適しています。ただし、バンド幅設定による視覚的印象の変化には注意が必要です。統計学・データサイエンス・可視化設計の分野で広く使われており、分布理解の第一歩として非常に有効です。