読者です 読者をやめる 読者になる 読者になる

a record of inner life

やったことや考えたこと・本・論文・音楽の備忘録。 特に環境科学・生態毒性に関して。

Welchは「分散=0」のデータには使えない

盲目的にWelchの検定をやってしまっていました(参考:こちら)。

WelchのANOVAでは、各群の分散を用いてF値と自由度を求めるから、「分散=0」つまり測定値が全部同じデータには使えないんですね。式で表すと下のようになります。VwがF値。自由度はJ-1とΔです。式はTomarken and Serlin (1986) から採ってきました。分散が0の群はwj (分散の逆数) が無限になるので、計算できないわけですね。

f:id:Kyoshiro1225:20150625174139j:plain

式:WelchのANOVA(Jは群の数, njは各群でのサンプルサイズ)

 

一方、Welchのt検定では、検定量tは分散0でも計算できます。詳細はWikipediaへ。

 

試しにRで検定してみます。

score<-c(1,1,1,1,2,3,2,3)
group<-rep(c("A","B"),c(4,4))

 

oneway.test(score~group,var.equal=FALSE)

 One-way analysis of means (not assuming equal variances)

 data: score and group
 F = NaN, num df = 2, denom df = NaN, p-value = NA

 

t.test(score~group,var.equal=TRUE)

 Two Sample t-test

 data: score by group
 t = -5.1962, df = 6, p-value = 0.002022
 alternative hypothesis: true difference in means is not equal to 0
 95 percent confidence interval:
 -2.2063626 -0.7936374
 sample estimates:
 mean in group A mean in group B
 1.0 2.5

上の例ではt検定との比較のため2群でANOVAしてますが、3群以上でも同様の結果になります。1つの群でも分散0があると検定できないはずです。