Tipos de estudios estadísticos

El tipo de estudio estadístico más apropiado en cada caso depende de varios factores:

  • El objetivo del estudio.
  • El número de variables que intervienen.
  • El tipo de las variables dependientes e independientes.
  • La naturaleza de las observaciones (independientes o emparejadas).

A continuación se presentan los estudios estadísticos más habituales en función de estos factores. La siguiente tabla puede ayudar a identificar el más apropiado en cada caso.

Variables independientes

Variable dependiente

Objetivo

Ejemplo

Contraste

Ninguna
(Una población)

Cuantitativa

Contrastar la normalidad de una variable

Comprobar si la nota de un examen tiene distribución normal (forma de campana de Gauss)

Komogorov-Smirnov
(requiere muestras grandes)

Shapiro-Willks

Cuantitativa normal

Contrastar si la media poblacional de una variable tiene un valor determinado

Comprobar si la nota media de un examen es 5

Test T para la media de una población

Cuantitativa o cualitativa ordinal

Contrastar si la mediana poblacional de una variable tiene un valor determinado

Comprobar si la calificación mediana de un examen es Aprobado

Test para la mediana de una población

Cualitativa (2 categorías)

Contrastar si la proporción poblacional de una de las categorías tiene un valor determinado

Comprobar si la proporción de aprobados es de la mitad (o que el porcentaje es 50%)

Test Binomial

Cualitativa

Contrastar si las proporciones de cada una de las categorías tienen un valor determinado

Comprobar si las proporciones de alumnos matriculados en ciencias, letras o mixtas son 0.5, 0.2 y 0.3 respectivamente

Test Chi-cuadrado de bondad de ajuste

Una cualitativa con dos categorías independientes
(Dos poblaciones independientes)

Cuantitativa normal

Contrastar si hay diferencias entre las medias la variable dependiente en dos poblaciones independientes

Comprobar si el grupo de mañana y el grupo de tarde han tenido notas medias diferentes

Test T para la comparación de medias de poblaciones independientes

Contrastar si hay diferencias entre las varianzas de la variable dependiente en dos poblaciones independientes

Comprobar si hay diferencias entre la variabilidad de las notas del grupo de mañana y el de tarde

Test F de Fisher

Contrastar si hay concordancia o acuerdo entre las dos variables

Comprobar si hay concordancia o acuerdo entre las notas que ponen dos profesores distintos para los mismos exámenes

Correlación intraclase

Cuantitativa o cualitativa ordinal

Contrastar si hay diferencias entre las distribuciones de la variable dependiente en dos poblaciones independientes

Comprobar si el grupo de mañana y el grupo de tarde han tenido calificaciones diferentes

Test de la U de Mann-Whitney

Contrastar si hay concordancia o acuerdo entre las dos variables

Comprobar si hay concordancia o acuerdo entre las calificaciones que ponen dos profesores distintos para los mismos exámenes

Kappa de Cohen

Cualitativa

Contrastar si hay relación entre las dos variables o bien si hay diferencias entre las proporciones de las categorías de la variable dependiente en las dos poblaciones definidas por las categorías de la variable independiente

Comprobar si existe relación entre los aprobados en una asignatura y el grupo al que pertenecen los alumnos, es decir, si la proporción de aprobados es diferente en dos grupos distintos.

Test Chi-cuadrado
(si no ha más del 20% de frecuencias esperadas menores que 5)
Test exacto de Fisher

Contrastar si hay concordancia o acuerdo entre las dos variables

Comprobar si hay concordancia o acuerdo entre la valoración (aprobado o suspenso) que hacen dos profesores distintos para los mismos exámenes

Kappa de Cohen

Una cualitativa con dos categorías relacionadas o pareadas
(Dos poblaciones relacionadas o pareadas)

Cuantitativa normal

Contrastar si hay diferencias entre las medias de la variable dependiente en dos poblaciones relacionadas o pareadas

Comprobar si las notas medias de dos asignaturas cursadas por los mismos alumnos han sido diferentes o si las notas medias de un examen realizado al comienzo del curso (antes) y otro al final (después) de una misma asignatura han sido diferentes

Test T para la comparación de medias de poblaciones relacionadas o pareadas

Cuantitativa o cualitativa ordinal

Contrastar si hay diferencias entre las distribuciones de la variable dependiente en dos poblaciones relacionadas o pareadas

Comprobar si las calificaciones de dos asignaturas cursadas por los mismos alumnos han sido diferentes

Test de Wilcoxon

Cualitativa con dos categorías

