Prueba de rango con signo de Wilcoxon en programación R

La prueba de rangos con signo de Wilcoxon es una prueba de hipótesis estadística no paramétrica que se utiliza para comparar dos muestras relacionadas, muestras emparejadas o mediciones repetidas en una sola muestra para estimar si los rangos de las medias de sus poblaciones difieren, por ejemplo, es una prueba de diferencias pareadas. Se puede aplicar como una alternativa a la prueba t de Student pareada, también conocida como «prueba t para pares emparejados» o «prueba t para muestras dependientes» cuando no se puede suponer que la distribución de la diferencia entre las medias de las dos muestras distribuirse normalmente. Una prueba de rango con signo de Wilcoxon es una prueba no paramétrica que se puede usar para determinar si se seleccionaron dos muestras dependientes de poblaciones que tienen la misma distribución.

Prueba de rango con signo de Wilcoxon en R

Esta prueba se puede dividir en dos partes: 

  • Prueba de rango con signo de Wilcoxon de una muestra
  • Prueba de Wilcoxon para muestras pareadas

Prueba de rango con signo de Wilcoxon de una muestra

La prueba de rango con signo de Wilcoxon de una muestra es una alternativa no paramétrica a una prueba t de una muestra cuando no se puede suponer que los datos se distribuyen normalmente. Se utiliza para determinar si la mediana de la muestra es igual a un valor estándar conocido, es decir, un valor teórico. En R Language se puede realizar esta prueba muy fácilmente.

Implementación en R

Para realizar una prueba de Wilcoxon de una muestra, R proporciona una función wilcox.test() que se puede usar de la siguiente manera:

Sintaxis: wilcox.test(x, mu = 0, alternativa = “dos.lados”)

Parámetros: 

  • x: un vector numérico que contiene sus valores de datos
  • mu: valor medio/mediano teórico. El valor predeterminado es 0, pero puede cambiarlo.
  • alternativa: la hipótesis alternativa. El valor permitido es uno de «dos lados» (predeterminado), «mayor» o «menor».

Ejemplo: aquí, usemos un conjunto de datos de ejemplo que contiene el peso de 10 conejos. ¿Sabemos si el peso medio del conejo difiere de 25 g? 

R

# R program to illustrate
# one-sample Wilcoxon signed-rank test
 
# The data set
set.seed(1234)
myData = data.frame(
name = paste0(rep("R_", 10), 1:10),
weight = round(rnorm(10, 30, 2), 1)
)
 
# Print the data
print(myData)
 
# One-sample wilcoxon test
result = wilcox.test(myData$weight, mu = 25)
 
# Printing the results
print(result)

Producción: 

    name weight
1   R_1   27.6
2   R_2   30.6
3   R_3   32.2
4   R_4   25.3
5   R_5   30.9
6   R_6   31.0
7   R_7   28.9
8   R_8   28.9
9   R_9   28.9
10 R_10   28.2

    Wilcoxon signed rank test with continuity correction

data:  myData$weight
V = 55, p-value = 0.005793
alternative hypothesis: true location is not equal to 25

En el resultado anterior, el valor p de la prueba es 0,005793, que es menor que el nivel de significación alfa = 0,05. Entonces podemos rechazar la hipótesis nula y concluir que el peso promedio del conejo es significativamente diferente de 25 g con un valor de p = 0.005793. 

Si se quiere comprobar si el peso medio del conejo es inferior a 25 g (prueba de una cola), el código será: 

R

# R program to illustrate
# one-sample Wilcoxon signed-rank test
 
# The data set
set.seed(1234)
myData = data.frame(
name = paste0(rep("R_", 10), 1:10),
weight = round(rnorm(10, 30, 2), 1)
)
 
# One-sample wilcoxon test
wilcox.test(myData$weight, mu = 25,
            alternative = "less")
 
# Printing the results
print(result)

Producción: 

Wilcoxon signed rank test with continuity correction

data:  myData$weight
V = 55, p-value = 0.9979
alternative hypothesis: true location is less than 25

O bien, si se quiere comprobar si el peso medio del conejo es superior a 25 g (prueba de una cola), el código será: 

R

# R program to illustrate
# one-sample Wilcoxon sign-rank test
 
# The data set
set.seed(1234)
myData = data.frame(
name = paste0(rep("R_", 10), 1:10),
weight = round(rnorm(10, 30, 2), 1)
)
 
# One-sample wilcoxon test
wilcox.test(myData$weight, mu = 25,
            alternative = "greater")
 
# Printing the results
print(result)

Producción: 

Wilcoxon signed rank test with continuity correction

data:  myData$weight
V = 55, p-value = 0.002897
alternative hypothesis: true location is greater than 25

