He creado un script breve de Monte Carlo para verificar cómo los valores z de las pruebas z se correlacionan cuando cambio diferentes parámetros.
Mi script es el siguiente. Tengo una "población" de distribución normal, con media 20 y desviación estándar 4. Luego tomo muestras aleatorias, calculo el valor z de la hipótesis de que la media es igual a 20 y el valor p correspondiente. Repito este "experimento" 1000 veces.
Espero que casi el 95% de los valores z sean, en valor absoluto, inferiores a 1.96 y por supuesto el 95% de los valores p sean mayores que 0.05.
El código es el siguiente:
population<- rnorm(10000, mean=20, sd=4)
my_pvalue_list<-0
my_z_list<-0
for (i in 1:1000){
n<-200
m_<- 20
sd_<-4
my_sample<- sample(population, n, replace= TRUE)
my_z <- (mean(my_sample)-m_)/((sd_)/sqrt(n))
my_pvalue<- 2*pnorm(-abs(my_z))
my_z_list[i]<-my_z
my_pvalue_list[i]<-my_pvalue
}
Luego ejecuto los siguientes códigos. También mis comentarios:
sum(abs(my_z_list)<1.96)
[1] 943
Esto es como se esperaba, cerca del 95%.
sum(my_pvalue_list>0.05)
[1] 943
Esto es igual al valor esperado según la fórmula anterior.
Pero cuando intento graficar el histograma de mi lista de valores p, obtengo una distribución uniforme.
No entiendo exactamente dónde está mi error. Esperaba que mi histograma tuviera una distribución sesgada a la izquierda, ya que la mayoría de los valores p están por encima de 0.05.
Gracias de antemano por la explicación.