Tunny Icon
TunnyDocs

The next-gen Grasshopper optimization tool.

バイオリンプロット

概要

バイオリンプロットは、数値変数の推定確率密度を、中心軸をはさんで左右対称の塗りつぶし曲線として表した図です。 ある値のところで曲線が太いほど、その値が現れやすいことを意味します。 そのため、分布の山・裾・歪みといった形が、少数の要約値に落とし込まれずに直接読み取れます。

位置づけとしては、ヒストグラムと箱ひげ図の中間にあります。 ヒストグラムと同じく分布の形を表し、山が 1 つか複数かも見えますが、滑らかな連続曲線なので見た目がビン幅に左右されません。 箱ひげ図と同じく横に並べて比較できますが、四分位の間の形を捨てません。 ヒストグラム箱ひげ図とあわせて確認するとよいです。


カーネル密度推定

曲線は**カーネル密度推定(KDE)**です。 各観測値がそれぞれ山(カーネル)を寄与し、その平均として推定します。

f^(x)=1nhi=1nK ⁣(xxih)\hat{f}(x) = \frac{1}{n h} \sum_{i=1}^{n} K!\left(\frac{x - x_i}{h}\right)

Tunny Dashboard ではガウスカーネル K(t)=12πet2/2K(t) = \frac{1}{\sqrt{2\pi}} e^{-t^2/2} を使い、固定のグリッドで推定値を評価します。 グリッドはデータ範囲の両端からさらにバンド幅 2 つ分までを 128 点に分けたものです。 山の足し合わせなので、値が 2 か所に固まっていると山も 2 つ現れます。 これは箱ひげ図では表せない多峰性そのものです。


バンド幅

バンド幅 hh は各カーネルの広さを決め、曲線の滑らかさを左右します。 Tunny Dashboard では Scott の公式の頑健版を使って自動で決めています。

h=1.06min(σ,IQR1.34)n1/5h = 1.06 \cdot \min\left(\sigma, \frac{\mathrm{IQR}}{1.34}\right) \cdot n^{-1/5}

定数 1.061.06 は Scott の公式の正規分布基準の係数で、$\sigma$ は母標準偏差です。 min(σ,IQR/1.34)\min(\sigma, \mathrm{IQR}/1.34) の部分が頑健化で、通常の正規分布基準の形は σ\sigma だけを使います。 ところが外れ値が 1 つあるだけで σ\sigma が膨らみ、曲線全体が過剰に滑らかになってしまいます。 2 つの広がり推定のうち小さいほうを採ることで、ヒストグラムの Freedman–Diaconis の公式と同じ考え方で、データの主要部分に近いバンド幅を保ちます。 この min\min の形は Silverman の経験則に由来します。

バンド幅が 0 または非有限になる場合は密度推定が意味を持ちません。 これは値がすべて同じ場合や、広がりが 0 に潰れる場合に起こるため、その群は描画せず、除外として件数を表示します。


バイオリンの読み方

  • 山が 1 つのときは、値が 1 か所のまわりに集中しています。山の位置は分布の中心の頑健な読みになります。
  • 山が 2 つ以上のときは、値が別々の集団に分かれています。これがバイオリンプロットを箱ひげ図より優先する主な理由です。五数要約が同じでも、まったく違う二峰性の分布があり得ます。
  • 細く長い裾は、まれな値が範囲を広げていることを表します。支える観測が少ないため、そこでは曲線は細いままです。
  • バイオリン同士の比較では、最大幅をそろえているので、細く高い形は値がぎゅっと集中していること、低く広い形は値が散っていることを意味します。幅を比べられるのは目盛りを共有しているからであり、アプリは各分布の中心が分かるように中央値マーカーも描きます。

特性・限界

  • 見た目の形はバンド幅に依存します。バンド幅が小さいと少ない標本でも偽の山が現れ、大きいと本当の山が統合されます。自動の経験則は出発点であって答えではないため、1 つのバンド幅でしか現れない形は慎重に扱ってください。
  • 推定値は平滑化されるため、観測された最小値・最大値より少し外側まで広がります。グリッドは両端からバンド幅 2 つ分先まで及ぶので、曲線は元の分布の推定であり、データそのものの記録ではありません。
  • アプリでは幅をそろえて形を比べやすくしている代わりに、標本数は見えません。試行数が数件の水準も数千件の水準も同じ幅になります。差が重要に見えるときは試行数を確認してください。
  • 密度推定には有限値が 2 つ以上必要で、値がすべて同じ群は推定できません。該当する群は除外されます。

アプリ内での利用箇所

  • Violin Plot ウィジェット:数値の目的関数またはパラメータの密度を横に並べて表示します。カテゴリパラメータを選ぶと、1 つの数値列をその水準ごとに分割します。平均や四分位よりも分布の形、とくに多峰性かどうかが重要なときに最初に見る図です。

参考文献

  • Scott, D. W. (1979). On optimal and data-based histograms. Biometrika, 66(3), 605–610. https://doi.org/10.1093/biomet/66.3.605
  • Silverman, B. W. (1986). Density Estimation for Statistics and Data Analysis. Chapman & Hall.
  • Wand, M. P., & Jones, M. C. (1995). Kernel Smoothing. Chapman & Hall.