Facultad de Ciencias Empresariales y Económicas



Curso: Estadística Aplicada II


Profesor: Dr. José Manuel Magallanes, PhD


Semana 1: Técnicas No Paramétricas1


Presentación:

En esta sesión presentaremos diversas pruebas no paramétricas, técnicas con menores exigencias a sus símiles paramétricas. Es decir, para probar una misma hipótesis tenemos técnicas alternativas, y la decisión de qué prueba elegir depende de si los datos originales cumplen o no los requisitos para tales pruebas.

Al final de la sesión se debe poder responder las siguientes preguntas:

  • ¿Qué pruebas no paramétricas veremos en el curso?
  • ¿Qué relación hay entre cada prueba paramétrica y no paramétrica?
  • ¿Cuáles son las ventajas de usar pruebas no paramétricas?
  • ¿Cuáles son las desventajas de usar pruebas no paramétricas?
  • ¿Cómo puedo usar la computadora para probar hipotesis con las técnicas no paramétricas?

Pruebas No Paramétricas:

En el curso veremos las siguientes pruebas:

Todas estas pruebas tienen su paralelo entra las técnicas paramétricas. En general, diversos programas permiten su cálculo, siendo la única diferencia, a veces, el formato con el que se deben ingresar los datos.

La principal ventaja de las pruebas no paramétricas es que son efectivas aun cuando el número de casos sea bajo en la muestra, aun cuando los datos no se distribuyan normalmente, aun cuando los grupos bajo análisis no tengan dispersión similar.

Sin embargo, cuando se busca exactitud, las pruebas parametricas son menos utilizadas; por otro lado, dado que pueden ser aplicadas en pequeñas muestras, hay que ser más cuidadoso respecto a la representatividad de los datos a usar.

Prueba de Wilcoxon

El nombre técnico de esta prueba es test de rangos con signo de Wilcoxon. La utilizamos cuando nuestra hipotesis usa una muestra para saber si un valor particular (valor de prueba) puede ser la mediana de una población.

Para ver cómo se aplica llevemos a cabo diversos pasos.

1. Abramos el archivo:

En este caso, el que contiene las edades de los trabajadores de una empresa:

Trabajadores=read.csv("https://s3-sa-east-1.amazonaws.com/ulima/edades.csv")

2. Veamos qué columnas hay:

colnames(Trabajadores)
## [1] "CodigoTrabajador" "Edad"

3. Veamos los datos de interés:

En este caso, las edades de los trabajadores.

Trabajadores$Edad
##  [1] 32 42 30 35 57 40 30 52 34 64 55 57 50 45 46 63

4. Exploremos los datos.

4.1. Estadisticos basicos:

