正規確率紙 Last modified: Jan 15, 2007
目的
正規確率紙に累積相対度数をプロットする。
使用法
npp(y) 累積相対度数をプロットする
npp(y, x) 累積相対度数をプロットする
npp(y, plt=FALSE) 正規確率紙を作成する
引数
y 度数ベクトル
x 階級代表値(省略時は等間隔の正数ベクトルを仮定する)
plt データ点をプロットしないとき FALSE にする
xlab 横軸のラベル(プロットしないときには空文字列)
ylab 縦軸のラベル(プロットしないときには空文字列)
main 図のタイトル(プロットしないときには空文字列)
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/npp.R", encoding="euc-jp")
# 正規確率紙に累積相対度数をプロットする
npp <- function(y, # 度数ベクトル
x=NULL, # 階級代表値
plt=TRUE, # データ点をプロットする
xlab=NULL, # 横軸ラベル
ylab=NULL, # 縦軸ラベル
main=NULL) # 図のタイトル
{
if (length(y) < 3) { # 階級数が2以下のときには正規確率紙のみを出力する
y <- 1:11
plt <- FALSE
}
y <- cumsum(y)/sum(y) # 累積相対度数
if (is.null(x)) {
x = seq(along=y)
}
if (is.null(xlab)) xlab <- "観察値"
if (is.null(ylab)) ylab <- "累積相対度数"
if (is.null(main)) main <- "正規確率紙"
probs <- c(0.01, 0.1, 1, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 99.9, 99.99)/100
plot(c(x[1], x[length(x)-1]), qnorm(c(probs[1], probs[17])), type="n", xaxt="n", yaxt="n",
xlab=xlab, ylab=ylab, main=main)
abline(h=qnorm(probs), v=x, col="grey") # 格子線を引く
if (plt) { # データ点をプロットする
points(x, qnorm(y), type="b")
text(x, qnorm(y), round(y, digit=3)*100, pos=1)
}
axis(1, at=x) # 横軸を描く
axis(2, at=qnorm(probs), labels=probs*100) # 縦軸を描く
}
使用例
> npp(c(1, 2, 3, 4, 3, 2, 1)) # 横軸の目盛りは 1 から始まる整数値(等間隔)
> npp(c(1, 2, 3, 4, 3, 2, 1), seq(160, 190, 5)) # 階級の代表値を指定する場合
> npp(1:21, plt=FALSE) # 横軸の目盛りを 21 個として,正規確率紙を作る
出力結果例
npp(c(1, 2, 3, 4, 3, 2, 1)) 横軸の目盛りは 1 から始まる整数値(等間隔)
npp(c(1, 2, 3, 4, 3, 2, 1), seq(160, 190, 5)) 階級の代表値を指定する場合
npp(1:21, plt=FALSE) 横軸の目盛りを 21 個として,正規確率紙を作る
解説ページ
直前のページへ戻る
E-mail to Shigenobu AOKI