スミルノフ・グラブス検定 Last modified: Aug 21, 2009
目的
スミルノフ・グラブス検定を行う
注意! 結果は2組表示されるが,前者は最小値についてのもの後者は最大値についてのものである
どちらか片方だけを利用すること
使用法
SG(x)
引数
x データベクトル
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/SG.R", encoding="euc-jp")
SG <- function(x) # データベクトル
{
method <- "スミルノフ・グラブス検定"
data.name <- paste(c("min(", "max("), deparse(substitute(x)), ") = ", range(x, na.rm=TRUE), sep="")
x <- x[!is.na(x)] # 欠損値を除く
n <- length(x) # 標本サイズ
t <- abs(range(x)-mean(x))/sd(x) # 最大のデータと最小のデータの両方について検定統計量を計算する
p <- n*pt(sqrt((n-2)/((n-1)^2/t^2/n-1)), n-2, lower.tail=FALSE) # P 値も2通り計算される
p <- sapply(p, function(p0) min(p0, 1))
result <- list(method=method, parameter=c(df=n-2))
result1 <- structure(c(result, list(data.name=data.name[1], statistic=c(t=t[1]), p.value=p[1])), class="htest")
result2 <- structure(c(result, list(data.name=data.name[2], statistic=c(t=t[2]), p.value=p[2])), class="htest")
return(structure(list(result1, result2), class="SG"))
}
使用例
表 1.どのデータが“外れている”か
| 133 | 134 | 134 | 134 | 135 | 135 | 139 | 140 | 140 | 140 |
| 141 | 142 | 142 | 144 | 144 | 147 | 147 | 149 | 150 | 164 |
> x <- c(133, 134, 134, 134, 135, 135, 139, 140, 140, 140,
141, 142, 142, 144, 144, 147, 147, 149, 150, 164)
> SG(x)
スミルノフ・グラブス検定
data: min(x) = 133
t = 1.1724, df = 18, p-value = 1
スミルノフ・グラブス検定
data: max(x) = 164
t = 3.0052, df = 18, p-value = 0.004864
解説ページ
直前のページへ戻る
E-mail to Shigenobu AOKI