• 検索結果がありません。

箱型図 boxplot()

ドキュメント内 ためになった他の人のサイト script of (ページ 42-45)

2.4 基本記述統計グラフ

2.4.5 箱型図 boxplot()

boxplot()

はデータ

(

グループ

)

から箱型図

(

箱ヒゲ図,

boxplot, box and whisker

plot)

を画く.箱型図は現代統計学の最も基本的な記述統計用グラフの一つである.

書式

:

boxplot(x, ...)

#

クラス

formula

に対する

S3

メソッド

boxplot(formula, data=NULL, ..., subset, na.action=NULL)

#

既定の

S3

メソッド

boxplot(x, ..., range=1.5, width=NULL, varwidth=FALSE, notch=FALSE, outline=TRUE, names, plot=TRUE, border=par("fg"), col=NULL, log="", pars=list(boxwex=0.8, staplewex=0.5, outwex=0.5), horizontal=FALSE, add=FALSE, at=NULL)

引数:

formula y ~ grp

といった公式.ここで

y

はグルーピング変数

(

普通因子

) grp

に よってグループ化される数値データ

data formula

中の変数含まれるデータフレームもしくはリスト

subset

プロットされる観測値の部分集合を指定するオプションベクトル

na.action

データに欠損値があるときの処理を指定する関数.既定では欠損値は無視

される

x

箱型図を書くべきデータ.数値ベクトルかそうしたベクトルを含む単一のリス ト.任意個の名前無しの追加引数は別のデータを指定し,それぞれ一つの箱型図 に対応する.

NA

値があっても良い

... formula

メソッドに対しては既定のメソッドに引き渡される名前付きの引数.既

定メソッドでは名前ラベル無しの引数は追加データ

(x

がリストなら無視される

)

とされ,名前ラベル付きの引数は関数

bxp()

に渡される引数と作画パラメータ

(pars

で指定されたパラメータを上書きする

)

range

ヒゲが箱からどれだけ延びるかを決める.もし

range

が正なら,ヒゲは箱から

IQR

range

倍を越えない最も離れたデータ位置まで引かれる.

0

ならヒゲは最

大・最小値まで延びる

width

箱の相対的な幅を決めるベクトル

varwidth

もし

TRUE

なら,箱はグループ中の観測値の数の平方根に比例する幅になる

notch

もし

TRUE

なら,箱の両側面に切り欠け

(notch)

が描かれる.もし二つの箱型

図の切り欠けが重ならなければ,対応データの中央値が異なる可能性が高い

outline

もし

FALSE

なら外れ値は描かれない

names

各プロットの下に書かれるグループのラベル.文字列ベクトルでも表現式でも

良い

(plotmath()

を参照

)

boxwex

全ての箱に適用されるスケール因子.もしグループ数が少なければ,箱の幅を

狭くした方が見栄えが良くなる

staplewex

ステープル線

(

ヒゲの先端部

)

の幅拡大率,箱幅への比例率

outwex

外れ値線の幅拡大率,箱幅への比例率

plot

もし

TRUE (

既定値

)

なら箱型図が描かれる.もし

FALSE

なら箱型図情報の要約 が出力される

border

箱型図の外側線に対する色のベクトル.もし箱型図の数より少なければリサ

イクル使用される

col

もし

NULL

でなければ,箱型図の本体を彩色する色情報を含むとされる.既定で は背景色とされる

log x

座標,

y

座標もしくは双方を対数スケールでプロットするかどうかを指示する 文字

pars

追加の作図パラメータのリスト.例えば

boxwex

outpch

plot=TRUE

なら これらは

bxp()

に渡される

horizontal

箱型図を水平に描くかどうかを指示する論理値.

FALSE

なら垂直

add

論理値.

TRUE

なら現在のプロットに箱型図が追加される

at

箱型図が描かれる位置を与える数値ベクトル

(

特に

add=TRUE

の時意味を持つ

)

. 既定では

n

を箱の数として

1:n

返り値: 以下の成分を持つリスト:

stats

行列で,各列は各箱の下側のヒゲの端点位置,下側ヒンジ,中央値,上側ヒン

ジ,上側ヒゲの端点位置を含む.もし全ての入力データが同じクラス属性を持て ば,この成分も同じクラス属性を持つ

n

各グループ中の観測値数のベクトル

conf

行列で,各列は切り欠けの下側,上側端点位置を含む

out

ヒゲの外側にある全てのデータ点の値

group out

と同じ長さのベクトルで,各外れ値がどのグループに属するかを指示する

names

グループの名前のベクトル

総称的な関数

boxplot()

は現在既定メソッド関数

boxplot.default()

と公式による インタフェイス関数

boxplot.formula()

を持つ.もし複数のグループが複数引数もし くは公式で与えられると,平行箱型図が引数もしくは因子の水準の順序で描かれる.欠損 値は無視される.関数

bxp()

は箱型図情報から箱型図を画く.

# 因子G=c("a","b","c")で変数Aをグループ化し三つの箱型図を描く x <- data.frame(A=rgamma(100, shape=3),

G=sample(letters[1:3], 100, replace=TRUE)) boxplot(A ~ G, data=x)

# ベクトルを並べる.中央値の比較用に切り欠けを加える

x1 <- rnorm(100); x2 <- rnorm(100)+1; x3 <- rnorm(100)+2 boxplot(x1,x2,x3, notch = TRUE)

# 数値行列の各列を箱型図に(先ずデータフレームに変換する) x <- matrix(runif(1e3), nrow=100, ncol=10) dfx <- as.data.frame(x)

boxplot(dfx)

# help(boxplot)中の例(二つのboxplot命令を重ねる).組み込みデータフレームToothGrowth使用 boxplot(len ~ dose, data = ToothGrowth,

boxwex = 0.25, at = 1:3 - 0.2, # 箱幅と位置を指定

subset = supp == "VC", col = "yellow", # 黄色で塗りつぶし main = "Guinea Pigs’ Tooth Growth", # 主タイトル xlab = "Vitamin C dose mg", # x軸ラベル

ylab = "tooth length", # y軸ラベル xlim = c(0.5, 3.5), ylim = c(0, 35), # x,y軸範囲指定

yaxs = "i") # y軸タイプ指定

boxplot(len ~ dose, data = ToothGrowth, add = TRUE, # 二つ目の箱型図を重ねる

boxwex = 0.25, at = 1:3 + 0.2, # 少しずらして画く

subset = supp == "OJ", col = "orange") # オレンジ色で塗りつぶし legend(2, 9, c("Ascorbic acid", "Orange juice"),

fill = c("yellow", "orange")) # 凡例を加える

a b c

0246810

1 2 3

−2−101234

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10

0.0 0.2 0.4 0.6 0.8 1.0 0.5 1 2

05101520253035

Guinea Pigs’ Tooth Growth

Vitamin C dose mg

tooth length

0.5 1 2

05101520253035

Ascorbic acid Orange juice

例示用コードの出力箱型図

(

左から右,上から下の順

)

ドキュメント内 ためになった他の人のサイト script of (ページ 42-45)