トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

boxplot

*disclaimer
639331

R.graph

boxplot

 その意味するもの


  • データの分布を見る(比較する)
  • 真ん中の太い線:中央値 Median(50%)、平均ではないので注意
  • 箱の範囲:25%から75%の範囲(これを四分範囲と呼ぶ)(つまり、半分のデータはこの範囲に入る)
  • ひげの範囲:箱の端から箱の長さの1.5倍以内にある「実際の」数値の最大のもの最小のもの
  • 外れている○印:外れ値(ひげの範囲外のもの)

金先生による図解

なぜ、平均と標準偏差ではないか

  • データのばらつき具合(分布)は多様。(さまざまな分布がある)
  • 平均(相加平均)(Mean)と標準偏差は、「正規分布」(normal distribution)を前提としている。
  • 正規分布を前提としていないデータも、これ一つでばらつき具合を見て取れるところが便利。


 例1(データの型 その1)

  • 二種類のデータを比較できるように箱ひげ図を描いてみる。

1) データは、以下の形式(タブ区切り)でテキストファイル保存

groupms
High438
High374
High313
High337
High393
High432
High380
High390
High354
High322
High328
High305
High386
High348
High271
High398
High401
High380
High324
High347
High350
High234
High327
High375
High325
High338
High366
High348
High398
High290
High384
High443
High303
High343
High358
High393
High363
High411
High389
High379
High246
High408
High393
High326
High405
High321
High353
High361
Low343
Low470
Low337
Low353
Low327
Low326
Low332
Low393
Low395
Low435
Low375
Low311
Low331
Low303
Low331
Low369
Low313
Low351
Low374
Low390
Low362
Low285
Low382
Low298
Low347
Low375
Low380
Low364
Low429
Low375
Low401
Low307
Low401
Low394
Low350
Low351
Low380
Low340
Low398
Low351
Low458
Low427
Low311
Low341
Low389
Low363
Low334
Low386

2) Rで読み込む

items <- read.table(choose.files(), header=T, sep="\t")

3) 各グループの値だけを取り出す

hi <- c(items$ms[items$group=="High"])

li <- c(items$ms[items$group=="Low"])

 例2(データの型 その2)


1) データは、以下の形式(タブ区切り)でテキストファイル保存



HiLo
438343
374470
313337
337353
393327
432326
380332
390393
354395
322435
328375
305311
386331
348303
271331
398369
401313
380351
324374
347390
350362
234285
327382
375298
325347
338375
366380
348364
398429
290375
384401
443307
303401
343394
358350
393351
363380
411340
389398
379351
246458
408427
393311
326341
405389
321363
353334
361386

2) Rで読み込む

hilo <- read.table(choose.files(), header=T, sep="\t")



3) 各グループの値だけを取り出す

hi <- hilo$Hi

lo <- hilo$Lo

4) 箱ひげ図を描く

boxplot(hi, lo)

 図に説明を足す

  • mainでタイトル
  • ylabでy軸のラベル
  • names=c(" ", " ") で各箱の名前
  • ylim=c(下限値, 上限値)
  • yaxp=c(下限値, 上限値, 目盛の数)
boxplot(hi, lo, main="High vs. Low", ylab="ms", names=c("High","Low"))

5) メニューのファイルから「別名で保存」で、PDFファイルで保存できる。

  • もしくは、以下のコマンドでファイル保存。
png("J1boxplot.png")
boxplot(J1, main="Japanese all data", ylab="freq.")
dev.off()

 外れ値は具体的に何なのか? boxplotの中身を見てみる。

  • boxplotのコマンドの結果を変数に入れてしまう!
j1 <- boxplot(J1, main="Japanese all data", ylab="sentence length")
  • 変数jiの中身が、boxplotの中身
  • 中身のうち、箱ひげの図の基本的な数値は、$statで出る。
> j1$stat
     [,1]
[1,]    2
[2,]    4
[3,]    7
[4,]   10
[5,]   19
attr(,"class")
       V1 
"integer" 
  • 上記の、[5, ]が箱ひげの「ひげ」の最大値。それより上が「外れ値」となる。
  • 外れ値は、$out
> j1$out
 [1] 21 21 25 29 20 22 20 20 22 20 23 21 20 24 21 21 24 22 22 20 23 22 25 20 20
[26] 23 21 22 21 23 22 24 20 36 21 21 29 22 24 27 25 20 22 23 29 20 21 24 24 21
[51] 20 22 29 22 23 23 20 23 22 27

 stripchart()と組み合わせる