スミルノフ・グラブス検定     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

Made with Macintosh