Documente Academic
Documente Profesional
Documente Cultură
Uno de los métodos gráficos que podemos usar para verificar si una variable sigue o no una
distribución normal son los histogramas. Como sabemos, la distribución normal es simétrica y tiene
forma de campana, por lo tanto podemos usar un histograma de la distribución de frecuencias para ver
si los datos presentan o no esta forma. Sin embargo, uno no debe esperar una forma de campana
perfecta, pues algunas veces a pesar de que la muestra haya sido tomada de una población con
distribución normal esta forma no se observa.
Veamos un ejemplo:
Creemos seis vectores (a-f) que contengan una muestra al azar de números provenientes de una
distribución normal con media 0 y desviación estándar 1. Además, vamos a escoger diferentes
tamaños de muestra y una réplica para cada tamaño:
a=rnorm(10,0,1)
b=rnorm(10,0,1)
c=rnorm(20,0,1)
d=rnorm(20,0,1)
e=rnorm(50,0,1)
f=rnorm(50,0,1)
par(mfrow=c(3,2))
hist(a,breaks=8,col="royalblue2",main="n=10")
hist(b,breaks=8,col="royalblue2",main="n=10")
hist(c,breaks=8,col="royalblue2",main="n=20")
hist(d,breaks=8,col="royalblue2",main="n=20")
hist(e,breaks=8,col="royalblue2",main="n=50")
hist(f,breaks=8,col="royalblue2",main="n=50")
n=10 n=10
2.0
3.0
Frequency
Frequency
1.0
1.5
0.0
0.0
-1.5 -1.0 -0.5 0.0 0.5 -2.0 -1.0 0.0 0.5 1.0 1.5
a b
n=20 n=20
0 1 2 3 4
6
Frequency
Frequency
4
2
0
-3 -2 -1 0 1 2 -2 -1 0 1 2
c d
n=50 n=50
12
12
Frequency
Frequency
8
8
4
4
0
-2 -1 0 1 2 -2 -1 0 1 2
e f
Como podemos observar, a pesar de que todas las muestras provienen de una distribución normal,
no siempre observamos la forma de campana. Sin embrago, a medida que aumentamos el tamaño de la
muestra podemos aproximarnos cada vez más a esta forma. Es importante aclarar que lo que buscamos
no es la forma de campana, sino una desviación muy extrema de este patrón.
La otra forma gráfica de ver si una variable es normal son las gráficas de comparación de cuantiles,
también llamados “Q-Q plots” (Normal quantile plots) o “Normal Q-Q plots”. Estos diagramas
comparan cada una de las observaciones con el cuantil en el cual deberían encontrarse según la
desviación estándar del conjunto de datos. En ‘R’ el comando que usaremos para hacer este tipo de
gráficas es qqplot(). Para ver un ejemplo, usemos los vectores que ya creamos:
par(mfrow=c(3,2))
qqnorm(a,col="royalblue2",main="n=10")
qqnorm(b,col="royalblue2",main="n=10")
qqnorm(c,col="royalblue2",main="n=20")
qqnorm(d,col="royalblue2",main="n=20")
qqnorm(e,col="royalblue2",main="n=50")
qqnorm(f,col="royalblue2",main="n=50")
n=10 n=10
Sample Quantiles
Sample Quantiles
1.5
0 1
0.0
-2
-1.5
-1.5 -0.5 0.0 0.5 1.0 1.5 -1.5 -0.5 0.0 0.5 1.0 1.5
n=20 n=20
Sample Quantiles
Sample Quantiles
1.5
-1 0 1 2
-1.5 0.0
-2 -1 0 1 2 -2 -1 0 1 2
n=50 n=50
Sample Quantiles
Sample Quantiles
2
1
0
-1
-2
-3
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
exp=rexp(50,1)
qqnorm(exp,col="royalblue2")
1.5
1.0
0.5
0.0
-2 -1 0 1 2
Theoretical Quantiles
Otra opción que tenemos, es hacer una prueba formal con la cual podemos probar nuestra hipótesis
de normalidad. La prueba que nos permite hacer esto es la prueba de Shapiro-Wilk cuyo comando en
‘R’ es shapiro.test() en el que debemos especificar el conjunto de datos al cual queremos
aplicar la prueba. Primero, como siempre debemos plantear las hipótesis:
H0 Los datos fueron muestreados de una población que tiene una distribución normal.
Los datos siguen una distribución normal.
Ha Los datos fueron muestreados de una población que no tiene una distribución normal.
Los datos no siguen una distribución normal.
Si probamos la normalidad para una muestra que sabemos que es normal (vector “a”) tenemos que:
shapiro.test(a)
data: a
W = 0.9625, p-value = 0.8142
Como podemos ver, nuestro Valor-P > 0.05, por lo tanto no rechazamos la hipótesis nula y
concluimos que nuestros datos siguen una distribución normal.
Sí por el contrario aplicamos la prueba a los datos que fueron obtenidos a partir de la distribución
exponencial (vector “exp”) tenemos que:
shapiro.test(exp)
data: exp
W = 0.8094, p-value = 1.45e-06
En este caso, como era de esperarse el Valor-P < 0.05, por lo tanto rechazamos la hipótesis nula y
concluimos que nuestros datos no siguen una distribución normal.
Ahora bien, cuando ya hemos probado que los datos no son normales tenemos tres opciones como
hemos visto anteriormente:
En algunas situaciones los supuestos de las pruebas se pueden ignorar y el resultado va a depender
de que tan robusta sea la prueba a estos supuestos. Como vimos con el ejercicio de simulación de la
clase pasada, una prueba estadística es robusta cuando “la respuesta” no es sensible a la violación de
los supuestos.
Tal como lo probamos, la prueba t es bastante robusta y por lo tanto podremos aplicarla incluso
cuando nuestra variable de análisis no sigue una distribución normal. Sin embrago, podemos disminuir
el error con tamaños muestréales grandes, en los que la distribución de frecuencias comienza a
parecerse a una distribución normal.
No hay un tamaño de muestra establecido a partir del cual se pueda ignorar este supuesto. Lo que
se puede hacer es observar la similaridad en la forma de las dos distribuciones que estemos
comparando. Entre más parecidas sean las distribuciones, incluso cuando se desvían un poco de la
distribución normal, vamos a tener un menor error en la respuesta de la prueba. Mientras que si las dos
distribuciones tienen una forma muy diferente, la prueba empieza a ser mucho más sensible.
Otra de las opciones que tenemos cuando nuestros datos no siguen una distribución normal es usar
algún tipo de transformación, con el fin de hacerlos normales y así poder usar las pruebas paramétricas
que ya hemos aprendido. Existen diferentes tipos de transformaciones pero algunas de las más
comunes son:
En la línea de comandos de ‘R’ hubiéramos podido usar el comando ‘log’ para crear la nueva
variable con la transformación, de la siguiente manera:
Datos$Trans1<-log(Datos$Sp1)
> Datos
Sp1 Sp2 Sp3 Trans1
1 0.25 0.47 1.25 -1.3862944
2 0.22 0.44 2.26 -1.5141277
3 0.19 0.42 1.48 -1.6607312
4 0.24 0.68 1.11 -1.4271164
5 1.80 0.47 1.08 0.5877867
6 0.27 0.98 0.99 -1.3093333
7 0.25 1.55 1.15 -1.3862944
8 0.18 2.47 0.88 -1.7147984
9 0.10 1.22 1.07 -2.3025851
Los comandos que usamos en ‘R’ para hacer las transformaciones vistas son:
Logarítmica log
Arcoseno asin
Raíz cuadrada sqrt
Una vez realizadas las transformaciones debemos probar de nuevo la normalidad para las nuevas
variables calculadas. No olviden que lo que hacemos con la transformación es buscar que nuestra
variable se ajuste a una distribución normal y así poder aplicar una prueba paramétrica.
Sí después de realizar todas las transformaciones no logramos que nuestra variable se ajuste a una
distribución normal y por lo tanto no cumplimos con los supuestos para una prueba paramétrica, la
última opción es realizar una prueba no paramétrica. Las pruebas no paramétricas son métodos que
permiten hacer inferencias y probar hipótesis que no asumen normalidad, sin embargo deben ser
consideradas como la última opción debido a que las pruebas paramétricas son siempre más robustas.
La prueba no paramétrica que nos permite comparar medias es la prueba de Wilcoxon Signed
Rank. Al igual que la prueba paramétrica (prueba t), esta prueba será diferente si tenemos datos
pareados o independientes.
Como ejemplo, supongamos que queremos probar si las concentraciones de epinefrina son iguales
en la especie 1 y la especie 2. En este caso
Recuerden que se debe probar la normalidad para las dos muestras por separado y en el caso de que
haya que hacer transformaciones, se debe aplicar la misma transformación en ambas muestras.
Recuerden que el diseño independiente quiere decir que las muestras son independientes entre sí y
por lo tanto es muy importante que cada variable este en una columna del marco de datos. Es decir que
hay que hacer modificaciones en la tabla de datos que teníamos de modo que quede de la siguiente
forma:
Concentración Especie
0.25 sp1
0.22 sp1
0.19 sp1
0.24 sp1
1.8 sp1
0.27 sp1
0.25 sp1
0.18 sp1
0.1 sp1
0.47 sp2
0.44 sp2
0.42 sp2
0.68 sp2
0.47 sp2
0.98 sp2
1.55 sp2
2.47 sp2
1.22 sp2
wilcox.test(data=datos2,concentracion~especie,
alternative="two.sided")
Como el Valor-P < 0.05 rechazamos nuestra hipótesis nula y podemos decir que hay diferencias
en la concentración de epinefrina entre las especies 1 y 2.
Si por el contrario, lo que queremos probar es que la concentración de los individuos de una misma
especie cambia a medida que estos van madurando “Datos_normalidad3.txt” vamos a tener un diseño
pareado ya que cada variable fue medida en el mismo individuo.
Recuerde que si estuviéramos siguiendo todos los pasos en ese ejemplo deberíamos probar
normalidad. En el caso de un diseño pareado, la normalidad se prueba para la diferencia de las dos
muestras. Sin embrago, las transformaciones se hacen sobre las variables originales y para el comando
en ‘R’ se introducen las dos variables por separado.
Como se pueden dar cuenta en este caso la tabla es diferente, pues cada medida es una variable
diferente. Nuestras hipótesis son:
wilcox.test(Datos_pareada$juveniles,Datos_pareda$adultos,paired=T)
Como el Valor-P < 0.05 rechazamos la hipótesis nula y podemos decir que la concentración de
epinefrina en esta especie cambia en los diferentes estadios de la vida del individuo.