統計検定を勉強していたことで混同行列、第1種の過誤、第2種の過誤、検定など知識としては知っていたが、「Rによるやさしい統計学」に、Rを使用して実験的に第1種の過誤、検定の多重性の問題について分かりやすく説明していたので、自戒のためにも纏めたいと思います。
#第1種の過誤、第2種の過誤とは
PCR検査でコロナであるかを調べることを考えます。この場合、第1種の過誤と第2種の過誤とは次のような誤りになります。尚、第1種の過誤をα、第2種の過誤をβと記します。
第1種の過誤:本当はコロナに罹患しているが、コロナでないと結果が出る
第2種の過誤:本当はコロナに罹患していないが、コロナという結果が出る
#検定の多重性の問題
3つの群A、B、Cがあったときに、それぞれの母平均μA、μB、μCが等しいか異なっているかを考えたいとします。
帰無仮説1: μA = μB
帰無仮説2: μB = μC
帰無仮説3: μC = μA
上記について、3回のt検定を行いたくなるかもしれない。しかしながら第1種の過誤が起きる確率が5%であったとすると、1回のt検定につき、5%の確率で第1種の過誤が発生することを意味する。従って、3つに分けた検定のうち少なくとも1つで第1種の誤りを犯している確率は、それぞれの検定が独立であった場合、
$$1-(1-0.05)^{3} ≒ 0.143$$
となり、14.3%の確率で第1種の過誤が起こることを表している。これは5%より大きく、複数回検定を適用するこで、全体で見ると第1種の過りを犯す確率が大きくなることを示している。これを検定の多重性問題と言います。
#Rを使って実験的に第1種の過誤を再現
グループA、グループB、グループCを標準正規分布に従う、サンプル数10のグループとする。
帰無仮説1、帰無仮説2、帰無仮説3に対してt検定を行い、第1種の誤りが1度でも起こる確率を
10,000回実験して確率を求めてみる。
反復回数 <- 10000
第1種の誤り <- 0
for (i in 1:反復回数){
gp_A <- rnorm(n=10)
gp_B <- rnorm(n=10)
gp_C <- rnorm(n=10)
ttest1 <- t.test(gp_A, gp_B, var.equal = TRUE)
ttest2 <- t.test(gp_B, gp_C, var.equal = TRUE)
ttest3 <- t.test(gp_C, gp_A, var.equal = TRUE)
第1種の誤り <- 第1種の誤り + ifelse(ttest1$p.value < 0.05 |
ttest2$p.value < 0.05 | ttest3$p.value < 0.05, 1, 0)
}
第1種の誤り/反復回数
上記プログラムから、3種類の検定(ttest1~3)で第1種の過誤が少なくとも1回おこる確率は、約12.1%と5%よりも大きく、理論値の14.3%に近い数値となることが確認できます。