Prueba de Wilcoxon para muestras apareadas en R

La prueba de Wilcoxon para muestras pareadas es una alternativa no paramétrica a la prueba t pareada utilizada para comparar datos pareados. Se utiliza cuando los datos no se distribuyen normalmente.

Implementación en R

Para realizar la prueba de Wilcoxon de muestras emparejadas, R proporciona una función wilcox.test() que se puede usar de la siguiente manera:

Sintaxis: wilcox.test(x, y, emparejado = VERDADERO, alternativo = “dos lados”)

Parámetros: 

  • x, y: vectores numéricos
  • emparejado: un valor lógico que especifica que queremos calcular una prueba de Wilcoxon emparejada
  • alternativa: la hipótesis alternativa. El valor permitido es uno de «dos lados» (predeterminado), «mayor» o «menor».

Ejemplo: Aquí, usemos un conjunto de datos de ejemplo, que contiene el peso de 10 conejos antes y después del tratamiento. Queremos saber si hay alguna diferencia significativa en los pesos medianos antes y después del tratamiento. 

R

# R program to illustrate
# Paired Samples Wilcoxon Test
 
# The data set
# Weight of the rabbit before treatment
before <-c(190.1, 190.9, 172.7, 213, 231.4,
        196.9, 172.2, 285.5, 225.2, 113.7)
 
# Weight of the rabbit after treatment
after <-c(392.9, 313.2, 345.1, 393, 434,
        227.9, 422, 383.9, 392.3, 352.2)
 
# Create a data frame
myData <- data.frame(
group = rep(c("before", "after"), each = 10),
weight = c(before, after)
)
 
# Print all data
print(myData)
 
# Paired Samples Wilcoxon Test
result = wilcox.test(before, after, paired = TRUE)
 
# Printing the results
print(result)

Producción: 

   group weight
1  before  190.1
2  before  190.9
3  before  172.7
4  before  213.0
5  before  231.4
6  before  196.9
7  before  172.2
8  before  285.5
9  before  225.2
10 before  113.7
11  after  392.9
12  after  313.2
13  after  345.1
14  after  393.0
15  after  434.0
16  after  227.9
17  after  422.0
18  after  383.9
19  after  392.3
20  after  352.2

    Wilcoxon signed rank test

data:  before and after
V = 0, p-value = 0.001953
alternative hypothesis: true location shift is not equal to 0

En el resultado anterior, el valor p de la prueba es 0,001953, que es menor que el nivel de significación alfa = 0,05. Podemos concluir que la mediana del peso de los ratones antes del tratamiento es significativamente diferente de la mediana del peso después del tratamiento con un valor de p = 0,001953.

Si se quiere probar si la mediana del peso antes del tratamiento es menor que la mediana del peso después del tratamiento, entonces el código será: 

R

# R program to illustrate
# Paired Samples Wilcoxon Test
 
# The data set
# Weight of the rabbit before treatment
before <-c(190.1, 190.9, 172.7, 213, 231.4,
        196.9, 172.2, 285.5, 225.2, 113.7)
 
# Weight of the rabbit after treatment
after <-c(392.9, 313.2, 345.1, 393, 434,
        227.9, 422, 383.9, 392.3, 352.2)
 
# Create a data frame
myData <- data.frame(
group = rep(c("before", "after"), each = 10),
weight = c(before, after)
)
 
# Paired Samples Wilcoxon Test
result = wilcox.test(weight ~ group,
                    data = myData,
                    paired = TRUE,
                    alternative = "less")
 
# Printing the results
print(result)

Producción: 

Wilcoxon signed rank test

data:  weight by group
V = 55, p-value = 1
alternative hypothesis: true location shift is less than 0

O bien, si se desea comprobar si la mediana del peso antes del tratamiento es mayor que la mediana del peso después del tratamiento, entonces el código será: 

R

# R program to illustrate
# Paired Samples Wilcoxon Test
 
# The data set
# Weight of the rabbit before treatment
before <-c(190.1, 190.9, 172.7, 213, 231.4,
        196.9, 172.2, 285.5, 225.2, 113.7)
 
# Weight of the rabbit after treatment
after <-c(392.9, 313.2, 345.1, 393, 434,
        227.9, 422, 383.9, 392.3, 352.2)
 
# Create a data frame
myData <- data.frame(
group = rep(c("before", "after"), each = 10),
weight = c(before, after)
)
 
# Paired Samples Wilcoxon Test
result = wilcox.test(weight ~ group,
                    data = myData,
                    paired = TRUE,
                    alternative = "greater")
 
# Printing the results
print(result)

Producción: 

Wilcoxon signed rank test

data:  weight by group
V = 55, p-value = 0.0009766
alternative hypothesis: true location shift is greater than 0

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *