Hay muchos casos en el análisis de datos en los que querrá comparar las medias de dos poblaciones o muestras y la técnica que debe usar depende del tipo de datos que tenga y cómo se agrupan esos datos. La comparación de pruebas de medios ayuda a determinar si sus grupos tienen medios similares. Por lo tanto, este artículo contiene pruebas estadísticas para usar en la comparación de medias en la programación R. Estas pruebas incluyen:
Comparación de medias en programación R
Entonces, como hemos discutido antes, se utilizan varias técnicas según el tipo de datos que tenemos y cómo se agrupan los datos. Entonces, analicemos las técnicas una por una según los diferentes tipos de datos.
Comparación de las medias de los datos de una muestra
Existen principalmente dos técnicas que se utilizan para comparar la media de una muestra con una media estándar conocida. Estas dos técnicas son:
- Prueba T de una muestra
- Prueba de Wilcoxon de una muestra
Prueba T de una muestra
La prueba T para una muestra se usa para probar la diferencia estadística entre la media de una muestra y un valor conocido o supuesto/hipotetizado de la media en la población.
Implementación en R:
Para realizar una prueba t de una muestra en R, use la función t.test(). La sintaxis de la función se da a continuación:
Sintaxis: t.test(x, mu = 0)
Parámetros:
- x: el nombre de la variable de interés
- mu: conjunto igual a la media especificada por la hipótesis nula
Ejemplo:
R
# R program to illustrate # One sample t-test set.seed(0) sweetSold <- c(rnorm(50, mean = 140, sd = 5)) # Ho: mu = 150 # Using the t.test() result = t.test(sweetSold, mu = 150) # Print the result print(result)
Producción:
One Sample t-test data: sweetSold t = -15.249, df = 49, p-value < 2.2e-16 alternative hypothesis: true mean is not equal to 150 95 percent confidence interval: 138.8176 141.4217 sample estimates: mean of x 140.1197
Prueba 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.
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.
Comparación de las medias de muestras pareadas
Existen principalmente dos técnicas que se utilizan para comparar las medias de muestras pareadas. Estas dos técnicas son:
- Prueba T de muestra pareada
- Prueba de Wilcoxon para muestras pareadas
Prueba T de muestra pareada
Este es un procedimiento estadístico que se utiliza para determinar si la diferencia media entre dos conjuntos de observaciones es cero. En una prueba t de muestra pareada, cada sujeto se mide dos veces, lo que da como resultado pares de observaciones.
Implementación en R:
Para realizar una prueba t de una muestra en R, use la función t.test(). La sintaxis de la función se proporciona a continuación.
Sintaxis: t.test(x, y, emparejado =VERDADERO)
Parámetros:
- x, y: vectores numéricos
- emparejado: un valor lógico que especifica que queremos calcular una prueba t emparejada
Ejemplo:
R
# R program to illustrate # Paired sample t-test set.seed(0) # Taking two numeric vectors shopOne <- rnorm(50, mean = 140, sd = 4.5) shopTwo <- rnorm(50, mean = 150, sd = 4) # Using t.tset() result = t.test(shopOne, shopTwo, var.equal = TRUE) # Print the result print(result)
Producción:
Prueba t de dos muestras
datos: tienda uno y tienda dos
t = -13,158, gl = 98, valor p < 2,2e-16
hipótesis alternativa: la verdadera diferencia de medias no es igual a 0
Intervalo de confianza del 95 por ciento:
-11.482807 -8.473061
estimaciones de muestra:
media de x media de y
140.1077 150.0856
Prueba de Wilcoxon para muestras pareadas
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.
Comparación de las medias de más de dos grupos
Existen principalmente dos técnicas que se utilizan para comparar la media de una muestra con una media estándar conocida. Estas dos técnicas son:
- Análisis de Varianza (ANOVA)
- ANOVA de una vía
- ANOVA de dos vías
- Prueba MANOVA
- Prueba de Kruskal-Wallis
ANOVA de una vía
El análisis de varianza unidireccional (ANOVA), también conocido como ANOVA de un factor, es una extensión de la prueba t de dos muestras independientes para comparar medias en una situación en la que hay más de dos grupos. En ANOVA unidireccional, los datos se organizan en varios grupos basados en una única variable de agrupación.
Implementación en R:
Para realizar el análisis de varianza unidireccional (ANOVA) en R, utilice la función aov(). La función summary.aov() se utiliza para resumir el análisis del modelo de varianza. La sintaxis de la función se proporciona a continuación.
Sintaxis: aov(fórmula, datos = NULL)
Parámetros:
- fórmula: una fórmula que especifica el modelo.
- datos: Un marco de datos en el que se encontrarán las variables especificadas en la fórmula
Ejemplo:
La prueba ANOVA de una vía se realiza utilizando el conjunto de datos mtcars que viene preinstalado con el paquete dplyr entre el atributo disp, un atributo continuo, y el atributo gear, un atributo categórico.
R
# R program to illustrate # one way ANOVA test # Loading the package library(dplyr) # Calculate test statistics using aov function mtcars_aov <- aov(mtcars $ disp ~ factor(mtcars $ gear)) print(summary(mtcars_aov))
Producción:
Valor Df Sum Sq Media Sq F Pr(>F)
factor(mtcars$gear) 2 280221 140110 20.73 2.56e-06 ***
Residuales 29 195964 6757
—
signif. códigos: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ‘ 1
El resumen muestra que el atributo de engranaje es muy importante para el desplazamiento (tres estrellas lo indican). Además, el valor de P es inferior a 0,05, por lo que prueba que el engranaje es importante para el desplazamiento, es decir, está relacionado entre sí, y rechazamos la hipótesis nula.
ANOVA de dos vías
La prueba ANOVA de dos vías se usa para evaluar simultáneamente el efecto de dos variables de agrupación (A y B) en una variable de respuesta. Toma en consideración dos grupos categóricos.
Implementación en R:
Para realizar el análisis de varianza bidireccional (ANOVA) en R, utilice también la función aov(). La función summary.aov() se utiliza para resumir el modelo de análisis de varianza. La sintaxis de la función se proporciona a continuación.
Sintaxis: aov(fórmula, datos = NULL)
Parámetros:
- fórmula: una fórmula que especifica el modelo.
- datos: Un marco de datos en el que se encontrarán las variables especificadas en la fórmula
Ejemplo: la prueba ANOVA bidireccional se realiza utilizando el conjunto de datos mtcars que viene preinstalado con el paquete dplyr entre el atributo disp, un atributo continuo y el atributo gear, un atributo categórico, un atributo am, un atributo categórico.
R
# R program to illustrate # two way ANOVA test # Loading the package library(dplyr) # Calculate test statistics using aov function mtcars_aov2 = aov(mtcars $ disp ~ factor(mtcars $ gear) * factor(mtcars $ am)) print(summary(mtcars_aov2))
Producción:
Valor Df Sum Sq Media Sq F Pr(>F)
factor(mtcars$gear) 2 280221 140110 20.695 3.03e-06 ***
factor(mtcars$am) 1 6399 6399 0.945 0.339
Residuales 28 189565 6770
—
signif. códigos: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ‘ 1
El resumen muestra que el atributo del arte es muy significativo para el desplazamiento (tres estrellas lo indican) y el atributo am no es muy significativo para el desplazamiento. El valor P del engranaje es inferior a 0,05, por lo que demuestra que el engranaje es importante para el desplazamiento, es decir, está relacionado entre sí. El valor P de am es mayor que 0,05, am no es significativo para el desplazamiento, es decir, no está relacionado entre sí.
Prueba MANOVA
El análisis de varianza multivariado (MANOVA) es simplemente un ANOVA (Análisis de varianza) con varias variables dependientes. Es una continuación del ANOVA. En un ANOVA, probamos las diferencias estadísticas en una variable dependiente continua por una variable de agrupación independiente. El MANOVA continúa este análisis tomando múltiples variables dependientes continuas y las agrupa colectivamente en una variable compuesta lineal ponderada. El MANOVA compara si la combinación recién creada varía o no según los diferentes niveles, o grupos, de la variable independiente.
Implementación en R:
R proporciona un método manova() para realizar la prueba MANOVA. La clase “manova” difiere de la clase “aov” en la selección de un método de resumen diferente. La función manova() llama a aov y luego agrega la clase «manova» al objeto de resultado para cada estrato.
Sintaxis: manova(fórmula, datos = NULL, proyecciones = FALSO, qr = VERDADERO, contrastes = NULL, …)
Parámetros:
- fórmula: una fórmula que especifica el modelo.
- datos: Un marco de datos en el que se encontrarán las variables especificadas en la fórmula. Si faltan, las variables se buscan de la manera estándar.
- proyecciones: bandera lógica
- qr: bandera lógica
- contrastes: una lista de contrastes que se utilizará para algunos de los factores de la fórmula.
…: Argumentos que se pasarán a lm, como subconjunto o na.action
Ejemplo: Para realizar la prueba MANOVA en R, tomemos el conjunto de datos del iris.
R
# R program to illustrate # MANOVA test # Import required library library(dplyr) # Taking iris data set myData = iris # Show a random sample set.seed(1234) dplyr::sample_n(myData, 10)
Producción:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.5 2.5 4.0 1.3 versicolor 2 5.6 2.5 3.9 1.1 versicolor 3 6.0 2.9 4.5 1.5 versicolor 4 6.4 3.2 5.3 2.3 virginica 5 4.3 3.0 1.1 0.1 setosa 6 7.2 3.2 6.0 1.8 virginica 7 5.9 3.0 4.2 1.5 versicolor 8 4.6 3.1 1.5 0.2 setosa 9 7.9 3.8 6.4 2.0 virginica 10 5.1 3.4 1.5 0.2 setosa
Para saber si hay alguna diferencia importante, en la longitud de sépalos y pétalos, entre las diferentes especies, realice la prueba MANOVA. Por lo tanto, la función manova() se puede usar de la siguiente manera.
R
# Taking two dependent variable sepal = iris$Sepal.Length petal = iris$Petal.Length # MANOVA test result = manova(cbind(Sepal.Length, Petal.Length) ~ Species, data = iris) summary(result)
Producción:
Df Pillai aprox F num Df den Df Pr(>F)
Especie 2 0,9885 71,829 4 294 < 2,2e-16 ***
Residuos 147
—
signif. códigos: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ‘ 1
Del resultado anterior, se puede ver que las dos variables son significativamente diferentes entre las especies.
Prueba de Kruskal-Wallis
La prueba de Kruskal-Wallis es una prueba basada en rangos que es similar a la prueba U de Mann-Whitney pero se puede aplicar a datos unidireccionales con más de dos grupos. Es una alternativa no paramétrica a la prueba ANOVA unidireccional , que amplía la prueba de Wilcoxon de dos muestras. Un grupo de muestras de datos es independiente si provienen de poblaciones no relacionadas y las muestras no se afectan entre sí. Usando la prueba de Kruskal-Wallis, se puede decidir si las distribuciones de la población son similares sin asumir que siguen la distribución normal .
Implementación en R:
R proporciona un método kruskal.test() que está disponible en el paquete de estadísticas para realizar una prueba de suma de rangos de Kruskal-Wallis.
Sintaxis: kruskal.test(x, g, formula, data, subset, na.action, …)
Parámetros:
- x: un vector numérico de valores de datos, o una lista de vectores de datos numéricos.
- g: un objeto vectorial o factor que proporciona el grupo para los elementos correspondientes de x
- fórmula: una fórmula de la forma respuesta ~ grupo donde respuesta da los valores de datos y grupo un vector o factor de los grupos correspondientes.
- datos: una array o marco de datos opcional que contiene las variables en la fórmula.
- subconjunto: un vector opcional que especifica un subconjunto de observaciones a utilizar.
- na.action: una función que indica lo que debería suceder cuando los datos contienen NA
- …: más argumentos que se pasarán a los métodos o desde ellos.
Ejemplo: Usemos el conjunto de datos de R incorporado llamado PlantGrowth. Contiene el peso de las plantas obtenidas bajo control y dos condiciones de tratamiento diferentes.
R
# Preparing the data set # to perform Kruskal-Wallis Test # Taking the PlantGrowth data set myData = PlantGrowth print(myData) # Show the group levels print(levels(myData$group))
Producción:
weight group 1 4.17 ctrl 2 5.58 ctrl 3 5.18 ctrl 4 6.11 ctrl 5 4.50 ctrl 6 4.61 ctrl 7 5.17 ctrl 8 4.53 ctrl 9 5.33 ctrl 10 5.14 ctrl 11 4.81 trt1 12 4.17 trt1 13 4.41 trt1 14 3.59 trt1 15 5.87 trt1 16 3.83 trt1 17 6.03 trt1 18 4.89 trt1 19 4.32 trt1 20 4.69 trt1 21 6.31 trt2 22 5.12 trt2 23 5.54 trt2 24 5.50 trt2 25 5.37 trt2 26 5.29 trt2 27 4.92 trt2 28 6.15 trt2 29 5.80 trt2 30 5.26 trt2 [1] "ctrl" "trt1" "trt2"
Aquí la columna “grupo” se denomina factor y las diferentes categorías (“ctr”, “trt1”, “trt2”) se denominan niveles de factor. Los niveles están ordenados alfabéticamente. El enunciado del problema es que queremos saber si existe alguna diferencia significativa entre los pesos promedio de las plantas en las 3 condiciones experimentales. Y la prueba se puede realizar usando la función kruskal.test() como se indica a continuación.
R
# R program to illustrate # Kruskal-Wallis Test # Taking the PlantGrowth data set myData = PlantGrowth # Performing Kruskal-Wallis test result = kruskal.test(weight ~ group, data = myData) print(result)
Producción:
Prueba de suma de rangos de Kruskal-Wallis
datos: peso por grupo
Kruskal-Wallis chi-cuadrado = 7,9882, gl = 2, valor p = 0,01842
Como el valor de p es menor que el nivel de significación de 0,05, se puede concluir que existen diferencias significativas entre los grupos de tratamiento.
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA