Po drugie: odpowiedź @ MrMeritology. Właściwie zastanawiałem się, czy test MWU byłby mniej skuteczny niż test niezależnych proporcji, ponieważ podręczniki, których się nauczyłem i których użyłem, mówiły, że MWU można zastosować tylko do danych porządkowych (lub przedziałów / proporcji).
Ale moje wyniki symulacji, przedstawione na wykresie poniżej, wskazują, że test MWU jest rzeczywiście nieco silniejszy niż test proporcji, jednocześnie dobrze kontrolując błąd typu I (przy proporcji populacji w grupie 1 = 0,50).
Udział populacji w grupie 2 utrzymuje się na poziomie 0,50. Liczba iteracji wynosi 10 000 w każdym punkcie. Powtórzyłem symulację bez korekty Yate'a, ale wyniki były takie same.
library(reshape)
MakeBinaryData <- function(n1, n2, p1){
y <- c(rbinom(n1, 1, p1),
rbinom(n2, 1, 0.5))
g_f <- factor(c(rep("g1", n1), rep("g2", n2)))
d <- data.frame(y, g_f)
return(d)
}
GetPower <- function(n_iter, n1, n2, p1, alpha=0.05, type="proportion", ...){
if(type=="proportion") {
p_v <- replicate(n_iter, prop.test(table(MakeBinaryData(n1, n1, p1)), ...)$p.value)
}
if(type=="MWU") {
p_v <- replicate(n_iter, wilcox.test(y~g_f, data=MakeBinaryData(n1, n1, p1))$p.value)
}
empirical_power <- sum(p_v<alpha)/n_iter
return(empirical_power)
}
p1_v <- seq(0.5, 0.6, 0.01)
set.seed(1)
power_proptest <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x))
power_mwu <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x, type="MWU"))