Contrastar si hay diferencias entre las proporciones de las categorías de la variable dependiente en dos poblaciones relacionadas o pareadas

Comprobar si la proporción o el porcentaje de aprobados en un examen es distinta al comienzo y al final del curso

Test de McNemar

Una cualitativa con dos o más categorías

independientes
(Dos o más poblaciones independientes)

Cuantitativa normal y homogeneidad de varianzas

Contrastar si hay diferencias entre las medias la variable dependiente en cada una de las poblaciones definidas por las categorías de la variable independiente

Comprobar si existen diferencias entre las notas medias de tres grupos distintos de clase.

Análisis de la Varianza de un factor (ANOVA)
Si hay diferencias > Test de Tukey o Bonferroni para la diferencia por pares

Cuantitativa normal

Contrastar si hay diferencias entre las varianzas de la variable dependiente en cada una de las poblaciones definidas por las categorías de la variable independiente

Comprobar si la variabilidad de las notas de una asignatura es distinta en tres grupos diferentes de clase

Prueba de Levene para la homogeneidad de varianzas

Cuantitativa o cualitativa ordinal

Contrastar si hay diferencias entre las distribuciones de la variable dependiente en cada una de las poblaciones definidas por las categorías de la variable independiente

Comprobar si existen diferencias entre las calificaciones de tres grupos distintos de clase

Test de Kruskal Wallis

Cualitativa

Contrastar si hay relación entre las dos variables o bien si hay diferencias entre las proporciones de las categorías de la variable dependiente en cada una de las poblaciones definidas por las categorías de la variable independiente

Comprobar si existe relación entre los aprobados en una asignatura y el grupo al que pertenecen los alumnos, es decir, si la proporción de aprobados es diferente en los distintos grupos.

Test Chi-cuadrado
(si no ha más del 20% de frecuencias esperadas menores que 5)
Test exacto de Fisher

Una cualitativa con dos o más categorías relacionadas
(medidas repetidas)

Cuantitativa normal

Contrastar si hay diferencias entre las medias repetidas de la variable dependiente

Comprobar si hay diferencias entre las notas que otorgan varios profesores a un mismo examen

Análisis de la Varianza (ANOVA) de medidas repetidas de un factor

Cuantitativa o cualitativa ordinal

Contrastar si hay diferencias entre las medidas repetidas de la variable dependiente

Comprobar si hay diferencias entre las calificaciones que otorgan varios profesores a un mismo examen

Test de Friedman

Cualitativa

Contrastar si hay diferencias entre las valoraciones repetidas de la variable dependiente

Comprobar si hay diferencias entre la valoración (aprobado o suspenso) que hacen varios profesores de un mismo examen

Regresión logística de medidas repetidas

Una cuantitativa normal

Cuantitativa normal

Contrastar si existe relación lineal entre las dos variables

Comprobar si existe relación entre las notas de dos asignaturas

Correlación de Pearson

Construir un modelo predictivo que explique la variable dependiente en función de la independiente

Construir el modelo (función de regresión) que mejor explique la relación entre la nota de un examen y las horas dedicadas a su estudio

Regresión simple (lineal o no lineal)

Cuantitativa o cualitativa ordinal

Contrastar si existe relación lineal entre las dos variables

Comprobar si existe relación entre las calificaciones de dos asignaturas

Correlación de Spearman

Cualitativa

Construir un modelo predictivo que explique la variable dependiente en función de la independiente

Construir el modelo (función logística) que mejor explique la relación entre el resultado de un examen (aprobado o suspenso) y las horas dedicadas a su estudio

Regresión logística simple

Los ejemplos de los distintos test que se presentan a continuación se han realizado a partir del siguiente conjunto de datos que contiene las notas y calificaciones de un curso. El fichero con los datos puede descargarse aquí para reproducir los estudios: datos-curso.csv

library(tidyverse)

Una variable cuantitativa

Estudios descriptivos

Estadísticos

  • Tamaño muestral
  • Media
  • Desviación típica
  • Mínimo, Máximo
  • Cuartiles
  • Coeficiente de asimetría
  • Coeficiente de apuntamiento
