###***### ONE-WAY ANOVA ###***###
# data generation design
N <- 90
k <- 3
g <- factor(rep(LETTERS[1:k], each = N/k))
tau <- c(-1/2, 0, 1/2)
sd <- c(1/2, 1, 2)
# generate data
set.seed(0)
x <- rnorm(N, mean = tau[g], sd = sd[g])
# mean test with unequal variances (robust W statistic)
set.seed(1)
np.aov.test(x, g)
# mean test with equal variances (classic F statistic)
set.seed(1)
np.aov.test(x, g, var.equal = TRUE)
# median test with unequal variances (robust Kruskal-Wallis statistic)
set.seed(1)
np.aov.test(x, g, median.test = TRUE)
# median test with equal variances (classic Kruskal-Wallis test)
set.seed(1)
np.aov.test(x, g, var.equal = TRUE, median.test = TRUE)
# Kruskal-Wallis test (asymptotic p-value)
kruskal.test(x, g)
if (FALSE) {
###***### REPEATED MEASURES ANOVA ###***###
# data generation design
N <- 90
k <- 3
n <- 30
g <- factor(rep(LETTERS[1:k], each = N/k))
b <- factor(rep(paste0("sub", 1:n), times = k),
levels = paste0("sub", 1:n))
tau <- c(-1/2, 0, 1/2)
sd <- c(1/2, 1, 2)
# generate random block effects
set.seed(773)
beta <- runif(30, -1, 1)
# generate data
set.seed(0)
x <- rnorm(N, mean = tau[g] + beta[b], sd = sd[g])
# mean test with unequal variances (robust W statistic)
set.seed(1)
np.aov.test(x, g, b)
# mean test with equal variances (classic F statistic)
set.seed(1)
np.aov.test(x, g, b, var.equal = TRUE)
# median test with unequal variances (robust Friedman statistic)
set.seed(1)
np.aov.test(x, g, b, median.test = TRUE)
# median test with equal variances (classic Friedman test)
set.seed(1)
np.aov.test(x, g, b, var.equal = TRUE, median.test = TRUE)
# Friedman test (asymptotic p-value)
friedman.test(x, g, b)
}
Run the code above in your browser using DataLab