目的 測定値をワイブル確率紙にプロットする。 使用法 weibull(x, plt=TRUE, color="gray") 引数 x データベクトル color グリッド線を描く色(省略した場合には灰色で描かれる) ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/weibull.R", encoding="euc-jp") # 測定値をワイブル確率紙にプロットする weibull <- function( x, # データベクトル color="gray") # 格子線を描く色 { weib <- function(p) log10(log10(1/(1-p))) # ワイブル分布の尺度に変更 log.axis <- function(z) # 対数軸を描く関数 { z <- floor(log10(z)) # 対数にしたときの整数部 log.min <- min(z) # 最小値 z2 <- 1:10*10^log.min # 値の範囲をカバーするように n <- max(z)-log.min # 10 倍しながら順次,右の位置に目盛りを描く z2 <- rep(z2, n+1)*10^rep(0:n, each=10) # 対数目盛り位置の数値 log.z2 <- log10(z2) # 目盛りを描く位置 axis(1, at=log.z2, labels=z2) # log.z2 の位置に,z2 という数値を描く abline(v=log.z2, col=color) # 垂直格子線を描く } x <- x[!is.na(x)] # 欠損値を除く n <- length(x) # 有効データ数 x <- sort(x) # 昇順に並べ替える log.x <- log10(x) # 常用対数を取る y <- weib(((1:n)-0.5)/n) # ワイブル分布における累積密度の位置 y0 <- c(10^(-10:0), 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 99.9, 99.99, 99.999) y0 <- y0[y0 > 10/n] probs <- weib(y0/100) # 目盛数値の位置 plot(c(log.x[1], log.x[n]), c(probs[1], probs[length(probs)]), type="n", xaxt="n", yaxt="n", xlab="Observed Value", ylab="Cumulative Percent", main="Weibull Probability Paper") abline(h=probs, col="grey") # 水平の格子線 log.axis(x) # 横軸を描く axis(2, at=probs, labels=y0) # 縦軸を描く points(log.x, y) #データ点を描く } 使用例 > x <- rweibull(90, 1.5, scale=3) # 90 個のワイブル乱数を発生させる > weibull(x) # ワイブル確率紙に描く 出力結果例 解説ページ