2.4 基本記述統計グラフ
2.4.3 ヒストグラム hist()
hist()
はデータのヒストグラムを計算する.もしplot=TRUE
ならplot.histogram()
を用いて更に描画される.書式:
hist(x, ...)
#
既定のS3
メソッドhist(x, breaks = "Sturges", freq = NULL, probability = !freq,
include.lowest = TRUE, right = TRUE, density = NULL, angle = 45, col = NULL, border = NULL, main = paste("Histogram of" , xname), xlim = range(breaks), ylim = NULL, xlab = xname, ylab,
axes = TRUE, plot = TRUE, labels = FALSE, nclass = NULL, ...)
引数:
x
データベクトルbreaks
以下の一つ,•
ヒストグラムのセル間の分割点を与えるベクトル•
セル数を与える単一の数•
セル数を計算するアルゴリズムを与える文字列(
以下を参照)
•
セル数を計算する関数freq
論理値.もしTRUE
ならヒストグラムは結果のcounts
成分である度数の表示.もし
FALSE
ならdensity
成分である確率密度がプロットされ,総面積は1
にな る.breaks
が等間隔である(
そしてprobability
が指定されない)
ときだけ既 定値はTRUE
probability !freq
のエイリアス(S
との互換性のため)
include.lowest
論 理 値 .TRUE
な らbreaks
に 等 し いx[i]
は 左 の 棒(
も しright=FALSE
なら右)
に含められる.breaks
がベクトルでなければ無視さ れ警告がでるright
論理値.もしTRUE
ならヒストグラムのセルは右閉じ左空き区間density
陰影斜線の密度(
インチあたりの線数)
.既定値のNULL(
もしくは負値)
では 斜線は引かれないangle
陰影斜線の傾き.度単位の角度(
反時計周り) col
棒を塗りつぶす色.既定のNULL
では塗りつぶし無しborder
棒の周囲の色.既定では標準前景色と同じmain, xlab, ylab
これらのtitle
引数は有用な既定値を持つxlim, ylim x, y
値の範囲.x
軸範囲指定xlim
はヒストグラムの定義には使われず,plot=TRUE
の際のプロットで使われることを注意axes
論理値.もし既定のTRUE
なら,プロットの際軸が描かれるplot
論理値.もし既定のTRUE
なら,ヒストグラムが描かれる.さもなければ,breaks
とcounts
のリストが返される.後者の場合,plot=TRUE
でだけ意味 を持つ引数が指定されると警告がでるlabels
論理値もしくは文字.FALSE
でなければ棒の上部にラベルが追加される.help(plot.histogram)
を参照nclass
整数値.S(-PLUS)
との互換用.数値,文字引数に対するbreaks
と同値... plot=TRUE
の時plot.histogram()
に渡される追加引数返り値: 返り値は次の成分を持つクラス
"histogram"
のリスト:breaks n+1
個のセル境界.breaks
がベクトルならそれと一致counts n
個の整数.各セルに対する,その内側にあるx
データの数density
推定密度のx[i]
における値f^(x[i])
.もしall(diff(breaks)==1)
なら相対頻度で,一般に
sum[i; f^(x[i])(breaks[i+1]-breaks[i])]=1 intensities density
と同じ.廃止予定mids n
個のセルの中点xname
実際のx
引数の名前の文字列equidist
論理値.breaks
の間隔が全て等しいか?ヒストグラムの定義はいろいろあるが,
R
の既定である等間隔分点のヒストグラムでは 分点で決まるセル中の度数に比例する高さで棒をプロットする.等間隔分点では棒の面積 にも比例する.非等間隔の分点の場合の既定プロットでは,面積が各セルの相対度数に比 例する棒を描く.もし既定の
right=TRUE
ならヒストグラムのセルは左半開区間(a,b]
である.もしinclude.lowest=TRUE
ならデータの最小値は最初のセルに入る.もしright=FALSE
な ら右半開区間[a,b)
であり,include.lowest=TRUE
ならデータの最大値は最後のセル に入る.セルの端点上のデータ値に対してはセル幅の中央値の1e-7
倍の寛容度が適用さ れる.breaks
の既定手法は"Sturges"
である(help(nclass.Sturges
参照)
.他に用意さ れている手法は"Scott"
と"FD"("Freedman-Diaconis")
である,help(nclass.scott
と
help(nclass.FD)
参照.手法名には大・小文字は無視され,部分的マッチングが可能.分点を計算する
x
の関数を独自に指定することもできる.> str(hist(islands, col="gray", labels = TRUE, plot=FALSE))
List of 7 # ヒストグラム情報(だけ)
$ breaks : num [1:10] 0 2000 4000 6000 8000 10000 12000 14000 16000 18000
$ counts : int [1:9] 41 2 1 1 1 1 0 0 1
$ intensities: num [1:9] 4.27e-04 2.08e-05 1.04e-05 1.04e-05 1.04e-05 ...
$ density : num [1:9] 4.27e-04 2.08e-05 1.04e-05 1.04e-05 1.04e-05 ...
$ mids : num [1:9] 1000 3000 5000 7000 9000 11000 13000 15000 17000
$ xname : chr "islands"
$ equidist : logi TRUE
- attr(*, "class")= chr "histogram"
Warning message: # 描画しないと警告
In hist.default(islands, col = "gray", labels = TRUE, plot = FALSE) : arguments col , labels are not made use of
> hist(sqrt(islands), breaks=12) # 分点計算法による違い.12等間隔分点
> hist(sqrt(islands), breaks="Sturges") # Sturges法
> hist(sqrt(islands), breaks="Scott") # Scott法
> hist(sqrt(islands), breaks="FD") # FD法
# Old Faithful geyser(間欠泉)の噴出時間間隔データ.カーネル法による推定密度関数プロットと比較
> d <- density(faithful$eruptions, bw = "sj")
> plot(d, ylim=c(0,0.8), col=2)
> hist(faithful$eruptions, breaks=20, freq=FALSE, add=TRUE)
Histogram of sqrt(islands)
sqrt(islands)
Frequency
0 20 40 60 80100120140
05101520253035
Histogram of sqrt(islands)
sqrt(islands)
Frequency
0 20 40 60 80 100120140
010203040
Histogram of sqrt(islands)
sqrt(islands)
Frequency
0 20 40 60 80100120140
010203040
Histogram of sqrt(islands)
sqrt(islands)
Frequency
0 20 40 60 80 100120140
05101520
2 3 4 5
0.00.20.40.60.8
density.default(x = faithful$eruptions, bw = "sj")
N = 272 Bandwidth = 0.14
Density
分点計算法による違い カーネル法による推定密度関数との比較