Rの箱ひげ図(boxplot)で外れ値を表示させない
例えば17人のテストの点数のデータがあって、↓こんなだったとしましょう。
そのまま、boxplotを使うと↓こんな感じになります。
で、
「この小っちゃい丸は何だ?」
「外れ値です」
「外すなよ」
みたいなこともあると思います。
外れ値と言っても、プロットされているわけだから情報が落ちているわけじゃないし、構わないような気もしますが、まあ、特別扱いしたくないって時もあるでしょう。
で、ヒゲをどこまで伸ばすかというのは、boxplot関数のrangeオプションで指定します。デフォルトだと、箱の長さの1.5倍までとなっております。
このrangeをめちゃくちゃ大きくしておけば、事実上、ヒゲは最大のデータ、最小のデータまで伸びることになりますが、そんなことしなくても、特別な値 0 を指定することで、最大・最小まで伸ばすことができます。
rangeの指定によって、ヒゲの長さがどう変化するか見てみましょう。
一番左のはデータをそのままプロットした散布図です。
左から二番目はrange=1となっているので、箱の長さの1倍分までヒゲを伸ばします。25パーセンタイルが60点、75パーセンタイルが70点なので、箱のサイズは10。つまり上方には、80(=70+10)までヒゲが伸びることになります。
いつでも80まで伸びるというわけではなく、80以下で最も大きいデータまで伸びます。今回はちょうど80点というデータがあるので、そこまで伸びているというわけです。■
[2014年6月12日追記]「外れ値として扱うが表示はしない」という風にしたい場合は、 outline=F というオプションを使います。
■
x <- c( 40, 45, 50, 55, 60, 62, 63, 64, 65, 66, 67, 68, 70, 75, 80, 85, 90)
そのまま、boxplotを使うと↓こんな感じになります。
boxplotの表示結果(外れ値扱い 有り) |
boxplot(x)
で、
「この小っちゃい丸は何だ?」
「外れ値です」
「外すなよ」
みたいなこともあると思います。
外れ値と言っても、プロットされているわけだから情報が落ちているわけじゃないし、構わないような気もしますが、まあ、特別扱いしたくないって時もあるでしょう。
で、ヒゲをどこまで伸ばすかというのは、boxplot関数のrangeオプションで指定します。デフォルトだと、箱の長さの1.5倍までとなっております。
このrangeをめちゃくちゃ大きくしておけば、事実上、ヒゲは最大のデータ、最小のデータまで伸びることになりますが、そんなことしなくても、特別な値 0 を指定することで、最大・最小まで伸ばすことができます。
boxplotの表示結果(外れ値扱い 無し) |
rangeの指定によって、ヒゲの長さがどう変化するか見てみましょう。
boxplotで外れ値扱いの範囲を変化させたもの(外れ値の表示 有り) |
一番左のはデータをそのままプロットした散布図です。
左から二番目はrange=1となっているので、箱の長さの1倍分までヒゲを伸ばします。25パーセンタイルが60点、75パーセンタイルが70点なので、箱のサイズは10。つまり上方には、80(=70+10)までヒゲが伸びることになります。
いつでも80まで伸びるというわけではなく、80以下で最も大きいデータまで伸びます。今回はちょうど80点というデータがあるので、そこまで伸びているというわけです。■
[2014年6月12日追記]「外れ値として扱うが表示はしない」という風にしたい場合は、 outline=F というオプションを使います。
boxplotで外れ値扱いの範囲を変化させたもの(外れ値の表示 無し) |
x <- c( 40, 45, 50, 55, 60, 62, 63, 64, 65, 66, 67, 68, 70, 75, 80, 85, 90) par(mfrow=c(1,4)) stripchart(x, vertical=T, pch=1, ylim=c(40,90), main="散布図") boxplot(x, range=1 , outline=F, ylim=c(40,90), main="range=1\noutline=F") boxplot(x, range=1.5, outline=F, ylim=c(40,90), main="range=1.5(デフォルト)\noutline=F") boxplot(x, range=2.0, outline=F, ylim=c(40,90), main="range=2.0\noutline=F")
■
コメント
コメントを投稿