Vamos a considerar el problema de comparar dos medias poblacionales, \(\mu_1\) y \(\mu_2\), a partir de dos muestras independientes de tamaños \(n_1\) y \(n_2\), respectivamente y que no están pareadas. Supondremos que las poblaciones son normales con varianzas conocidas \(\sigma_1^2\) y \(\sigma_2^2\).
Para comparar las medias de dos poblaciones, se puede utilizar el estadístico de contraste \[ Z = \frac{\bar{X}_1 - \bar{X}_2}{\sqrt{\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}}}\tag{1} \] que sigue una distribución normal estándar.
La ecuación anterior requiere que estemos seguros de que tenemos una distribución normal en los datos. Si no se cumple este supuesto o nuestras muestras son pequeñas (\(n < 30\)), se puede utilizar el estadístico de contraste t de Student. La fómula (1) sería en este caso:
\[ t = \frac{\bar{X}_1 - \bar{X}_2}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}}\tag{2} \]
donde \(s_1^2\) y \(s_2^2\) son las varianzas muestrales.
Un intervalo de confianza para la diferencia de medias \(\mu_1 - \mu_2\) al nivel de confianza \(1-\alpha\) es \[ \left(\bar{X}_1 - \bar{X}_2 - t_{\alpha/2} \sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}, \bar{X}_1 - \bar{X}_2 + t_{\alpha/2} \sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}\right)\tag{3} \] donde \(t_{\alpha/2}\) es el cuantil (percentil) de la distribución t que deja una probabilidad \(\alpha/2\) en la cola derecha.
Tenemos una base de datos con medidas de la masa de semillas de individuos de Thespesia populnea en dos años diferentes. Vamos a tomar una muestra al azar de 10 semillas del 2016 y 12 semilas del 2017 (hay un 20 % más semillas en este año).
Con el siguiente código vamos a extraer las dos muestras:
# leer los datos
semillas <- read.csv("semilla_thepol-masa-long.csv")
# seleccionar al azar 10 valores de masa del 2016 y del 2017
masa2016i <- sample(semillas$masa[semillas$year == 2016], 10, replace = F)
masa2017i <- sample(semillas$masa[semillas$year == 2017], 12, replace = F)
# Tabla de datos en gt ajustando el largo de las columnas
# Find the maximum length between the two vectors
max_length <- max(length(masa2016i), length(masa2017i))
# Pad the vectors with NA to make them the same length
masa2016 <- c(masa2016i, rep(NA, max_length - length(masa2016i)))
masa2017 <- c(masa2017i, rep(NA, max_length - length(masa2017i)))
# Create the table
library(gt)
data.frame(Masa_2016 = masa2016, Masa_2017 = masa2017) %>%
gt() %>%
tab_header(title = "Tabla 1. Masa de semillas (g) de Thespesia populnea en dos años")
Tabla 1. Masa de semillas (g) de Thespesia populnea en dos años | |
Masa_2016 | Masa_2017 |
---|---|
0.226 | 0.195 |
0.229 | 0.072 |
0.214 | 0.214 |
0.190 | 0.300 |
0.120 | 0.206 |
0.226 | 0.242 |
0.240 | 0.188 |
0.120 | 0.086 |
0.140 | 0.179 |
0.181 | 0.022 |
NA | 0.288 |
NA | 0.152 |
# Estadísticas descriptivas
media2016 <- mean(masa2016i)
media2017 <- mean(masa2017i)
DS2016 <- sd(masa2016i)
DS2017 <- sd(masa2017i)
n1 <- length(masa2016i)
n2 <- length(masa2017i)
# tabla gt con las estadísticas descriptivas 3 decimales
data.frame(Variable = c("Masa 2016", "Masa 2017"),
Media = c(media2016, media2017),
Desviación_estándar = c(DS2016, DS2017)) %>%
gt() %>%
tab_header(title = "Tabla 2. Estadísticas descriptivas de la masa de semillas (g) de *Thespesia populnea* en dos años") %>%
fmt_number(columns = c(Media, Desviación_estándar), decimals = 3)
Tabla 2. Estadísticas descriptivas de la masa de semillas (g) de *Thespesia populnea* en dos años | ||
Variable | Media | Desviación_estándar |
---|---|---|
Masa 2016 | 0.189 | 0.047 |
Masa 2017 | 0.179 | 0.084 |
Utilizando la fórmula (2), calculamos el estadístico de contraste.
T <- (media2016 - media2017) / sqrt(DS2016^2/n1 + DS2017^2/n2)
El estadístico de contraste \(T\) calculado es: 0.3490045.
El intervalo de confianza al 95% para la diferencia de medias \(\bar{X}_1-\bar{X}_2\) se calcula con la
fórmula (3). Para encontrar el valor crítico de t se utiliza la
función qt()
, con un nivel de significancia \(\alpha = 0.05\) y los siguientes grados de
libertad para t: \(df=n_1+n_2-2\).
alpha <- 0.05
dif <- media2016 - media2017
df <- n1 + n2 - 2
t <- qt(alpha/2, df, lower.tail = F)
IC <- c((media2016 - media2017) - t * sqrt(DS2016^2/n1 + DS2017^2/n2),
(media2016 - media2017) + t * sqrt(DS2016^2/n1 + DS2017^2/n2))
Intervalo de confianza de 95% -0.0494372 a 0.0693038 para la diferencia de medias 0.0099333.
Para contrastar la hipótesis nula \(H_0: \mu_1 = \mu_2\) frente a la hipótesis alternativa \(H_1: \mu_1 \neq \mu_2\), se puede utilizar el estadístico de contraste \(T\). Si para un \(\alpha=0.05\) el valor absoluto de \(T\) es mayor que \(t_{\alpha/2}\), se rechaza la hipótesis nula.
Supongamos que se quiere contrastar si las medias de las dos poblaciones anteriores son iguales. La hipótesis nula es \(H_0: \mu_1 = \mu_2\) y la hipótesis alternativa es \(H_1: \mu_1 \neq \mu_2\). El valor crítico \(t_{\alpha/2}\) y el valor de p son:
t <- qt(alpha/2, df, lower.tail = F)
Valor crítico de \(t_{\alpha/2}\): 2.0859634.
pvalor <- 2 * (1 - pt(abs(T), df))
Valor de p para \(T\) es: 0.7307335.
Como el valor de p es mayor que \(\alpha\), no se rechaza la hipótesis nula. Asi mismo, el valor de \(T\) no es mayor que \(t_{\alpha/2}\).
t.test
La función t.test
permite realizar contrastes de
hipótesis y calcular intervalos de confianza para la diferencia de
medias de dos poblaciones normales con varianzas conocidas.
Con los datos anteriores y la hipótesis nula de igualdad de medias,
utilizaremos la función t.test
.
t.test(masa2016, masa2017, var.equal = TRUE)
##
## Two Sample t-test
##
## data: masa2016 and masa2017
## t = 0.33174, df = 20, p-value = 0.7435
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.05252603 0.07239269
## sample estimates:
## mean of x mean of y
## 0.1886000 0.1786667
Si en lugar de la hipótesis nula de igualdad de medias, se quiere
contrastar si la media de la primera población (0.1886) es mayor que la
de la segunda (0.1786667), se puede utilizar la opción
alternative = "greater"
.
t.test(masa2016, masa2017, var.equal = TRUE, alternative = "greater")
##
## Two Sample t-test
##
## data: masa2016 and masa2017
## t = 0.33174, df = 20, p-value = 0.3718
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## -0.04170937 Inf
## sample estimates:
## mean of x mean of y
## 0.1886000 0.1786667
La prueba de contraste de comparación de medias de dos poblaciones independientes con varianzas conocidas tiene los siguientes supuestos:
Para contrastar la hipótesis nula de igualdad de varianzas \(\sigma_1^2 = \sigma_2^2\) frente a la hipótesis alternativa de desigualdad, se puede utilizar el estadístico de contraste
\[ F = \frac{\sigma_1^2}{\sigma_2^2} \] que sigue una distribución \(F\) de Snedecor con \(n_1 - 1\) y \(n_2 - 1\) grados de libertad.
Supongamos que se quiere contrastar si las varianzas de las dos poblaciones anteriores son iguales. La hipótesis nula es \(H_0: \sigma_1^2 = \sigma_2^2\) y la hipótesis alternativa es \(H_1: \sigma_1^2 \neq \sigma_2^2\).
F <- DS2016^2 / DS2017^2
El valor de \(F\) es: 0.3053405.
El valor de p es:
pvalorF <- 2 * pf(F, n1 - 1, n2 - 1)
Valor de p para \(F\) es: 0.0855482.
Como el valor de p es mayor que \(\alpha\), no se rechaza la hipótesis nula.
var.test
La función var.test
permite realizar contrastes de
hipótesis para la igualdad de varianzas de dos poblaciones normales.
var.test(masa2016i, masa2017i)
##
## F test to compare two variances
##
## data: masa2016i and masa2017i
## F = 0.30534, num df = 9, denom df = 11, p-value = 0.08555
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.08510289 1.19451495
## sample estimates:
## ratio of variances
## 0.3053405
Si las varianzas de las dos poblaciones no son iguales, se puede utilizar la prueba t de Welch para comparar las medias de dos poblaciones independientes.
t.test(masa2016, masa2017, var.equal = FALSE, alternative = "greater")
##
## Welch Two Sample t-test
##
## data: masa2016 and masa2017
## t = 0.349, df = 17.643, p-value = 0.3656
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## -0.03947562 Inf
## sample estimates:
## mean of x mean of y
## 0.1886000 0.1786667
Si no se cumplen los supuestos de normalidad o igualdad de variancia, o tenemos pocos datos discretos, se pueden utilizar métodos no-paramétricos para comparar las medias de dos poblaciones independientes. Por ejemplo, se puede utilizar la prueba de Mann-Whitney.
wilcox.test(masa2016i, masa2017i, alternative = "greater")
##
## Wilcoxon rank sum test with continuity correction
##
## data: masa2016i and masa2017i
## W = 64.5, p-value = 0.3959
## alternative hypothesis: true location shift is greater than 0