# Tamaño muestral
nrow(df)
## [1] 120
# Media
mean(df$notaA, na.rm = TRUE)
## [1] 6.028333
# Desviación típica
sd(df$notaA, na.rm = TRUE)
## [1] 1.340524
# Min, max
min(df$notaA, na.rm = TRUE)
## [1] 2.5
max(df$notaA, na.rm = TRUE)
## [1] 9.3
# Cuartiles
quantile(df$notaA, c(0.25, 0.5, 0.75), na.rm = TRUE)
##   25%   50%   75% 
## 5.100 5.900 6.825
# Coef. asimetría
library(moments)
skewness(df$notaA, na.rm = TRUE)
## [1] 0.1373915
# Coef. apuntamiento
kurtosis(df$notaA, na.rm = TRUE) - 3
## [1] -0.102287

Gráficos

  • Diagrama de barras (variables discretas)
df %>% ggplot(aes(x = asinaturas.aprobadas)) + 
  geom_bar(fill="#00BFC4") + 
  # Cambio de escala del eje X
  scale_x_discrete(limits=0:5) 

  • Histograma
library(ggplot2)
# Límites de los intervalos
breaks = 0:10
# Histograma de las notasA
df %>% ggplot(aes(x = notaA)) + 
  geom_histogram(breaks = breaks, fill="#00BFC4") + 
  # Cambio de escala del eje X
  scale_x_continuous(limits=c(0, 10), breaks = 0:10) 

# Histograma de notasE
df %>% ggplot(aes(x = notaE)) + 
  geom_histogram(breaks = breaks, fill="#00BFC4") + 
  # Cambio de escala del eje X
  scale_x_continuous(limits=c(0, 10), breaks = 0:10) 

  • Diagrama de líneas
# Variables discretas
df %>% count(asinaturas.aprobadas) %>%
  ggplot(aes(x = asinaturas.aprobadas, y = n)) +
  geom_line(col="#00BFC4") + 
  # Cambio de escala del eje X
  scale_x_discrete(limits=0:5) 

# Agrupación de datos en intervalos
df %>% ggplot(aes(x = notaA)) + 
  geom_freqpoly(breaks = breaks, col="#00BFC4") + 
  # Cambio de escala del eje X
  scale_x_continuous(limits=c(0, 10), breaks = 0:10) 

  • Diagrama de caja y bigotes
df %>% ggplot(aes(x = notaA)) + 
  geom_boxplot(fill="#00BFC4") +
  # Cambio de escala del eje X
  scale_x_continuous(limits=c(0, 10), breaks = 0:10)

Estudios inferenciales

Test de normalidad de Shapiro-Wilk

Objetivo: Comprobar la normalidad de la distribución.

Hipótesis nula: La distribución es normal.

shapiro.test(df$notaA)
## 
##  Shapiro-Wilk normality test
## 
## data:  df$notaA
## W = 0.99424, p-value = 0.907
shapiro.test(df$notaE)
## 
##  Shapiro-Wilk normality test
## 
## data:  df$notaE
## W = 0.92264, p-value = 4.065e-06

Test t para la media de una población

Objetivo: Estimar la media de una variable o compararla con un valor dado μ0.

Requisitos:

  • Una variable cuantitativa.
  • Distribución normal o tamaño muestral ≥ 30.

Hipótesis nula: La media de la población es igual a μ0.

Ejemplo: Comprobar si la nota media de un examen es diferente de 5.

t.test(df$notaA, mu = 5, alternative = "two.sided")
## 
##  One Sample t-test
## 
## data:  df$notaA
## t = 8.4033, df = 119, p-value = 1.08e-13
## alternative hypothesis: true mean is not equal to 5
## 95 percent confidence interval:
##  5.786023 6.270643
## sample estimates:
## mean of x 
##  6.028333

Una variable cualitativa

Estudios descriptivos

Estadísticos

  • Tamaños muestral
  • Frecuencias muestrales
  • Proporciones/porcentajes muestrales
# Tamaño muestral sin datos perdidos
length(na.omit(df$calificacionB))
## [1] 115
# Frecuencias
table(df$calificacionB)
## 
## Aprobado Suspenso 
##       98       17
# Proporciones
table(df$calificacionB) / length(na.omit(df$calificacionB))
## 
##  Aprobado  Suspenso 
## 0.8521739 0.1478261
# Porcentajes
table(df$calificacionB) / length(na.omit(df$calificacionB)) * 100
## 
## Aprobado Suspenso 
## 85.21739 14.78261

Gráficos

  • Diagrama de sectores
df %>% ggplot(aes(x = "", fill = calificacionA)) + 
  geom_bar() +
  # Cambiar a coordenadas polares
  coord_polar(theta = "y") +
  # Eliminar ejes
   theme_void()

Estudios inferenciales

Test binomial para una proporción de una población

Objetivo: Estimar la propoción de una categoría en una población o compararla con un valor p0.

