No.02602 等分散性とメディアン検定の問題について  【波音】 2007/02/05(Mon) 00:19

http://aoki2.si.gunma-u.ac.jp/lecture/BF/index.htmlを読ませていただきました。

> 中央値検定はお勧めできないという趣旨のページを準備中です。

と書かれていたので楽しみにしていたのですが,こんなに早くお目にかかれるとは思っていませんでした。それで早速,読ませていただいてビックリしたことは

1 つ。どの分布の場合においてもサンプルサイズが同じであるときは,それほど顕著に0.05から離れていないのに対して,サンプルサイズが1:2,1:3と なったとき(特に1:3のとき)にはホント破滅的になることです。サンプルサイズの違いだけでこれほど変わるものだとは驚かされました。

1 つ。私自身,今まで等分散性が仮定できない場合はマンホイットニーのU検定を直ちに行う方が良いのかと考えていましたが,グラフを見てみるとどの分布,ど のサンプルサイズの比においても0.05より低い値を取っていること。というか,これはまさに「ノンパラメトリック検定を乱用すると検出力が落ちてしま う」ということを示しているわけなのでしょうか。

あと気になったのですが,結論の部分において

> 事前検定を行うことが不適切。。。(省略)。。。最初からズバリ「等分散を仮定しない t 検定」を行うのが正しいやり方である。

とあります。これは1元配置の分散分析を行う際にも同じことがいえるのでしょうか。バートレットの方法による等分散性の検定を行うのではなく,最初から等分散を仮定しない(ウェルチの方法を拡張した)分散分析を行った方が良いことも在り得るのかということです。

また,1元配置分散分析とクラスカル・ウォリス検定の関係についても,今回の例のような「等分散性が仮定できないからといって,クラスカル・ウォリス検定を素直に行うのはよろしくない」というようなことも当てはまるのでしょうか。

No.02675 Re: 等分散性とメディアン検定の問題について  【夏維】 2007/02/09(Fri) 15:53

興味深く読まさせて頂きました.

私は社内では統計解析ソフトとしてJMPを使用して統計技術の普及活動を行っています.
多 重比較にウェルチの検定のように等分散性を仮定しない方法がないので,正確に検定を行おうと思ったら個別に2水準ごとに等分散を仮定しない検定(つまり ウェルチの検定)を行わないといけないが,これが手間になるので,サンプルサイズをなるべく等しくしましょう,そうすれば多重比較法が使えますよと教えて きました.でも,実際にはサンプル数が必ずしも同じぐらいにはならないんですよねぇ.

No.02676 Re: 等分散性とメディアン検定の問題について  【青木繁伸】 2007/02/09(Fri) 16:03

波音さん
> 1元配置の分散分析を行う際にも同じことがいえるのでしょうか

シミュレーションを追加しました。3群の平均値の場合にも,いきなり,等分散を仮定しない一元配置分散分析を行う方がよいようです。

夏維さん
> 実際にはサンプル数が必ずしも同じぐらいにはならないんですよねぇ

私のような社会調査なんかの場合には,サンプルサイズのアンバランスは実験系の比ではないですから,深刻です。

No.02688 Re: 等分散性とメディアン検定の問題について  【takahashi】 2007/02/09(Fri) 19:15

とても興味深い記事,ありがとう御座います。

もしよろしければ,プログラムをアップロードしていただけるとありがたいです。

No.02689 Re: 等分散性とメディアン検定の問題について  【青木繁伸】 2007/02/09(Fri) 19:21

takahashi さん
プログラムをアップロードしてから帰ろうと思っていて,あれこれやっているうちに忘れてきてしまいました。明日必ず。

No.02690 Re: 等分散性とメディアン検定の問題について  【takahashi】 2007/02/09(Fri) 19:31

お返事ありがとう御座います。
急ぐわけでありませんので,気が付いたときにでもお願いします。

No.02697 Re: 等分散性とメディアン検定の問題について  【波音】 2007/02/10(Sat) 00:17

青木先生,新たにシュミレーションの結果を載せてくださってありがとうございます。またじっくりと拝見させていただきます。

No.02701 Re: 等分散性とメディアン検定の問題について  【青木繁伸】 2007/02/10(Sat) 14:32

プログラムを掲載しました。(ページ内に含めました)

