Contenido de este artículo
- 0
- 0
- 0
- 0
Se utiliza una prueba de Kruskal-Wallis para determinar si existe o no una diferencia estadísticamente significativa entre las medianas de tres o más grupos independientes.
Esta prueba es el equivalente no paramétrico del ANOVA de una vía y generalmente se usa cuando se viola el supuesto de normalidad.
La prueba de Kruskal-Wallis no asume normalidad en los datos y es mucho menos sensible a valores atípicos que el ANOVA de una vía.
Cómo realizar una prueba de Kruskal-Wallis en R
El siguiente ejemplo ilustra cómo realizar una prueba de Kruskal-Wallis en R.
Fondo
Un investigador quiere saber si tres medicamentos tienen o no efectos diferentes sobre el dolor de espalda, por lo que recluta a 30 personas que experimentan un dolor de espalda similar y los divide al azar en tres grupos para recibir el medicamento A, el medicamento B o el medicamento C.
Después de un mes de tomar el medicamento, el investigador le pide a cada individuo que califique su dolor de espalda en una escala de 1 a 100, donde 100 indica el dolor más severo.
El investigador realiza una prueba de Kruskal-Wallis usando un nivel de significancia de .05 para determinar si existe una diferencia estadísticamente significativa entre las calificaciones medianas de dolor de espalda en estos tres grupos.
El siguiente código crea el marco de datos con el que trabajaremos:
#Haga que este ejemplo sea reproducible set.seed (0) #create marco de datos data <- data.frame (fármaco = rep (c ("A", "B", "C"), cada uno = 10), dolor = c (runif (10, 40, 60), runif (10, 45, 65), runif (10, 55, 70))) #ver las primeras seis filas del marco de datos cabeza (datos) # dolor por drogas # 1 A 57.93394 # 2 A 45.31017 # 3 A 47.44248 # 4 A 51.45707 # 5 A 58.16416 N.º 6 A 44.03364
La primera columna en el marco de datos muestra el medicamento que la persona tomó durante un mes y la segunda columna muestra el dolor de espalda informado después de un mes, en una escala de 0 a 100.
Explorando los datos
Antes de realizar la prueba de Kruskal-Wallis, podemos obtener una mejor comprensión de los datos al encontrar la media y la desviación estándar del dolor de espalda para cada fármaco utilizando el paquete dplyr :
#cargar paquete dplyr biblioteca (dplyr) # encontrar la desviación estándar y media del dolor de espalda informado para cada grupo de fármacos datos%>% group_by (fármaco)%>% resumir (media = media (dolor), sd = sd (dolor)) # A tibble: 3 x 3 # droga significa sd # # 1 A 52,7 5,60 # 2 B 54,7 5,99 # 3 C 61,9 4,88
También podemos crear un diagrama de caja para cada uno de los tres medicamentos para visualizar la distribución del dolor de espalda para cada grupo:
#create boxplots boxplot (dolor ~ fármaco, datos = datos, main = "Dolor informado por fármaco", xlab = "Medicamento", ylab = "Dolor informado", col = "azul acero", border = "negro")
Solo a partir de estos diagramas de caja podemos ver que el dolor medio reportado es más alto para los participantes que usaron el fármaco C.
También podemos ver que la desviación estándar (la «longitud» de la gráfica de caja) para el dolor informado es ligeramente mayor entre los participantes que usaron el fármaco A o el fármaco B en comparación con los que utilizaron el fármaco C.
A continuación, realizaremos la prueba de Kruskal-Wallis para ver si estas diferencias visuales son realmente estadísticamente significativas.
Realización de la prueba de Kruskal-Wallis
La sintaxis general para realizar una prueba de Kruskal-Wallis en R es la siguiente:
kruskal.test (variable de respuesta ~ variable de predicción, datos = conjunto de datos)
En nuestro ejemplo, podemos utilizar el siguiente código para realizar la prueba de Kruskal-Wallist, utilizando el dolor como variable de respuesta y el fármaco como variable predictora:
kruskal.test (dolor ~ fármaco, datos = datos) # Prueba de suma de rangos de Kruskal-Wallis # #data: dolor por drogas # Chi-cuadrado de Kruskal-Wallis = 11,105, gl = 2, valor p = 0,003879
A partir de la salida, podemos ver que el estadístico de prueba de chi-cuadrado es 11,105 y el valor p correspondiente es 0,003879 . Dado que este valor p es menor que el nivel de significación de 0,05, esto significa que hay una diferencia estadísticamente significativa entre los niveles de dolor informados entre los tres fármacos.
Analizar las diferencias de grupo
Una vez que hayamos identificado que existe una diferencia estadísticamente significativa entre los niveles de dolor informados para los tres fármacos, podemos realizar una prueba post hoc para determinar exactamente qué grupos de tratamiento difieren entre sí.
Para nuestra prueba post hoc, usaremos la función pairwise.wilcox.test () para calcular comparaciones por pares entre los grupos usando la siguiente sintaxis:
pairwise.wilcox.test (variable de respuesta ~ variable de predicción, método p.adjust)
El siguiente código ilustra cómo aplicar esta función a nuestros datos:
pairwise.wilcox.test (datos $ dolor, datos $ fármaco, p.adjust.method = "BH") # Comparaciones por pares usando la prueba de suma de rangos de Wilcoxon # #data: datos $ dolor y datos $ fármaco # # AB #B 0.3527 - #C 0,0032 0,0220 # # Método de ajuste del valor P: BH
Las comparaciones por pares muestran que la diferencia entre los niveles de dolor informados para el fármaco A y el fármaco C es estadísticamente significativa (valor p = 0,0032 ) y la diferencia entre los niveles de dolor informados para el fármaco B y el fármaco C es estadísticamente significativa (valor p = .0220 ).
Estos resultados se alinean con lo que vimos en los diagramas de caja anteriormente. Vimos que los niveles de dolor informados para los participantes que tomaban el medicamento C eran notablemente más altos en comparación con el medicamento A y el medicamento B, y que solo había una diferencia sutil entre el medicamento A y el medicamento B.
El código completo
Puede encontrar el código completo utilizado en este análisis aquí:
#Haga que este ejemplo sea reproducible set.seed (0) #create data frame data <- data.frame (fármaco = rep (c ("A", "B", "C"), cada uno = 10), dolor = c (runif (10, 40, 60), runif (10, 45, 65), runif (10, 55, 70))) #ver las primeras seis filas del marco de datos cabeza (datos) #cargar biblioteca dplyr biblioteca (dplyr) # encontrar la desviación estándar y media del dolor de espalda informado para cada grupo de fármacos datos%>% group_by (fármaco)%>% resumir (media = media (dolor), sd = sd (dolor)) #visualizar diagrama de caja de datos (dolor ~ fármaco, datos = datos, main = "Dolor informado por fármaco", xlab = "Medicamento", ylab = "Dolor informado", col = "azul acero", border = "negro") # realizar la prueba de Kruskal-Wallis kruskal.test (dolor ~ fármaco, datos = datos) # realizar una prueba post-hoc para comparaciones por pares pairwise.wilcox.test (datos $ dolor, datos $ fármaco, p.adjust.method = "BH")
Recursos adicionales
Prueba de Kruskal-Wallis: definición, fórmula y ejemplo
Calculadora de la prueba de Kruskal-Wallis
Cómo verificar los supuestos de ANOVA
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: