T-test en R para comparación de medias

Estadística con R Contrastes de hipótesis
T-test en R

La función t.test de R se utiliza para realizar pruebas T de Student, que es un contraste estadístico para comparar las medias de dos grupos y determinar si son significativamente diferentes entre sí o para comparar si la media de una muestra es igual a cierto valor. Así, la función permite realizar varios tipos de contrastes, como el t-test de una muestra, el t-test para muestras independientes o el t-test para de muestras apareadas (dependientes), asumiendo tanto varianzas iguales como diferentes.

Sintaxis

La sintaxis de la función t.test es la siguiente:

t.test(x, y = NULL,
       alternative = c("two.sided", "less", "greater"),
       mu = 0, paired = FALSE, var.equal = FALSE,
       conf.level = 0.95, ...)

# Método para la clase 'formula'
t.test(formula, data, subset, na.action, ...)

Siendo:

  • x: Un vector numérico para el primer grupo.
  • y: Opcional. Un vector numérico para el segundo grupo. Si se omite, se realiza una prueba t de una muestra con los valores de x.
  • alternative: una cadena de caracteres que especifica la hipótesis alternativa. Puede ser una de las siguientes: "two.sided" (por defecto), "less", o "greater".
  • mu: La diferencia de medias en la hipótesis. Utilízala para el t-test de una muestra cuando compares la media de un solo grupo con un valor conocido. Por defecto es 0.
  • paired: Booleano que indica si las dos muestras son dependientes. El valor predeterminado es FALSE.
  • var.equal: Booleano que indica si se deben asumir varianzas iguales para una prueba t de dos muestras independientes. Por defecto es FALSE.
  • conf.level: Nivel de confianza para el intervalo de confianza. Por defecto es 0.95.

T-test de una muestra

La prueba t de Student de una muestra puede utilizarse para comprobar si la media poblacional de una muestra aleatoria simple extraída de una población normal con media \(\mu\) desconocida es igual a \(\mu_0\), mayor que \(\mu_0\) o menor que \(\mu_0\).

El t-test supone que las observaciones son independientes y extraídas de una distribución normal. El tamaño mínimo recomendado de la muestra es 30.

Media igual a \(\mu_0\)

Las hipótesis nula y alternativa son las siguientes:

  • \(H_0\): La media de la distribución ES \(\mu_0\).
  • \(H_1\): La media de la distribución NO ES \(\mu_0\).

Dados unos datos de muestra, puedes determinar si su media es igual a \(\mu_0\) o no utilizando la función t.test. En el siguiente ejemplo se comprueba si la media poblacional es igual o no a 10 para un nivel de confianza del 95%.

# Datos de muestra
set.seed(10)
x <- rnorm(100, mean = 10)

# ¿Es la media de 'x' distinta de 10?
t.test(x = x, mu = 10, conf.level = 0.95)
	One Sample t-test

data:  x
t = -1.4507, df = 99, p-value = 0.15
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
  9.676689 10.050213
sample estimates:
mean of x 
 9.863451 

El p-valor es mayor que los niveles de significación habituales, por lo que no tenemos pruebas suficientes para rechazar la hipótesis nula de que la media poblacional es igual a 10. Observa que \(\mu_0\) está dentro del intervalo de confianza del 95% devuelto por la función.

Media menor que \(\mu_0\)

En este escenario las hipótesis nula y alternativa son las siguientes:

  • \(H_0\): La media de la distribución ES \(\mu_0\).
  • \(H_1\): La media de la distribución es MENOR que \(\mu_0\).

El siguiente ejemplo comprueba si hay pruebas suficientes para rechazar la hipótesis nula o no. Como la hipótesis alternativa es que la media de la distribución es menor que \(\mu_0\) tenemos que poner alternative = "less".

# Datos de muestra
set.seed(10)
x <- rnorm(100, mean = 8)

# ¿Es la media de 'x' menor que 10?
t.test(x = x, mu = 10, alternative = "less")
	One Sample t-test

data:  x
t = -22.699, df = 99, p-value < 2.2e-16
alternative hypothesis: true mean is less than 10
95 percent confidence interval:
     -Inf 8.019733
sample estimates:
mean of x 
 7.863451 

El p-valor indica que existen pruebas sólidas contra la hipótesis nula. Esto implica que la hipótesis nula (la media poblacional es 10) puede rechazarse a favor de la hipótesis alternativa (la media poblacional es inferior a 10). El intervalo de confianza del 95% también apoya esto, ya que oscila entre (\(\infty\), 8.019733), por lo que la verdadera media es probablemente menor que 8.019733.

Media mayor que \(\mu_0\)

La última opción consiste en realizar una prueba en la que la hipótesis nula supone que la media verdadera es \(\mu_0\), mientras que la hipótesis alternativa considera que la media verdadera es mayor que \(\mu_0\):

  • \(H_0\): La media de la distribución ES \(\mu_0\).
  • \(H_1\): La media de la distribución es MAYOR que \(\mu_0\).
# Datos de muestra
set.seed(10)
x <- rnorm(100, mean = 8)

# ¿Es la media de 'x' mayor que 10?
t.test(x = x, mu = 10, alternative = "greater")
	One Sample t-test

