logo
生物科学研究所 井口研究室
Laboratory of Biology, Okaya, Nagano, Japan
Home

多重比較 Steel-Dwass 正規近似と正確検定: U 検定が基準

井口豊(生物科学研究所,長野県岡谷市)
最終更新:2023 年 1 月 8 日

多重比較検定の一種である Steel-Dwass 多重検定は, Tukey-Kramer検定のノンパラメトリック版である,という説明は,ウェブページでもしばしば見かける。しかし,この多重検定の基礎となるのが, Wilcoxon 順位和検定(Mann-Whitney U 検定)であることを説明したウェブサイトは意外と少ない。日本語の論文で,そのことを説明しているのは,白石高章(2011)や柳澤健太郎ほか(2007)である(文献は末尾に掲載)。

また,通常使われる Steel-Dwass 検定は,漸近 U 検定であり,それとは別に正確検定があることは,さらに知られていない。

ここでは,統計解析ソフト R を用いて, Steel-Dwass 検定と U 検定の関係を探ってみよう。R で Steel-Dwass 検定を実行する場合は,パッケージ NSM3 の中の pSDCFlig 関数を使うと良い。このパッケージをインストールした上で,2 群(2 標本,サンプル数 2)の検定を行なってみる。多群比較の検定の場合,その特徴を知るには,2 群の比較を行なうのが最適な方法である。

pSDCFlig 関数の説明を読むと, method オプションとして,次の 3 種類, Exact, Monte Carlo, Asymptotic,つまり,正確,モンテカルロ,漸近 の 3 種類が用意されていることが分かる。このうち,特に, Exact 法と Asymptotic 法を取り上げ,以下のような,共に大きさ 4 の 2 標本 a,b の検定をしてみる。なお,便宜上,タイ(結び,同点)が無いデータを考える。くどいようだが,サンプル数 2 で,サンプルサイズ 4 である。両者を混同しないでほしい。これらの用語の誤用については,次のページ参照,サンプル数とサンプルサイズ n は意味が違う

話を戻して,まず, Exact 法を実行。

# Steel-Dwass 検定
# データ
a<- c(1, 3, 5, 6)
b<- c(2, 4, 7, 9)

dat<- c(a, b)
grp<- rep(1:2, c(4, 4))

# 正確検定
library(NSM3)
pSDCFlig(dat, grp, method="Exact")
# 終了

p = 0.4857 となる。これが,正確 U 検定における p 値と同値であることは,以下のようにして確認できる。


# Mann-Whitney U (Wilcoxon 順位和) 正確検定
wilcox.test(a, b, exact=T)

Steel-Dwass 正確検定は,まさに,正確 U 検定をベースにして成り立っているのである。

次に,同じデータで 漸近検定を実行。

# 漸近検定
pSDCFlig(dat, grp, method="Asymptotic")

p = 0.3865 となる。これが,漸近 U 検定における p 値と同値であることは,以下のようにして確認できる。

# Mann-Whitney U (Wilcoxon 順位和) 漸近検定,連続補正なし
wilcox.test(a, b, exact=F, correct=F)

Steel-Dwass 漸近検定は,まさに,漸近 U 検定をベースにして成り立っているのである。ここで言う漸近法とは,漸近的に正規近似させた方法である。2 群の標本サイズを n1n2 とすると,それらが大きくなるにつれ,検定統計量 U は,次のような平均 E,分散 V の正規分布に近づく。いわゆる中心極限定理の例とも言える。

E = n1*n2/2

V=n1*n2(n1+n2+1)/12

したがって,検定統計量 U は ,平均 0,分散 1 の標準正規分布に従う統計量 Z に変換できる。

Z=(U-E)/sqrt(V)

いわゆる Z 検定をすれば良い。 R で計算してみる。


# 正規近似
n1<- length(a)
n2<- length(b)

E<- n1*n2/2
V<- n1*n2*(n1+n2+1)/12 
U<- wilcox.test(a, b, exact=F, correct=F)$statistic

Z<- abs(U-E)/sqrt(V)

pnorm(Z, lower=F)*2
# 終了

結果は,p = 0.3864762 となり, Steel-Dwass 検定の漸近法は, U 検定の正規近似をベースにして成り立っていることが分かる。したがって,標本サイズが大きければ漸近 Steel-Dwass 検定で良いが,標本サイズが小さい場合, n1n2 が 10 以下のような場合は,正確検定を使うべきである。

問題は,自分が使うソフトやプログラムが,どちらの方法を採っているか知らずに,あるいは,区別があることすら知らずに,それらを使う場合である。例えば,ウェブ上で時々参照される青木氏によるスティール・ドゥワス(Steel-Dwass)の方法による多重比較は,漸近検定である。

その R スクリプトの下から5行目
p <- ptukey(t*sqrt(2), ng, Inf, lower.tail=FALSE) # P 値を計算
を見て欲しい。

ptukey 関数で,スチューデント化された範囲分布を使って p 値を求めているのだが,引数として,自由度の無限大(Inf)に設定している。これが,正規近似の設定なのである。

R ベースの有名なフリーソフト EZR のSteel-Dwass 検定も漸近法である。このようなことを知らずに使っている人も多いような気がする。例えば,藤井貴允ほか(2013)は,その点で気になる。彼らは, 16 人, 9 人, 7 人の 3 群の代表値の比較に,前述の青木氏のプログラムを利用して,Steel-Dwass 検定を実行しているのだが,正確法で検定しても良かったケースである。

なお,ここでは, U 検定(Wilcoxon の順位和検定, Wilcoxon rank-sum test)を扱ったが,対応のあるデータに対しては, Wilcoxon の符号付順位検定(Wilcoxon signed rank test)が使われる。この場合,関数 wilcox.test の引数で, paired = TRUE と指定すれば良い。

さらに,同点(タイ, tie) がある場合は,exactRankTests パッケージの wilcox.exact 関数,または, coin パッケージの wilcox_test あるいは wilcoxsign_test 関数を使えば良い。

関連サイト

参考文献

藤井貴允ほか(2013)
立ち上がり動作の内部股関節伸展モーメント産出に影響する筋機能の加齢変化
理学療法科学 28 (4): 463-468.

白石高章(2011)
多群モデルにおけるすべての平均相違に関する閉検定手順
計量生物学 32 (1): 33-47.

柳澤健太郎ほか(2007)
RDB データベースにおける信用リスクモデルの説明力の年度間推移に関する分析
日本金融・証券計量・工学学会 2007 年夏季大会予稿集: 249-263.

Home