備忘録 a record of inner life

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

WelchのANOVAは「分散=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=FALSE)

 

    Welch Two Sample t-test

data:  score by group
t = -5.1962, df = 3, p-value = 0.01385
alternative hypothesis: true difference in means between group A and group B is not equal to 0
95 percent confidence interval:
 -2.4186931 -0.5813069
sample estimates:
mean in group A mean in group B 
            1.0             2.5 

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