El punto "1" está básicamente bien. Si la hipótesis nula del ANOVA es verdadera, el valor esperado de $p$ es $0.5$ y la respuesta de @BruceET ayuda a intuir por qué es así. "Sobre $1$ "es una glosa razonable para el valor esperado de $F$ bajo la hipótesis nula del ANOVA, aunque la cercanía a $1$ depende del valor de $d_2$ . Más concretamente, el valor esperado de $F$ bajo la hipótesis nula del ANOVA es $\frac{d_2}{d_2−2}$ ).
El punto "2" está bien.
El verdadero problema se produce en el punto "3". Como señala @nope, un $p$ -valor de $0.5$ debería esperarse a la mediana teórica ( $F^{−1}(0.5)$ ), y no el valor esperado de, $F$ .
Presento una discusión más, que será demasiado básica para algunos espectadores de este sitio, pero que fue útil para convencer a mi interlocutor de que, efectivamente, algo había fallado en el punto "3".
En las aplicaciones de ANOVA $d_1$ será $< d_2$ , ya que $d_1$ se calcula como $k-1$ , mientras que $d_2$ se calcula como $N-k$ , donde $N$ es el tamaño de la muestra y $k$ es el número de grupos.
Mientras que $d_1 < d_2$ la distribución real de $F$ s bajo la hipótesis nula contiene muchos $F$ -valores $< 1$ con la media $F$ -valor arrastrado hacia arriba a $≈1$ por los ocasionales grandes $F$ -valor. Así, la mediana $F$ producido bajo la hipótesis nula (la $F$ lo que concuerda con $p=0.5$ ) es $< 1$ .
A continuación he pegado un código R que genera un gráfico de la distribución empírica de muestras aleatorias $F$ -valores en un escenario ANOVA cuando hay $3$ grupos de $30$ sujetos (es decir $d_1=2,d_2=87)$ y la hipótesis nula es verdadera.
Es fácil ver que esto coincide con la distribución teórica de $F$ -valores.
number_of_groups <- 3
group_size <- 30
mean <- 100
sd <- 15
num_samples <- 30000
percentile <- 50 # 50 for median, 95 for critical F-value at α=0.05, etc
sampled_Fs <- vector(mode = "numeric", length = num_samples)
sampled_Ps <- vector(mode = "numeric", length = num_samples)
d1 <- number_of_groups - 1
d2 <- group_size * number_of_groups - number_of_groups
for(i in 1:num_samples) {
x = rnorm(number_of_groups*group_size, mean, sd)
g = rep(1:number_of_groups, each=group_size)
ANOVA_results <- aov(x ~ as.factor(g))
sampled_Fs[i] <- summary(ANOVA_results)[[1]][["F value"]][[1]]
sampled_Ps[i] <- summary(ANOVA_results)[[1]][["Pr(>F)"]][[1]]
}
sprintf("Under the null hypothesis the expected value of F(d1=%d,d2=%d) is %f", d1, d2, (d2/(d2-2)))
sprintf("Across %d random samples, the mean F(d1=%d,d2=%d) was %f", num_samples, d1, d2, mean(sampled_Fs))
sprintf("Across %d random samples, the mean p-value was %f", num_samples, mean(sampled_Ps))
sprintf("Under the null hypothesis the %fth percentile of the F-value (d1=%d, d2=%d) is expected to be %f", percentile, d1, d2, qf(percentile/100,d1,d2))
sprintf("Across %d random samples, the F-value (d1=%d, d2=%d) at the %fth percentile was %f", num_samples, d1, d2, percentile,quantile(sampled_Fs,percentile/100))
hist(sampled_Fs,breaks="FD",xlim=c(0, 10),xlab="F-value",col="skyblue2",main=paste(num_samples,"randomly sampled F-values under the\n ANOVA null hypothesis with d1 =", d1, "and d2 =",d2))
curve(df(x, d1, d2), from=0, to=10, xlab="F-value", ylab="Probability density",main=paste("PDF for F-distribution with d1 =", d1, "and d2 =",d2))