DISTRIBUCIÓN DE LOS p-VALORES PARA DISTINTAS HIPÓTESIS ALTERNATIVAS - UNA SIMULACIÓN EN R

Vamos a ver la distribución que tienen los p-valores cuando la hipótesis alternativa, u1, se aleja de la hipótesis nula.
 

Sería lógico esperar que, conforme el valor verdadero de la media se aleja de nuestra hipótesis, cada vez sea más y más frecuente obtener muestras "raras" y, por lo tanto, p-valores pequeños. 

Para simular este problema, tomaremos un caso sencillo, donde la H0 es que los datos siguen una distribución N(u0,σ) y la alternativa que la distribución es N(u1, σ). Tomaremos muestras de tamaño n, en principio n=100, y veremos qué sucede con los p-valores.

 

 

DISTRIBUCIÓN DE LOS p-VALORES PARA DISTINTAS HIPÓTESIS ALTERNATIVAS

Introducción

Vamos a ver la distribución que tienen los p-valores cuando la hipótesis alternativa, u1, se aleja de la hipótesis nula.

Sería lógico esperar que, conforme el valor verdadero de la media se aleja de nuestra hipótesis, cada vez sea más y más frecuente obtener muestras “raras” y, por lo tanto, p-valores pequeños.

Para simularlo, tomaremos un caso sencillo, donde la H0 es que los datos siguen una distribución N(u0,sigma) y la alternativa que la distribución es N(u1, sigma). Tomaremos muestras de tamaño n, en principio n=100, y veremos qué sucede con los p-valores.

Algunos parámetros que necesitamos definir:

n<-100 # sample size
n_samples<-1000 # number of samples
u0<-0
sigma<-1
u1_ini<-1   # valor inicial de u1
u1_fin<-10 # valor final de u1

Distribución de los p-valores para u1=0.1

Generamos n_samples muestras al azar de tamaño n para u1 fijo

u1<-0.1
media<-desv_tipica<-rep(0,n_samples)


# tomamos n_samples muestras y nos quedamos con las medias y las desv tipica
for(i in 1:n_samples) 
{
  muestra<-rnorm(n,u1,sigma)
  media[i]<-mean(muestra)
  desv_tipica[i]<-sd(muestra)
  }

# las muestras deberían tener una media aprox u0=1 y desv tipica sigma/sqrt(n)
head(media)
## [1]  0.06000620  0.05550392  0.06536650  0.18863446  0.03056747 -0.05663106
head(desv_tipica)
## [1] 1.0869652 1.0048222 0.8863949 0.9962967 0.9612285 0.9298373
cat("media teorica=",u1,"media de las muestras=", mean(media))
## media teorica= 0.1 media de las muestras= 0.1017669
cat("sd teorica=",sigma/sqrt(n),"sd de las muestras=", sd(media))
## sd teorica= 0.1 sd de las muestras= 0.09978891

Y calculamos los p-valores para cada uno de los elementos de la muestra. Primero calculamos los z-scores de los valores muestrales obtenidos, dada la H0:

z<- (media-u0) / (desv_tipica/sqrt(n))
head(z)
## [1]  0.5520527  0.5523755  0.7374421  1.8933564  0.3180042 -0.6090426

Finalmente los p-valores asociados, que debemos calcularlos bajo H0

pvalues<-2*(1-pnorm(abs(z)))
summary(pvalues)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## 0.0000039 0.0880345 0.3210945 0.3807552 0.6426515 0.9996046

Y aquí tenemos un histograma con los p-valores obtenidos. Vemos que los p-valores se empiezan a agrupar en torno a cero, en una distribución marcadamente asimétrica a derecha.

hist(pvalues)

Distribución de los p-valores para distintos u1

Finalmente, repetimos todo el proceso pero para distintos valores de u1 y crearemos los gráficos adecuados para visualizarlo todo junto.

U1<-seq(from=0,to=.5,by=.05)

for (u1 in U1) 
{
        
      media<-desv_tipica<-rep(0,n_samples)
      
      # tomamos n_samples muestras y nos quedamos con las medias y las desv tipica
      for(i in 1:n_samples) 
      {
        muestra<-rnorm(n,u1,sigma)
        media[i]<-mean(muestra)
        desv_tipica[i]<-sd(muestra)
        }

      z<- (media-u0) / (desv_tipica/sqrt(n)) #z-scores 
      pvalues<-2*pnorm(abs(z),lower.tail=FALSE) #p-valores 
 
titulo<-paste("pValores para u1=",u1)      
hist(pvalues, main=titulo, col="red")
      }

Resulta curioso observar como, conforme u1 se va alejando de u0, es, tal y como decíamos, más y más frecuente obtener muestras “raras” de acuerdo con la errónea hipótesis (nula). Y es lógico que así sea.

Comentarios

Entradas populares de este blog

UNA BREVE EXPLICACIÓN DE LA LEY DE LAS ESPERANZAS ITERADAS

UN EJEMPLO DETALLADO DE PRE-PROCESAMIENTO EN R - IMPUTACIÓN DE DATOS FALTANTES

Un mundo de sucesos imposibles - El "tongo" de la Bonoloto.