反省すると,標準偏差の比が1/4 〜 4 なので,分散比は 1/16 〜 16 になるんです。
ちょっと広すぎる。図にしたときにちょっと誇張されすぎか??
分散比はせいぜい 1/5 〜 5 くらいでいいかな。

No.02706 Re: 等分散性とメディアン検定の問題について  【takahashi】 2007/02/10(Sat) 18:16

プログラムありがとう御座います。
ちょっと気になったことが一点あります。

以下の表,N1,N2はそれぞれのサンプルサイズ,
chisq Aは補正なし,Bはあり,
sd1=1,sd2=0.5で10000回行ってp<.05となった確率です。
   N1 N2 chisq A chisq B fisher
1 10 30 0.0738 0.0111 0.0111
2 11 29 0.0372 0.0372 0.0372
3 12 28 0.0918 0.0182 0.0182
4 13 27 0.0499 0.0499 0.0499
5 14 26 0.1018 0.0223 0.0223
6 15 25 0.0605 0.0114 0.0605
7 16 24 0.0276 0.0276 0.0276
8 17 23 0.0648 0.0124 0.0124
9 18 22 0.0353 0.0353 0.0353
10 19 21 0.0660 0.0156 0.0156
11 20 20 0.0317 0.0317 0.0317
つまり
N1=10, 12, 14, 17, 19 : chisq B = fisher
N1=11, 13, 16, 18, 20 : chisq A = chisq B = fisher
N1=15 : chisq A = fisher
これはそういうもんなんでしょうか?

最初,グラフをボーっと見てて,この三つの関係がサンプルサイズによって変わるのに気づき,どう変わるんだろうと思ってみてみたら,こんな感じになりました。
何度やってもこうなります。

一応,プログラムを張っておきます。
tst<-function(n1){
n2<-40-n1
x1<-rnorm(n1, sd=1)
x2<-rnorm(n2, sd=0.5)
md <- median(c(x1, x2))
r1 <- sum(x1 < md)
r2 <- sum(x2 < md)
tbl <- t(matrix(c(r1, r2, n1-r1, n2-r2), 2, 2))
chisq.n <- chisq.test(tbl, correct=FALSE)$p.value
chisq.c <- chisq.test(tbl, correct=TRUE)$p.value
fisher <- fisher.test(tbl)$p.value
r<-(c(chisq.n,chisq.c,fisher))
}
loop<-10000
x<-matrix(NA,nrow=loop,ncol=3)
r<-matrix(NA,nrow=11,ncol=3)
k<-matrix(NA,nrow=11,ncol=3)
for(i in 1:11){
for(j in 1:loop)x[j,]<-tst(9+i)
r[i,]<-colMeans(x)
k[i,]<-colMeans(x<0.05)
}

No.02710 Re: 等分散性とメディアン検定の問題について  【青木繁伸】 2007/02/10(Sat) 19:40

takahashi さん こんばんは

そうですよね。実は,試行回数が10000回でも,200000回でも,この3つの検定による結果は,そんなに変わった数値は出てこないのです(^_^;)
n1=n2=20 のとき,メディアン検定の対象になる分割表は,そんなに多くはないのです。
loop=5000のときを実際に記録してみると
n1 n2  a  b  c  d
20 20 5 15 15 5
20 20 6 14 14 6
20 20 7 13 13 7
20 20 8 12 12 8
20 20 9 11 11 9
20 20 10 10 10 10
20 20 11 9 9 11
20 20 12 8 8 12
20 20 13 7 7 13
20 20 14 6 6 14
20 20 15 5 5 15
20 20 16 4 4 16
理論的には, a=0,1,2,3,4, 17,18,19,20 のときもあり得るのだが,このシミュレーション条件(sd1=1, sd2=0.5)では生じる確率が非常に小さいのだろう。
ということで,限られた分割表において,P値の値は異なるが 0.05 より大きいか小さいか言うことでまとめてしまうと,3つの検定法で結果が色々な風に一致してしまうことはあり得るし,規則性があるようにも見えるということではないでしょうか。
> x <- matrix(c(5,15,15,5),2,2)
> chisq.test(x)$p.value
[1] 0.004426526
> chisq.test(x, correct=FALSE)$p.value
[1] 0.001565402
> fisher.test(x)$p.value
[1] 0.003847527
この事実は,「中央値検定の検出力は低い」ということの原因になっているわけでしょうね。

● 「統計学関連なんでもあり」の過去ログ--- 040 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る