Requisitos:

  • One variable cualitativa

Hipótesis nula: La proporción poblacional es igual a p0.

Ejemplo: Comprobar si la proporción de aprobados es mayor de 0.5.

freq <- table(df$calificacionA)["Aprobado"]
binom.test(freq, n, p = 0.7, alternative = "greater")
## 
##  Exact binomial test
## 
## data:  freq and n
## number of successes = 94, number of trials = 120, p-value = 0.02657
## alternative hypothesis: true probability of success is greater than 0.7
## 95 percent confidence interval:
##  0.7123183 1.0000000
## sample estimates:
## probability of success 
##              0.7833333

Test Z para la proporción de una población

Objetivo: Estimar la propoción de una categoría en una población o compararla con un valor p0.

Requisitos:

  • Una variable cualitativa
  • Tamaño muestral >= 30

Observación: Utiliza la aproximación normal de la distribución Binomal.

Ejemplo: Comprobar si la proporción de aprobados es mayor de 0.5.

freq <- table(df$calificacionA)["Aprobado"]
prop.test(freq, n, p = 0.7, alternative = "greater")
## 
##  1-sample proportions test with continuity correction
## 
## data:  freq out of n, null probability 0.7
## X-squared = 3.5813, df = 1, p-value = 0.02922
## alternative hypothesis: true p is greater than 0.7
## 95 percent confidence interval:
##  0.7111099 1.0000000
## sample estimates:
##         p 
## 0.7833333

Dos variables: Variable dependiente cuantitativa y variable independiente culitativa con dos categorías o grupos

Estudios descriptivos

Estadísticos

  • Tamaño muestral de cada grupo
  • Media de cada grupo
  • Desviación típica de cada grupo
  • Mínimo, Máximo de cada grupo
  • Cuartiles de cada grupo
  • Coeficiente de asimetría de cada grupo
  • Coeficiente de apuntamiento de cada grupo
# Tamaño muestral de notaA según el sexo
df %>% group_by(sexo) %>% group_size()
## [1] 71 49
# Media, Desviación típica, Mín, Máx, Cuartiles, Coef. Asimetría y Coef. Apuntamiento
library(moments)
df %>% group_by(sexo) %>% summarize(Media = mean(notaA, na.rm=TRUE), Des.Tip = sd(notaA, na.rm = TRUE), Mín = min(notaA), Máx = max(notaA), C1 = quantile(notaA, 0.25, na.rm = TRUE), C2 = quantile(notaA, 0.5, na.rm = TRUE), C3 = quantile(notaA, 0.75, na.rm = TRUE), Coef.Asimetría = skewness(notaA, na.rm = TRUE), Coef.Apuntamiento = kurtosis(notaA, na.rm = TRUE) - 3)
## # A tibble: 2 x 10
##   sexo   Media Des.Tip   Mín   Máx    C1    C2    C3 Coef.Asimetría
##   <chr>  <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>          <dbl>
## 1 Hombre  6.12    1.23   3.5   9.3   5.3   6.1  6.85          0.249
## 2 Mujer   5.89    1.49   2.5   9.3   5     5.7  6.8           0.135
## # … with 1 more variable: Coef.Apuntamiento <dbl>

Gráficos

  • Diagrama de cajas y bigotes
df %>% ggplot(aes(x = sexo, y = notaA, fill = sexo)) + 
  geom_boxplot() +
  # Cambio de escala del eje X
  scale_y_continuous(limits=c(0, 10), breaks = 0:10)

  • Diagrama de violín
df %>% ggplot(aes(x = sexo, y = notaA, fill = sexo)) + 
  geom_violin() +
  # Cambio de escala del eje X
  scale_y_continuous(limits=c(0, 10), breaks = 0:10)

Estudios inferenciales

Test de normalidad de Shapiro-Wilks

Objetivo: Comprobar la normalidad de la distribución de cada población.

Hipótesis nula: La distribución es normal.

df %>% group_by(sexo) %>% 
  summarise(`Estadístico W` = shapiro.test(notaA)$statistic, `p-valor` = shapiro.test(notaA)$p.value)
## # A tibble: 2 x 3
##   sexo   `Estadístico W` `p-valor`
##   <chr>            <dbl>     <dbl>
## 1 Hombre           0.990     0.872
## 2 Mujer            0.990     0.942

Test F de Fisher de comparación de varianzas de dos poblaciones independientes

Objetivo: Comparar las varianzas de dos poblaciones independientes.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con dos categorías (poblaciones)
  • Distribución normal de la variable dependiente en ambas poblaciones o tamaños de las muestras de cada población ≥ 30.

Hipótesis nula: La varianzas poblacionales son iguales (no existe una diferencia significativa entre las medias poblacionales).

Ejemplo: Comprobar si diferencias signicativas entre las notas medias de hombres y mujeres.

# Test de comparación de varianzas
var.test(notaA ~ sexo, data = df)
## 
##  F test to compare two variances
## 
## data:  notaA by sexo
## F = 0.6769, num df = 70, denom df = 48, p-value = 0.1347
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.3953421 1.1293155
## sample estimates:
## ratio of variances 
##          0.6769032

Test t de comparación de medias de dos poblaciones independientes

Objetivo: Estimar la diferencia de medias en las dos poblaciones o comprobar si hay diferencias significativas entre ellas.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con dos categorías (poblaciones)
  • Distribución normal de la variable dependiente en ambas poblaciones o tamaños de las muestras de cada población ≥ 30.

Hipótesis nula: La medias poblacionales son iguales (no existe una diferencia significativa entre las medias poblacionales).

Observación: El resultado del test depende de si las varianzas poblacionales son iguales o no.

Ejemplo: Comprobar si diferencias signicativas entre las notas medias de hombres y mujeres.

# Test de comparación de varianzas
var.test(notaA ~ sexo, data = df)
## 
##  F test to compare two variances
## 
## data:  notaA by sexo
## F = 0.6769, num df = 70, denom df = 48, p-value = 0.1347
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.3953421 1.1293155
## sample estimates:
## ratio of variances 
##          0.6769032
# Test de comparación de medias asumiendo varianzas iguales
t.test (notaA ~ sexo, data = df, alternative = "two.sided", var.equal = FALSE)
## 
##  Welch Two Sample t-test
## 
## data:  notaA by sexo
## t = 0.89364, df = 89.873, p-value = 0.3739
## alternative hypothesis: true difference in means between group Hombre and group Mujer is not equal to 0
## 95 percent confidence interval:
##  -0.2821809  0.7435779
## sample estimates:
## mean in group Hombre  mean in group Mujer 
##             6.122535             5.891837
# Test de comparación de medias asumiendo varianzas iguales
t.test (notaA ~ sexo, data = df, alternative = "two.sided", var.equal = TRUE)
## 
##  Two Sample t-test
## 
## data:  notaA by sexo
## t = 0.92608, df = 118, p-value = 0.3563
## alternative hypothesis: true difference in means between group Hombre and group Mujer is not equal to 0
## 95 percent confidence interval:
##  -0.262615  0.724012
## sample estimates:
## mean in group Hombre  mean in group Mujer 
##             6.122535             5.891837
  • Diagrama de medias
df %>% ggplot(aes(x = sexo, y = notaA, colour = sexo)) + 
  # Puntos de medias
  stat_summary(fun="mean", size=3,  geom="point", position=position_dodge(width=0.25)) + 
  # Intervalos de confianza para la media
  stat_summary(fun.data = function(x) mean_cl_normal(x, conf.int=0.95), geom = "pointrange", position=position_dodge(width=0.25)) 

Test U de Mann-Whitney de comparación de dos poblaciones independientes (no paramétrico)

Objetivo: Comprobar si hay diferencias significativas entre entre dos poblaciones independientes.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con dos categorías (poblaciones)

Hipótesis nula: La medianas poblacionales son iguales (no existe una diferencia significativa entre las medianas poblacionales).

Ejemplo: Comprobar si diferencias signicativas entre las notas de hombres y mujeres.

# Test de rangos U the Mann-Whitney
wilcox.test(notaA ~ sexo, data = df, alternative = "two.sided")
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  notaA by sexo
## W = 1917, p-value = 0.3445
## alternative hypothesis: true location shift is not equal to 0

Dos variables: Variable dependiente cuantitativa y variable independiente culitativa con dos categorías o grupos pareados

Dos grupos o poblaciones están pareadas o emparejadas cuando los dos poblaciones contienen los mismos individuos, es decir, se trata en realidadad de una única población, pero la variable dependiente se mide dos veces en cada individuo (normalmente antes y después de la algún suceso) y por tanto cada individuo tiene asociado un par de valores.

Este estudio puede realizarse también creando una nueva variable a partir de la resta de las dos mediciones y planteando un estudio de una sola variable cuantitativa.

Ejemplo: Creación de la diferencia de notas de las asignaturas A y B.

# Creamos la variable diferencia = notaA - notaB
df <- df %>% mutate(diferencia = notaA - notaB)

Estudios descriptivos

Estadísticos

  • Tamaño muestral del grupo
  • Media de la diferencia
  • Desviación típica de la diferencia
  • Mínimo, Máximo de la diferencia
  • Cuartiles de la diferencia
  • Coeficiente de asimetría de la diferencia
  • Coeficiente de apuntamiento de la diferencia

Ejemplo: Estadísticos descriptivos de la diferencia entre las notas de las asignaturas A y B de un mismo grupo de alumnos.

# Tamaño muestral de sin contar los datos perdidos
length(na.omit(df$diferencia))
## [1] 115
# Media, Desviación típica, Mín, Máx, Cuartiles, Coef. Asimetría y Coef. Apuntamiento
library(moments)
df %>% summarize(Media = mean(diferencia, na.rm=TRUE), Des.Tip = sd(diferencia, na.rm = TRUE), Mín = min(diferencia, na.rm = TRUE), Máx = max(diferencia, na.rm = TRUE), C1 = quantile(diferencia, 0.25, na.rm = TRUE), C2 = quantile(diferencia, 0.5, na.rm = TRUE), C3 = quantile(diferencia, 0.75, na.rm = TRUE), Coef.Asimetría = skewness(diferencia, na.rm = TRUE), Coef.Apuntamiento = kurtosis(diferencia, na.rm = TRUE) - 3)
## # A tibble: 1 x 9
##    Media Des.Tip   Mín   Máx    C1    C2     C3 Coef.Asimetría Coef.Apuntamiento
##    <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>          <dbl>             <dbl>
## 1 -0.882   0.900  -3.2  1.10  -1.5  -0.8 -0.300         -0.430            -0.137

Gráficos

  • Diagrama de cajas y bigotes
df %>% ggplot(aes(x = diferencia)) + 
  geom_boxplot(fill="#00BFC4")

Estudios inferenciales

Test de normalidad de Shapiro-Wilks

Objetivo: Comprobar la normalidad de la distribución de la diferencia.

Hipótesis nula: La distribución es normal.

Ejemplo: Comprobar la normalidad de la diferencia entre las notas de las asignaturas A y B de un mismo grupo de alumnos.

df %>% summarise(`Estadístico W` = shapiro.test(diferencia)$statistic, `p-valor` = shapiro.test(diferencia)$p.value)
## # A tibble: 1 x 2
##   `Estadístico W` `p-valor`
##             <dbl>     <dbl>
## 1           0.979    0.0737

Test t de comparación de medias de dos poblaciones pareadas

Objetivo: Estimar la media de la diferencia o compararla con un valor dado μ0.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con dos categorías (poblaciones) pareadas
  • Distribución normal de la variable diferencia o tamaño muestral ≥ 30.

Hipótesis nula: La medias poblacionales son iguales (no existe una diferencia significativa entre las medias poblacionales).

Ejemplo: Comprobar si hay una diferencia signicativa entre las notas medias de las asinaturas A y B, o lo que es lo mismo, comprobar si la media de la diferencia de las notas de A y B es distinta de 0.

t.test (notaA, notaB, data = df, alternative = "two.sided", paired = TRUE)
## 
##  Paired t-test
## 
## data:  notaA and notaB
## t = -10.618, df = 114, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1.0515337 -0.7208695
## sample estimates:
## mean of the differences 
##              -0.8862016
  • Diagrama de medias
df %>% ggplot(aes(x="", y = diferencia)) + 
  # Puntos de medias
  stat_summary(fun="mean", size=3,  geom="point") + 
  # Intervalos de confianza para la media
  stat_summary(fun.data = function(x) mean_cl_normal(x, conf.int=0.95), geom = "pointrange", position=position_dodge(width=0.25)) 

Test Wilcoxon de comparación de dos poblaciones pareadas (no paramétrico)

Objetivo: Comparar las medianas de las dos poblaciones.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con dos categorías (poblaciones) pareadas.

Hipótesis nula: La medianas poblacionales son iguales (no existe una diferencia significativa entre las medianas poblacionales).

Ejemplo: Comprobar si hay una diferencia signicativa entre las notas de las asignaturas A y B.

wilcox.test(notaA, notaB, data = df, alternative = "two.sided", paired = TRUE)
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  notaA and notaB
## V = 466, p-value = 1.192e-15
## alternative hypothesis: true location shift is not equal to 0

Dos variables: Variable dependiente cuantitativa y variable independiente culitativa con más de dos categorías o grupos

Estudios descriptivos

Estadísticos

  • Tamaño muestral de cada grupo
  • Media de cada grupo
  • Desviación típica de cada grupo
  • Mínimo, Máximo de cada grupo
  • Cuartiles de cada grupo
  • Coeficiente de asimetría de cada grupo
  • Coeficiente de apuntamiento de cada grupo
# Tamaño muestral de notaA según el grupo
df %>% group_by(grupo) %>% group_size()
## [1] 38 35 47
# Media, Desviación típica, Mín, Máx, Cuartiles, Coef. Asimetría y Coef. Apuntamiento
library(moments)
df %>% group_by(grupo) %>% summarize(Media = mean(notaA, na.rm=TRUE), Des.Tip = sd(notaA, na.rm = TRUE), Mín = min(notaA, na.rm = TRUE), Máx = max(notaA, na.rm = TRUE), C1 = quantile(notaA, 0.25, na.rm = TRUE), C2 = quantile(notaA, 0.5, na.rm = TRUE), C3 = quantile(notaA, 0.75, na.rm = TRUE), Coef.Asimetría = skewness(notaA, na.rm = TRUE), Coef.Apuntamiento = kurtosis(notaA, na.rm = TRUE) - 3)
## # A tibble: 3 x 10
##   grupo Media Des.Tip   Mín   Máx    C1    C2    C3 Coef.Asimetría
##   <chr> <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>          <dbl>
## 1 A      6.54   0.998   4.3   8.6  5.93   6.6  7.15         -0.250
## 2 B      6.96   1.23    3.5   9.3  6.2    6.8  7.7          -0.141
## 3 C      4.92   0.771   2.5   5.9  4.5    5.1  5.5          -1.06 
## # … with 1 more variable: Coef.Apuntamiento <dbl>

Gráficos

  • Diagrama de cajas y bigotes
df %>% ggplot(aes(x = grupo, y = notaA, fill = grupo)) + 
  geom_boxplot() +
  # Cambio de escala del eje X
  scale_y_continuous(limits=c(0, 10), breaks = 0:10)

  • Diagrama de violín
df %>% ggplot(aes(x = grupo, y = notaA, fill = grupo)) + 
  geom_violin() +
  # Cambio de escala del eje X
  scale_y_continuous(limits=c(0, 10), breaks = 0:10)

Estudios inferenciales

Test de normalidad de Shapiro-Wilks

Objetivo: Comprobar la normalidad de la distribución de cada población.

Hipótesis nula: La distribución es normal.

Ejemplo: Comprobar la normalidad de las distribuciones de la nota A en los grupos A, B y C.

df %>% group_by(grupo) %>% 
  summarise(`Estadístico W` = shapiro.test(notaA)$statistic, `p-valor` = shapiro.test(notaA)$p.value)
## # A tibble: 3 x 3
##   grupo `Estadístico W` `p-valor`
##   <chr>           <dbl>     <dbl>
## 1 A               0.984   0.840  
## 2 B               0.963   0.277  
## 3 C               0.918   0.00280

Interpretación: La distribución de la nota A en los grupos A y B es normal (p-valores > 0.05) pero no en el grupo C (p-valor < 0.05)

Ejemplo: Comprobar la normalidad de las distribuciones de la nota A en los grupos A, B y C.

df %>% group_by(grupo) %>% 
  summarise(`Estadístico W` = shapiro.test(notaC)$statistic, `p-valor` = shapiro.test(notaC)$p.value)
## # A tibble: 3 x 3
##   grupo `Estadístico W` `p-valor`
##   <chr>           <dbl>     <dbl>
## 1 A               0.989     0.961
## 2 B               0.965     0.343
## 3 C               0.976     0.442

Interpretación: La distribución de la nota C en los tres grupos es normal (p-valores > 0.05).

Test de Levene de comparación de varianzas de dos o más poblaciones independientes

Objetivo: Comparar las varianzas de dos o más poblaciones independientes.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con dos o más categorías (poblaciones)
  • Distribución normal de la variable dependiente en todas las poblaciones o tamaños de las muestras de cada población ≥ 30.

Hipótesis nula: La varianzas poblacionales son iguales (no existe una diferencia significativa entre las medias poblacionales).

Ejemplo: Comprobar si diferencias signicativas entre las varianzas de las notas de la asignatura C de los grupos A, B y C.

# El test de Levene está disponible en el paquete car
library(car)
# Test de comparación de varianzas
leveneTest(notaC ~ grupo, data = df)
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value Pr(>F)
## group   2  0.3186 0.7278
##       116

Interpretación: No existe diferencia significativa entre las varianzas de la nota C en los grupos A, B y C (p-valor > 0.05).

ANOVA de un factor para la comparación medias de más de dos poblaciones independientes

Objetivo: Comprobar si hay diferencias significativas entre las medias de más de dos poblaciones independientes.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con más de dos categorías (poblaciones)-
  • Distribución normal de la variable dependiente en todas las poblaciones o tamaños de las muestras de cada población ≥ 30.
  • Homogeneidad de varianzas en las poblaciones.

Hipótesis nula: La medias poblacionales son iguales (no existe una diferencia significativa entre las medias poblacionales).

Ejemplo: Comprobar si diferencias signicativas entre las notas medias de la asignatura C de los grupos A, B y C.

# Análisis de la varianza de un factor
summary(aov(notaC ~ grupo, data = df))
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## grupo         2  80.69   40.34   20.05 3.32e-08 ***
## Residuals   116 233.41    2.01                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 1 observation deleted due to missingness

Interpretación: Existen diferencias significativas entre las medias de la nota C entre al menos dos grupos (p-valor=3.32e-08 < 0.05).

Observación: Cuando se detectan diferencias significativas entre las medias de al menos dos grupos conviene realizar un test de comparación múltiple por pares para ver entre qué poblaciones hay diferencias y entre cuáles no. Los test más habituales de comparación por pares son el de Tukey y el de Bonferroni.

# Test de comparación múltiple de Tukey
TukeyHSD(aov(notaC ~ grupo, data = df))
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = notaC ~ grupo, data = df)
## 
## $grupo
##           diff        lwr        upr     p adj
## B-A  0.4312693 -0.3637573  1.2262960 0.4048482
## C-A -1.4455767 -2.1802858 -0.7108676 0.0000241
## C-B -1.8768461 -2.6350758 -1.1186163 0.0000001

Interpretación: No existe una diferencia significativa entre las notas medias de la asignatura C de los grupos A y B (p-valor=0.4048 > 0.05), pero si existe una diferencia significativa entre las notas medias de los grupos A y C (p-valor=0.00002 < 0.05) y también entre las notas medias de los grupos B y C (p-valor=0.0000001 < 0.05).

  • Diagrama de medias
df %>% ggplot(aes(x = grupo, y = notaC, colour = grupo)) + 
  # Puntos de medias
  stat_summary(fun="mean", size=3,  geom="point", position=position_dodge(width=0.25)) + 
  # Intervalos de confianza para la media
  stat_summary(fun.data = function(x) mean_cl_normal(x, conf.int=0.95), geom = "pointrange", position=position_dodge(width=0.25)) 

Test Kruskal-Wallis de comparación de más de dos poblaciones independientes (no paramétrico)

Objetivo: Comprobar si hay diferencias significativas entre entre más de dos poblaciones independientes.

Requisitos:

  • Variable dependiente cuantitativa.
  • Una variable independiente cualitativa con más de dos categorías (poblaciones)

Hipótesis nula: La medianas poblacionales son iguales (no existe una diferencia significativa entre las medianas poblacionales).

Ejemplo: Comprobar si diferencias signicativas entre las notas de la asignatura A de los grupos A, B y C.

# Test de Kruskal-Wallis
kruskal.test(notaA ~ grupo, data = df)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  notaA by grupo
## Kruskal-Wallis chi-squared = 62.218, df = 2, p-value = 3.087e-14

Interpretación: Existen diferencias significativas entre las notas de la asignatura A de al menos dos de los grupos.

Observación: Cuando se detectan diferencias significativas entre al menos dos grupos conviene realizar un test de comparación múltiple por pares para ver entre qué poblaciones hay diferencias y entre cuáles no. El test más habitual es el de Wilcoxon.

# Test de comparación múltiple de Wilcoxon
pairwise.wilcox.test(df$notaA, df$grupo, p.adjust.method = "BH")
## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  df$notaA and df$grupo 
## 
##   A       B      
## B 0.19    -      
## C 4.2e-10 1.3e-11
## 
## P value adjustment method: BH

Interpretación: No existe una diferencia significativa entre las notas de la asignatura A de los grupos A y B (p-valor=0.19 > 0.05), pero si existe una diferencia significativa entre las notas de los grupos A y C (p-valor=4.2e-10 < 0.05) y también entre las notas de los grupos B y C (p-valor=1.3e-11 < 0.05).