正規確率紙     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 から始まる整数値(等間隔)
graph

npp(c(1, 2, 3, 4, 3, 2, 1), seq(160, 190, 5)) 階級の代表値を指定する場合
graph

npp(1:21, plt=FALSE) 横軸の目盛りを 21 個として,正規確率紙を作る
graph

・ 解説ページ


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI

Made with Macintosh