スミルノフ・グラブス検定の数表     Last modified: Jan 16, 2006

 R で数表を書くプログラムを書いたので参考までに

> Grubbs <- function(n, alpha) {
+ 	t <- qt(1-alpha/n, n-2)^2
+ 	return((n-1)*sqrt(t/(n-2+t))/sqrt(n))
+ }
> n <- c(3:20, 22, 24, 26, 28, 30, 35, 40, 50, 60, 80, 100, 150, 200, 300, 400, 500, 1000)
> alpha <- c(0.1, 0.05, 0.025, 0.01)
> tbl <- outer(n, alpha, Grubbs)
> rownames(tbl) <- n
> colnames(tbl) <- alpha
> tbl
          0.1     0.05    0.025     0.01
3    1.148375 1.153118 1.154305 1.154637
4    1.425000 1.462500 1.481250 1.492500
5    1.601635 1.671386 1.715037 1.748857
6    1.728880 1.822120 1.887145 1.944245
7    1.827976 1.938135 2.019969 2.097304
8    1.908949 2.031652 2.126645 2.220833
9    1.977265 2.109562 2.215004 2.323148
10   2.036233 2.176068 2.289954 2.409725
11   2.088014 2.233908 2.354730 2.484279
12   2.134099 2.284953 2.411560 2.549417
13   2.175561 2.330540 2.462033 2.607020
14   2.213198 2.371654 2.507321 2.658480
15   2.247621 2.409038 2.548308 2.704855
16   2.279307 2.443272 2.585676 2.746963
17   2.308634 2.474810 2.619964 2.785445
18   2.335911 2.504017 2.651599 2.820817
19   2.361388 2.531193 2.680931 2.853495
20   2.385275 2.556581 2.708246 2.883821
22   2.428950 2.602784 2.757735 2.938503
24   2.468047 2.643910 2.801551 2.986628
26   2.503384 2.680899 2.840774 3.029473
28   2.535582 2.714459 2.876209 3.067989
30   2.565123 2.745132 2.908473 3.102897
35   2.629675 2.811782 2.978183 3.177798
40   2.684045 2.867542 3.036097 3.239482
50   2.771905 2.956975 3.128247 3.336624
60   2.841095 3.026863 3.199662 3.411078
80   2.945924 3.131939 3.306121 3.520780
100  3.023885 3.209520 3.384083 3.600196
150  3.158892 3.342905 3.517009 3.733979
200  3.250062 3.432404 3.605525 3.822065
300  3.372924 3.552437 3.723555 3.938484
400  3.456577 3.633871 3.803268 4.016558
500  3.519676 3.695175 3.863127 4.074949
1000 3.707091 3.876851 4.039978 4.246586

 また,先の近似式の逆関数を使えば,スミルノフ・グラブス検定統計量から有意確率(P 値)を求める関数を導くことができる。 パーセント点を求める関数(片側) qGrubbs <- function(p, n) { t <- qt(p/n, n-2)^2 return((n-1)*sqrt(t/(n-2+t))/sqrt(n)) } 有意確率を求める関数(片側) pGrubbs <- function(st, n) { min(n*pt(sqrt((n-2)/((n-1)^2/st^2/n-1)), n-2, lower.tail=FALSE), 1) } > x <- qGrubbs(0.1, 1000) > x [1] 3.707091 > pGrubbs(x, 1000) [1] 0.1 > y <- pGrubbs(2.3586, 27) > y [1] 0.1763948 > qGrubbs(y, 27) [1] 2.3586


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