私が知っている標準的な箱ひげ図の一般化があり、そこでは歪んだデータを説明するためにひげの長さが調整されます。詳細は、非常に明確で簡潔なホワイトペーパーで詳しく説明されています(Vandervieren、E.、Hubert、M.(2004)「歪んだ分布の調整された箱ひげ図」、 こちらを参照)。
これの実装(robustbase :: adjbox())とmatlab 実装(libraというライブラリ内)があります。Rrobustbase::adjbox()libra
個人的には、データ変換のより良い代替手段であると思います(アドホックルールにも基づいていますが、ホワイトペーパーを参照)。
ちなみに、ここでwhuberの例に追加するものがあります。ウィスカーの動作について説明している範囲内で、汚染されたデータを検討する際に何が起こるかを実際に検討する必要があります。
library(robustbase)
A0 <- rnorm(100)
A1 <- runif(20, -4.1, -4)
A2 <- runif(20, 4, 4.1)
B1 <- exp(c(A0, A1[1:10], A2[1:10]))
boxplot(sqrt(B1), col="red", main="un-adjusted boxplot of square root of data")
adjbox( B1, col="red", main="adjusted boxplot of data")
この汚染モデルでは、B1のデータの20%が左半分、右半分の外れ値で保存される対数正規分布が本質的にあります(adjboxのブレークダウンポイントは通常のボックスプロットのブレークダウンポイントと同じです。つまり、最大でデータの25%が不良である可能性があります)。
グラフは、変換されたデータの古典的な箱ひげ図を表します(平方根変換を使用)
変換されていないデータの調整された箱ひげ図。
調整された箱ひげ図と比較して、前者のオプションは実際の外れ値をマスクし、良いデータを外れ値としてラベル付けします。一般に、問題のあるポイントを外れ値として分類することにより、データの非対称性の証拠を隠すように工夫します。
この例では、データの平方根で標準の箱ひげ図を使用するアプローチでは、13個の外れ値(すべて右側)が見つかりますが、調整された箱ひげ図では10個の右および14個の左の外れ値が見つかります。
編集:調整されたボックスプロットの概要。
「古典的な」箱ひげ図では、ひげは次の場所に配置されます。
-1.5 * IQRおよび Q 3Q1Q3 + 1.5 * IQR
ここで、IQRは分位間範囲、は25パーセンタイル、Q 3はQ1Q3は75パーセンタイルです。経験則では、フェンスの外側はすべて疑わしいデータと見なされます(フェンスは2つのウィスカーの間隔です)。
この経験則はアドホックです:正当化は、データの汚染されていない部分がほぼガウス分布である場合、このルールを使用して良好なデータの1%未満が不良として分類されることです。
OPが指摘しているように、このフェンスルールの弱点は、2つのウィスカーの長さが同じであるということです。つまり、データの汚染されていない部分に対称分布がある場合にのみフェンスルールが意味を持ちます。
一般的なアプローチは、フェンスルールを保存し、データを適応させることです。アイデアは、いくつかのスキュー補正単調変換(平方根または対数、より一般的にはボックスコックス変換)を使用してデータを変換することです。これはやや厄介なアプローチです:循環ロジックに依存し(この段階では観測不能なデータの汚染されていない部分の歪度を修正するために変換を選択する必要があります)、データの解釈を難しくする傾向があります視覚的に。いずれにせよ、これは奇妙な手順であり、データを変更して、アドホックルールを保持します。
別の方法は、データをそのままにしてウィスカールールを変更することです。調整された箱ひげ図により、各ウィスカの長さは、データの汚染されていない部分の歪度を測定する指標に従って変化します。
Q1exp(M,α)Q3exp(M,β) 1.5 * IQR
Mα βは、汚染されていない歪んだ分布の場合、歪んだ分布の大規模なコレクション全体でフェンスの外側にある確率が比較的小さくなるように選択された数値です(これはフェンスルールのアドホック部分です)。
M≈0と我々の古典ウィスカーにしているバック。
MMαβ
Q1exp(−4M)Q3exp(3M)M≥0
Q1exp(−3M)Q3exp(4M)M<0