summary(Trabajadores$Edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   30.00   34.75   45.50   45.75   55.50   64.00

Tenemos sólo 16 datos en la muestra, lo cual ya representa un problema para cualquier inferencia estadística: los estadísticos se han calculado con poca información, que sería insuficiente para estimar los parámetros (siguiendo la lógica paramétrica). Un problema detectado.

4.2. Grafiquemos:

Usemos un diagrama de cajas (boxplot) y un histograma:

#dividiendo la zona de gráficas, 2 filas y 1 columna:
par(mfrow=c(2,1))

hist(Trabajadores$Edad)
boxplot(Trabajadores$Edad,horizontal = TRUE)

En el boxplot notamos que hay aproximadamente la misma cantidad de datos a la derecha y a la izquierda de la mediana; ello es importante pues la prueba de Wilcoxon funciona mejor cuando ello sucede (simetría). Sin embargo, el histograma nos indica claramente que los datos están lejos de seguir una distribución normal. En ese sentido, si quisieramos probar si la media es igual a 48 (Hipotesis Nula), la prueba paramétrica t-Student no sería confiable. Segundo problema encontrado.

Probemos la hipótesis mencionada usando la t-Student de todas maneras:

resultado_T=t.test(Trabajadores$Edad,mu=48,alternative = "two.sided")

El p-valor lo vemos asi:

resultado_T$p.value
## [1] 0.4492955

Sabiendo ello, tomemos la decisión:

alfa=0.05  # puedes cambiar este valor

test=resultado_T$p.value>=alfa
text1='aceptar igualdad'
text2='rechazar igualdad'
ifelse(test,text1,text2)
## [1] "aceptar igualdad"

El problema es que la prueba t-Student no es confiable ante los problemas antes identificados.

5. Apliquemos prueba no-paramétrica.

resultado_W=wilcox.test(Trabajadores$Edad,mu=48,alternative = "two.sided", exact = F)

El p-valor lo vemos así:

resultado_W$p.value
## [1] 0.4848424

Sabiendo ello, tomemos la decisión:

alfa=0.05  # puedes cambiar este valor

test=resultado_W$p.value>=alfa
ifelse(test,text1,text2)
## [1] "aceptar igualdad"

NOTA: Si reemplazamos “two.sided” por “less”, la hipotesis nula es de una cola; y se estaría probando si el estadístico de la población es menor que el estadístico de prueba. La hipotesis donde el estadístico de la población es mayor que el estadístico de prueba requiere la opción “greater”.

6. Cómo hacerlo en MiniTab:

Paso 1: Luego de abrir archivo, busque la prueba:



Paso 2: Complete el diálogo:



Paso 3: Lea resultados y decida:



7. Cómo hacerlo en SPSS:

Paso 1: Luego de abrir archivo, escriba estos comandos:



Paso 2: Lea resultados y decida:

Volver


Prueba de Mann-Whitney

El nombre técnico de esta prueba es U de Mann-Whitney. La utilizamos cuando tenemos dos muestras, y nuestra hipotesis (nula) plantea que las medias de cada muestra informan que las medias en la población de estudio no difieren entre sí.

Para ver cómo se aplica llevemos a cabo diversos pasos.

1. Abramos el archivo:

En este caso, el que contiene las notas de alumnos de dos especialidades:

Alumnos=read.csv("https://s3-sa-east-1.amazonaws.com/ulima/notas.csv")

2. Veamos qué columnas hay:

colnames(Alumnos)
## [1] "codigoEstudiante" "nota"             "especialidad"

3. Veamos los datos de interés:

En este caso, veamos las notas y grupos.

Alumnos
##    codigoEstudiante nota especialidad
## 1                e1  100            1
## 2                e2  110            1
## 3                e3   80            1
## 4                e4   75            1
## 5                e5  130            1
## 6                e6   95            1
## 7                e7  105            1
## 8                e8  125            1
## 9                e9  140            1
## 10              e10   85            1
## 11              e11   92            2
## 12              e12  112            2
## 13              e13   83            2
## 14              e14  136            2
## 15              e15   65            2
## 16              e16   75            2
## 17              e17   89            2
## 18              e18  160            2
## 19              e19   90            2
## 20              e20  114            2

4. Exploremos los datos.

4.1. Estadisticos básicos:

tapply(Alumnos$nota,Alumnos$especialidad,summary)
## $`1`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    75.0    87.5   102.5   104.5   121.2   140.0 
## 
## $`2`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    65.0    84.5    91.0   101.6   113.5   160.0

Tenemos sólo 20 datos en la muestra, lo cual ya representa un problema para cualquier inferencia estadística: los estadísticos se han calculado con poca información, que sería insuficiente para estimar los parámetros (siguiendo la lógica paramétrica). Un problema detectado.

4.2. Grafiquemos:

Usemos un histograma:

par(mfrow=c(2,1))
hist(Alumnos$nota[Alumnos$especialidad==1])
hist(Alumnos$nota[Alumnos$especialidad==2])

Usemos ahora un boxplot:

boxplot(Alumnos$nota~Alumnos$especialidad,horizontal = F)

En los boxplots notamos que las medianas están algo alejadas; en esta situación, si quisieramos probar si la media de ambos grupos son iguales (Hipotesis Nula), la prueba t-Student podría ser una alternativa ante tal hipótesis, pero no sería confiable pues los histogramas no garantizan normalidad. Segundo problema encontrado. Así mismo, la dispersión es diferente entre los grupos: tercer problema encontrado.

Probemos la hipótesis mencionada usando la t-Student de todas maneras:

resultado_T=t.test(nota~especialidad,data=Alumnos)

El p-valor lo vemos asi:

resultado_T$p.value
## [1] 0.8044174

Sabiendo ello, tomemos la decisión:

alfa=0.10  # puedes cambiar este valor

test=resultado_T$p.value>=alfa
text1='aceptar igualdad'
text2='rechazar igualdad'
ifelse(test,text1,text2)
## [1] "aceptar igualdad"

El problema la prueba t-Student no es confiable ante los problemas antes identificados.

5. Apliquemos prueba no-paramétrica.

resultado_W=wilcox.test(nota~especialidad,data=Alumnos,exact = F)

El p-valor lo vemos asi:

resultado_W$p.value
## [1] 0.7053514

Sabiendo ello, tomemos la decisión:

alfa=0.10  # puedes cambiar este valor

test=resultado_W$p.value>=alfa
ifelse(test,text1,text2)
## [1] "aceptar igualdad"

6. Cómo hacerlo en MiniTab:

Los datos de este ejemplo dificultan que Minitab sea aplicado, pues requiere que cada grupo se escriba en una columna diferente. Puede ver los detalles en este link.



7. Cómo hacerlo en SPSS:

Paso 1: Luego de abrir archivo, escriba estos comandos en la ventana de sintaxis; luego, ejecute (use símbolo “play” en color verde):



Paso 2: Lea resultados y decida:

Volver


Prueba de Kruskall-Wallis

El nombre técnico de esta prueba es H de Kruskall-Wallis. La utilizamos cuando tenemos más de dos muestras, y nuestra hipotesis (nula) plantea que las medias de cada muestra informan que las medias en la población de estudio no difieren entre sí.

Para ver cómo se aplica llevemos a cabo diversos pasos.

1. Abramos el archivo:

En este caso, el que contiene las notas de trabajadores de una empresa que han sido capacitados por separado en tres grupos, luego de lo cual han sido evaluados. Veamos los resultados de la evaluación:

Empresa=read.csv("https://s3-sa-east-1.amazonaws.com/ulima/performance.csv")

2. Veamos qué columnas hay:

colnames(Empresa)
## [1] "CodigoTrabajador" "performance"      "grupo"

3. Veamos los datos de interés:

En este caso, veamos la evaluación y grupos.

Empresa
##    CodigoTrabajador performance grupo
## 1                t1          94     1
## 2                t2          87     1
## 3                t3          91     1
## 4                t4          74     1
## 5                t5          86     1
## 6                t6          97     1
## 7                t7          85     2
## 8                t8          82     2
## 9                t9          79     2
## 10              t10          84     2
## 11              t11          61     2
## 12              t12          72     2
## 13              t13          80     2
## 14              t14          89     3
## 15              t15          67     3
## 16              t16          72     3
## 17              t17          76     3
## 18              t18          69     3

4. Exploremos los datos.

4.1. Estadísticos básicos:

tapply(Empresa$performance,Empresa$grupo,summary)
## $`1`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   74.00   86.25   89.00   88.17   93.25   97.00 
## 
## $`2`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   61.00   75.50   80.00   77.57   83.00   85.00 
## 
## $`3`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    67.0    69.0    72.0    74.6    76.0    89.0

Tenemos sólo 18 datos en la muestra, lo cual ya representa un problema para cualquier inferencia estadística: los estadísticos se han calculado con poca información, que sería insuficiente para estimar los parámetros (siguiendo la lógica paramétrica). Un problema detectado.

4.2. Grafiquemos:

Usemos un histograma:

par(mfrow=c(3,1))
hist(Empresa$performance[Empresa$grupo==1])
hist(Empresa$performance[Empresa$grupo==2])
hist(Empresa$performance[Empresa$grupo==3])

Usemos ahora un boxplot:

boxplot(Empresa$performance~Empresa$grupo,horizontal = F)

En los boxplots notamos que las medianas sí están alejadas; en esta situación, si quisieramos probar si la media de ambos grupos son iguales (Hipotesis Nula), un ANOVA de un sentido (prueba F-Schnedecor) podría ser una alternativa ante tal hipótesis, pero no sería confiable pues los histogramas no garantizan normalidad. Segundo problema encontrado.

Nótese además que la dispersión no es la misma, otro problema para la prueba F.

Probemos la técnica paramétrica mencionada de todas maneras:

resultado_F=summary(aov(performance ~ grupo, data = Empresa))[[1]][[5]][1]

El p-valor lo vemos así:

resultado_F
## [1] 0.01479328

Sabiendo ello, tomemos la decisión:

alfa=0.05  # puedes cambiar este valor

test=resultado_F>=alfa
text1='aceptar igualdad'
text2='rechazar igualdad'
ifelse(test,text1,text2)
## [1] "rechazar igualdad"

El problema es que la prueba F-Schnedecor no es confiable ante los problemas antes identificados.

5. Apliquemos prueba no-paramétrica.

resultado_KW=kruskal.test(performance~grupo,data=Empresa)

El p-valor lo vemos asi:

resultado_KW$p.value
## [1] 0.03556028

Sabiendo ello, tomemos la decisión:

alfa=0.05  # puedes cambiar este valor

test=resultado_KW$p.value>=alfa
ifelse(test,text1,text2)
## [1] "rechazar igualdad"

Como tenemos tres grupos, y se nos sugiere rechazar la igualdad, aun no está claro que grupo difiere de que otro grupo. Para ello se hacen pruebas post-hoc:

pairwise.wilcox.test(Empresa$performance,Empresa$grupo,p.adj = "none",exact=F)
## 
##  Pairwise comparisons using Wilcoxon rank sum test 
## 
## data:  Empresa$performance and Empresa$grupo 
## 
##   1     2    
## 2 0.027 -    
## 3 0.055 0.464
## 
## P value adjustment method: none

Del resultado anterior, la mayor diferencia es probablemente la que existe entre el grupo 1 y 2. Les parece bien?

Podemos controlar el efecto de multiples comparaciones:

pairwise.wilcox.test(Empresa$performance,Empresa$grupo,p.adj = "fdr",exact=F)
## 
##  Pairwise comparisons using Wilcoxon rank sum test 
## 
## data:  Empresa$performance and Empresa$grupo 
## 
##   1     2    
## 2 0.080 -    
## 3 0.083 0.464
## 
## P value adjustment method: fdr

De aqui, no se haya diferencia entre los grupos! A que se debe, si por el boxplot podríamos intuir que hay diferencia al menos entre el grupo 1 y 3!

6. Cómo hacerlo en MiniTab:

Hacerlo en minitab es muy sencillo también. Puede ver los detalles en este video.



7. Cómo hacerlo en SPSS:

Paso 1: Luego de abrir archivo, escriba estos comandos; luego, ejecute:



Paso 2: Lea resultados y decida:

Volver


1 La clase está basada en el material coordinado y compartido con los demás profesores del curso: Grabiela Montes, Carlos Caycho, Carlos Jaimes, Carlos López, Víctor Merino, Kelva Llanos, Jaime Porras, Marivel Vega.