ワイブル確率紙 Last modified: Apr 13, 2004
目的
測定値をワイブル確率紙にプロットする。
使用法
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) # ワイブル確率紙に描く
出力結果例
解説ページ
直前のページへ戻る
E-mail to Shigenobu AOKI ( @si.gunma-u.ac.jp )