data:  x
t = -22.699, df = 99, p-value = 1
alternative hypothesis: true mean is greater than 10
95 percent confidence interval:
 7.707169      Inf
sample estimates:
mean of x 
 7.863451 

En este caso, un p-valor de 1 implica que no hay pruebas significativas contra la hipótesis nula de que la media verdadera es 10.

T-test de dos muestras

La función t.test también puede realizar una prueba t de Student de dos muestras para comparar las medias entre dos grupos. Para realizar esta prueba, asigna un grupo a x y el otro a y dentro de la función. Ten en cuenta que, por defecto, ambos grupos se consideran independientes y con varianzas diferentes.

Si se asume que las varianzas de las poblaciones son diferentes (por defecto), esta prueba también se denomina prueba de Welch o t-test de Welch.

Medias iguales

La hipótesis nula de una prueba de igualdad de medias afirma que las medias de las poblaciones son iguales, mientras que la hipótesis alternativa sostiene que las medias difieren entre las poblaciones:

  • \(H_0\): La media de la distribución de X es IGUAL a la media de la distribución de Y. (O la diferencia de medias es 0.)
  • \(H_1\): La media de la distribución de X es DIFERENTE a la media de la distribución de Y. (O la diferencia de medias no es 0.)
# Datos de muestra
set.seed(10)
x <- rnorm(100)
y <- rnorm(100)

# ¿Es la media de 'x' diferente a la media de 'y'?
t.test(x = x, y = y)
	Welch Two Sample t-test

data:  x and y
t = -0.30777, df = 197.83, p-value = 0.7586
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.3080508  0.2248780
sample estimates:
  mean of x   mean of y 
-0.13654894 -0.09496258 

El p-valor es mayor que los niveles de significación habituales, lo que implica que no hay pruebas suficientes para rechazar la hipótesis nula de igualdad de medias.

Media menor

En este caso, la hipótesis alternativa es que la media poblacional del primer grupo es inferior a la media poblacional del segundo grupo:

  • \(H_0\): La media de la distribución de X es IGUAL a la media de la distribución de Y.
  • \(H_1\): La media de la distribución de X es MENOR que la media de la distribución de Y.
# Datos de muestra
set.seed(10)
x <- rnorm(100)
y <- rnorm(100)

# ¿Es la media de 'x' menor que la media de 'y'?
t.test(x = x, y = y, alternative = "less")
	Welch Two Sample t-test

data:  x and y
t = -0.30777, df = 197.83, p-value = 0.3793
alternative hypothesis: true difference in means is less than 0
95 percent confidence interval:
      -Inf 0.1817153
sample estimates:
  mean of x   mean of y 
-0.13654894 -0.09496258 

El p-valor es mayor que los niveles de significación habituales, por lo que no hay pruebas para rechazar la hipótesis nula de que la media de X es igual a la media de Y.

Media mayor

  • \(H_0\): La media de la distribución de X es IGUAL a la media de la distribución de Y.
  • \(H_1\): La media de la distribución de X es MAYOR que la media de la distribución de Y.
# Datos de muestra
set.seed(10)
x <- rnorm(100, mean = 3)
y <- rnorm(100)

# ¿Es la media de 'x' mayor que la media de 'y'?
t.test(x = x, y = y, alternative = "greater")
	Welch Two Sample t-test

data:  x and y
t = 21.894, df = 197.83, p-value < 2.2e-16
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 2.735112      Inf
sample estimates:
  mean of x   mean of y 
 2.86345106 -0.09496258 

En este caso, el p-valor es casi 0, lo que implica que hay pruebas sólidas para rechazar la hipótesis nula de igualdad de medias.

Varianzas iguales

Por defecto, t.test asume varianzas poblacionales diferentes. Sin embargo, si una prueba F (por ejemplo, realizada con la función var.test) no proporciona pruebas suficientes para rechazar la hipótesis nula de varianzas iguales, puedes establecer var.equal = TRUE. Este ajuste permite utilizar una estimación de varianza agrupada para el cálculo.

# Datos de muestra
set.seed(10)
x <- rnorm(100)
y <- rnorm(100)

# T-test de muestras independientes con varianzas iguales
t.test(x = x, y = y, var.equal = TRUE)
	Two Sample t-test

data:  x and y
t = -0.30777, df = 198, p-value = 0.7586
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.3080493  0.2248766
sample estimates:
  mean of x   mean of y 
-0.13654894 -0.09496258 

El p-valor es superior a los niveles de significación habituales, lo que implica que no hay pruebas suficientes para rechazar la hipótesis nula de igualdad de medias.

T-test para muestras apareadas (dependientes)

Por último, si los grupos son dependientes, debes especificar paired = TRUE para ejecutar un t-test de muestras apareadas.

# Datos de muestra
set.seed(10)
x <- rnorm(100)
x_2 <- sqrt(x)

# Paired samples t-test
t.test(x = x, y = x_2, paired = TRUE)
	Paired t-test

data:  x and x_2
t = -2.152, df = 43, p-value = 0.03705
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
 -0.136882092 -0.004443087
sample estimates:
mean difference 
    -0.07066259 

En esta prueba, el p-valor es 0.03705, por lo que no hay pruebas suficientes para rechazar la hipótesis nula de igualdad de medias para 0.05 y 0.1, pero puede rechazarse para 0.01.