Inferencias con variables cuantitativas

Inferencias para una media

Intervalo de confianza para una media utilizando “bootstrapping”

En algunas ocasiones tenemos una muestra de una población y queremos calcular un intervalo de confianza para la media de la población. Si la población es normal, entonces podemos utilizar un procedimiento estándar para el intervalo de confianza. Sin embargo, si no sabemos si la población es normal, entonces podemos utilizar el método de “bootstrapping” para calcular el intervalo de confianza.

El método de “bootstrapping” consiste en generar muchas muestras de la muestra original y calcular el intervalo de confianza para la media de la población utilizando las medias de las muestras generadas (recordar el teorema del límite central). El intervalo de confianza se calcula utilizando los cuantiles de la distribución de las medias de las muestras generadas.

Ejemplo

Supongamos que tenemos una muestra de tamaño \(n=10\) de una población con media \(\mu\). Supongamos que la muestra es \(x = c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)\). Calculemos el intervalo de confianza al nivel del 95% para \(\mu\) utilizando el método de “bootstrapping”.

x <- c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)
n <- length(x)
B <- 10000
mu <- mean(x)
boot <- replicate(B, mean(sample(x, n, replace=TRUE)))
IC <- quantile(boot, c(0.025, 0.975))
IC
##  2.5% 97.5% 
##   4.0   6.6

Por tanto, el intervalo de confianza al nivel del 95% para \(\mu\) es 4, 6.6

Intervalo de confianza para una media de una población normal

Supongamos que tenemos una muestra aleatoria de tamaño \(n\) de una población con media \(\mu\) y desviación típica \(\sigma\). Si la población es normal, entonces la media muestral \(\bar{x}\) sigue una distribución normal con media \(\mu\) y desviación típica \(\sigma/\sqrt{n}\). Por tanto, el estadístico

\[ Z = \frac{\bar{x} - \mu}{\sigma/\sqrt{n}} \]

sigue una distribución normal estándar. Por tanto, el intervalo de confianza al nivel \((1-\alpha)\) para \(\mu\) es

\[ \bar{x} - z_{\alpha/2} \frac{\sigma}{\sqrt{n}} \leq \mu \leq \bar{x} + z_{\alpha/2} \frac{\sigma}{\sqrt{n}} \]

donde \(z_{\alpha/2}\) es el cuantil de orden \(\alpha/2\) de la distribución normal estándar.

Ejemplo

Supongamos que tenemos una muestra \(x = c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)\) de una población normal con media \(\mu\) y desviación típica \(\sigma\). Calculemos el intervalo de confianza al nivel del 95% para \(\mu\).

x <- c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)
mu2 <- mean(x)
sigma <- sd(x)
alpha <- 0.05
z <- qnorm(1-alpha/2)
xbar <- mu2
IC2 <- c(xbar - z*sigma/sqrt(n), xbar + z*sigma/sqrt(n))
IC2
## [1] 3.89726 6.70274

Por tanto, el intervalo de confianza al nivel del 95% para \(\mu\) es 3.8972596, 6.7027404.

Uso de la distribución t de Student

En el caso de que la población no sea normal o sea muy pequeña, podemos utilizar la distribución t de Student para calcular el intervalo de confianza para la media de la población. La distribución t de Student es una distribución simétrica en torno a cero y depende del número de grados de libertad (n - 1). Si la población es normal, entonces la distribución t de Student se aproxima a la distribución normal estándar.

Distribución t Student

El intervalo de confianza al nivel \((1-\alpha)\) para \(\mu\) es

\[ \bar{x} - t_{\alpha/2, n-1} \frac{s}{\sqrt{n}} \leq \mu \leq \bar{x} + t_{\alpha/2, n-1} \frac{s}{\sqrt{n}} \]

donde \(t_{\alpha/2, n-1}\) es el cuantil de orden \(\alpha/2\) de la distribución t de Student con \(n-1\) grados de libertad.

Ejemplo

Supongamos que tenemos una muestra \(x = c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)\) de una población no normal con media \(\mu\) y desviación típica \(\sigma\). Calculemos el intervalo de confianza al nivel del 95% para \(\mu\).

x <- c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)
mu3 <- mean(x)
s <- sd(x)
alpha <- 0.05
t <- qt(1-alpha/2, n-1)
IC3 <- c(mu3 - t*s/sqrt(n), mu3 + t*s/sqrt(n))
IC3
## [1] 3.680981 6.919019

Por tanto, el intervalo de confianza al nivel del 95% para \(\mu\) es 3.6809809, 6.9190191.

Gráficas conjuntas de las distribuciones anteriores

library(ggplot2)

x <- seq(-3, 3, 0.01)
y <- dnorm(x)
y2 <- dt(x, df = 9)

# gráfica de las distribuciones con leyenda blue=normal green=t e indicar los valores de z blue y t green
ggplot(data.frame(x = x, y = y, y2 = y2), aes(x = x)) +
  geom_line(aes(y = y, color = "Normal")) +
  geom_line(aes(y = y2, color = "t")) +
  geom_vline(xintercept = z, color = "blue", linetype = "dashed") +
  geom_vline(xintercept = -z, color = "blue", linetype = "dashed") +
  geom_vline(xintercept = t, color = "green", linetype = "dashed") +
  geom_vline(xintercept = -t, color = "green", linetype = "dashed") +
  labs(x = "Valor", y = "Densidad", color = "Distribución") +
  scale_color_manual(values = c("blue", "green")) +
  theme_minimal()

Prueba de hipótesis para una media

En ocasiones queremos realizar una prueba de hipótesis para determinar si la media de una población es igual a un valor específico. La hipótesis nula es que la media de la población es igual al valor específico y la hipótesis alternativa es que la media de la población no es igual al valor específico.

Prueba de hipótesis con distribución normal

Supongamos que tenemos una muestra aleatoria de tamaño \(n\) de una población con media \(\mu\) y desviación típica \(\sigma\). Queremos probar si la media de la población es igual a un valor específico \(\mu_0\). La hipótesis nula es \(H_0: \mu = \mu_0\) y la hipótesis alternativa es \(H_1: \mu \neq \mu_0\). El estadístico de prueba es

\[ Z = \frac{\bar{x} - \mu_0}{\sigma/\sqrt{n}} \]

Si la hipótesis nula es verdadera, entonces \(Z\) sigue una distribución normal estándar. Por tanto, el valor \(Z\) nos permite calcular el valor \(p\) de la prueba de hipótesis.

Ejemplo

Supongamos que tenemos una muestra \(x = c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)\) de una población normal con media \(\mu\) y desviación típica \(\sigma\). Queremos probar si la media de la población es igual a 5. Calculemos el valor \(p\) de la prueba de hipótesis.

x <- c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)
mu4 <- 5
sigma <- sd(x)
n <- length(x)
mu_hat <- mean(x)
Z <- (mu_hat - mu4) / (sigma / sqrt(n))
p_value <- 2 * pnorm(-abs(Z))
p_value
## [1] 0.6750906

Por tanto, el valor \(p\) de la prueba de hipótesis es 0.6750906.

Gráfica de la distribución normal con el valor \(Z\) y el valor crítico

library(ggplot2)

x <- seq(-3, 3, 0.01)
y <- dnorm(x)
ggplot(data.frame(x = x, y = y), aes(x = x, y = y)) +
  geom_line() +
  geom_vline(xintercept = Z, color = "blue") +
  geom_vline(xintercept = -qnorm(0.025), color = "red", linetype = "dashed") +
  geom_vline(xintercept = qnorm(0.025), color = "red", linetype = "dashed") +
  labs(x = "Valor", y = "Densidad") +
  theme_minimal()

Prueba de hipótesis con la distribución t de Student

En el caso de que la población no sea normal o sea muy pequeña, podemos utilizar la distribución t de Student para realizar la prueba de hipótesis para la media de la población. El estadístico de prueba es

\[ t = \frac{\bar{x} - \mu_0}{s/\sqrt{n }} \]

Si la hipótesis nula es verdadera, entonces \(t\) sigue una distribución t de Student con \(n-1\) grados de libertad. Por tanto, el valor \(t\) nos permite calcular el valor \(p\) de la prueba de hipótesis.

Ejemplo

Supongamos que tenemos una muestra \(x = c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)\) de una población no normal con media \(\mu\) y desviación típica \(\sigma\). Queremos probar si la media de la población es igual a 5. Calculemos el valor \(p\) de la prueba de hipótesis.

x <- c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)
mu5 <- 5
s <- sd(x)
n <- length(x)
mu_hat <- mean(x)
t <- (mu_hat - mu5) / (s / sqrt(n))
p_value2 <- 2 * pt(-abs(t), df = n-1)
p_value2
## [1] 0.684918

Por tanto, el valor \(p\) de la prueba de hipótesis es 0.684918.

Gráfica de la distribución t de Student con el valor \(t\) y el valor crítico

library(ggplot2)

x <- seq(-3, 3, 0.01)
y <- dt(x, df = 9)
ggplot(data.frame(x = x, y = y), aes(x = x, y = y)) +
  geom_line() +
  geom_vline(xintercept = t, color = "blue") +
  geom_vline(xintercept = -qt(0.025, df = 9), color = "red", linetype = "dashed") +
  geom_vline(xintercept = qt(0.025, df = 9), color = "red", linetype = "dashed") +
  labs(x = "Valor", y = "Densidad") +
  theme_minimal()

Prueba de hipótesis con la distribución t de Student de una cola

En ocasiones queremos probar si la media de una población es mayor o menor que un valor específico. En este caso, utilizamos la distribución t de Student de una cola para calcular el valor \(p\) de la prueba de hipótesis.

Ejemplo

Supongamos que tenemos una muestra \(x = c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)\) de una población no normal con media \(\mu\) y desviación típica \(\sigma\). Queremos probar si la media de la población es mayor que 5. Calculemos el valor \(p\) de la prueba de hipótesis.

x <- c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)
mu6 <- 5
s <- sd(x)
n <- length(x)
mu_hat <- mean(x)
t2 <- (mu_hat - mu6) / (s / sqrt(n))
p_value3 <- pt(t2, df = n-1)
p_value3
## [1] 0.657541

Por tanto, el valor \(p\) de la prueba de hipótesis es 0.657541.

Gráfica de la distribución t de Student de una cola con el valor \(t\) y el valor crítico

library(ggplot2)

x <- seq(-3, 3, 0.01)
y <- dt(x, df = 9)
ggplot(data.frame(x = x, y = y), aes(x = x, y = y)) +
  geom_line() +
  geom_vline(xintercept = t2, color = "blue") +
  geom_vline(xintercept = qt(0.05, df = 9), color = "red", linetype = "dashed") +
  labs(x = "Valor", y = "Densidad") +
  theme_minimal()

Prueba t utilizando la función t.test

En R, podemos utilizar la función t.test para realizar una prueba de hipótesis para la media de una población. La función t.test calcula el valor \(p\) de la prueba de hipótesis y el intervalo de confianza para la media de la población.

Ejemplo

Supongamos que tenemos una muestra \(x = c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)\) de una población no normal con media \(\mu\) y desviación típica \(\sigma\). Queremos probar si la media de la población es igual a 5. Utilicemos la función t.test para calcular el valor \(p\) de la prueba de hipótesis y el intervalo de confianza para la media de la población.

x <- c(3, 2, 3, 4, 5, 6, 7, 7, 9, 7)
mu7 <- 5
t.test(x, mu = mu7)
## 
##  One Sample t-test
## 
## data:  x
## t = 0.41917, df = 9, p-value = 0.6849
## alternative hypothesis: true mean is not equal to 5
## 95 percent confidence interval:
##  3.680981 6.919019
## sample estimates:
## mean of x 
##       5.3

Consideremos el caso en que queremos probar si la media de la población es mayor que 5. Utilicemos la función t.test para calcular el valor \(p\) de la prueba de hipótesis y el intervalo de confianza para la media de la población.

t.test(x, mu = mu7, alternative = "greater")
## 
##  One Sample t-test
## 
## data:  x
## t = 0.41917, df = 9, p-value = 0.3425
## alternative hypothesis: true mean is greater than 5
## 95 percent confidence interval:
##  3.988047      Inf
## sample estimates:
## mean of x 
##       5.3

Consideremos el caso en que queremos probar si la media de la población es menor que 5. Utilicemos la función t.test para calcular el valor \(p\) de la prueba de hipótesis y el intervalo de confianza para la media de la población.

t.test(x, mu = mu7, alternative = "less")
## 
##  One Sample t-test
## 
## data:  x
## t = 0.41917, df = 9, p-value = 0.6575
## alternative hypothesis: true mean is less than 5
## 95 percent confidence interval:
##      -Inf 6.611953
## sample estimates:
## mean of x 
##       5.3

Comparaciones con muestras pareadas

Un experimento de comparación con muestra pareada es un diseño experimental utilizado para evaluar las diferencias entre dos condiciones o tratamientos en el mismo grupo de sujetos. Este tipo de experimento es útil cuando se desea controlar la variabilidad entre sujetos, ya que cada sujeto actúa como su propio control.

Descripción del Experimento:

  1. Selección de Sujetos: Se selecciona un grupo de sujetos para el estudio.

  2. Condiciones o Tratamientos: Se aplican dos condiciones o tratamientos diferentes a los mismos sujetos. Por ejemplo, medir la efectividad de un método de enseñanza en un grupo de estudiantes..

  3. Medición: Se realiza una medición antes y después de la intervención o tratamiento.

  4. Diferencias: Se calculan las diferencias entre las dos mediciones para cada sujeto.

Prueba de Hipótesis Correspondiente:

La prueba estadística utilizada comúnmente para analizar los datos de un experimento con muestra pareada es la prueba t para muestras relacionadas (también conocida como prueba t de diferencias de medias apareadas).

Pasos para la Prueba de Hipótesis:

  1. Formulación de Hipótesis:
    • Hipótesis Nula (\(H_0\)): No hay diferencia en las medias de las dos condiciones (la diferencia promedio es cero).
    • Hipótesis Alternativa (\(H_1\)): Hay una diferencia significativa en las medias de las dos condiciones (la diferencia promedio no es cero).
  2. Cálculo de la Estadística de Prueba:
    • Se calcula la media de las diferencias y su desviación estándar.
    • Se utiliza la fórmula de la prueba t para muestras relacionadas para obtener el valor t.
  3. Determinación del Nivel de Significancia:
    • Se elige un nivel de significancia (por ejemplo, \(\alpha\) = 0.05).
  4. Decisión:
    • Se compara el valor t calculado con el valor crítico de t de la tabla de distribución t de Student.
    • Si el valor t calculado es mayor que el valor crítico, se rechaza la hipótesis nula.

Este diseño y análisis son particularmente útiles cuando se quiere minimizar el efecto de la variabilidad entre sujetos y se tiene un enfoque más controlado sobre las diferencias debidas a las condiciones experimentales.

Ejemplo

Supongamos que se realizó un estudio para evaluar la efectividad de un nuevo método de enseñanza en un grupo de estudiantes. Se midieron las calificaciones obtenidas por los estudiantes antes y después de la intervención. Los datos obtenidos son los siguientes:

calif_antes <- c(72, 69, 78, 80, 75, 68, 74, 77, 71, 73)
calif_despues <- c(75, 74, 82, 84, 78, 74, 77, 78, 74, 76)

Queremos probar si hay una diferencia significativa en las calificaciones antes y después de la intervención. Utilicemos la función t.test para realizar la prueba de hipótesis.

t.test(calif_despues, calif_antes, paired = TRUE)
## 
##  Paired t-test
## 
## data:  calif_despues and calif_antes
## t = 8.1742, df = 9, p-value = 1.863e-05
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  2.531402 4.468598
## sample estimates:
## mean difference 
##             3.5

Ahora vamos a realizar la prueba con la hipótesis alterna de que las calificaciones luego de la prueba son mayores.

t.test(calif_despues, calif_antes, paired = TRUE, alternative = "greater")
## 
##  Paired t-test
## 
## data:  calif_despues and calif_antes
## t = 8.1742, df = 9, p-value = 9.313e-06
## alternative hypothesis: true mean difference is greater than 0
## 95 percent confidence interval:
##  2.715108      Inf
## sample estimates:
## mean difference 
##             3.5

Gráfica utilizando paquete ggplot2

library(ggplot2)

df <- data.frame(calif_antes = calif_antes, calif_despues = calif_despues)
df <- stack(df)
ggplot(df, aes(x = ind, y = values, fill = ind)) +
  geom_boxplot() +
  labs(x = "Condición", y = "Calificaciones", fill = "Condición") +
  theme_minimal()

FIGURA 1. Diagrama de caja de las calificaciones antes y después de la intervención.

Gráfica utilizando el paquete PairedData

library(PairedData)
## Loading required package: MASS
## Loading required package: gld
## Loading required package: mvtnorm
## Loading required package: lattice
## 
## Attaching package: 'PairedData'
## The following object is masked from 'package:base':
## 
##     summary
Antes <- calif_antes
Despues <- calif_despues
pd <- paired(Antes,Despues)
plot(pd, type = "profile") + ylab("Porcentaje de calificaciones")

FIGURA 2. Gráfico de perfiles de las calificaciones antes y después de la intervención, pareando los estudiantes.

Supuestos de la prueba t en general

La prueba t para una media tiene varios supuestos que deben cumplirse para que los resultados sean válidos. Algunos de los supuestos más importantes son:

  1. Normalidad: Las diferencias entre las observaciones deben seguir una distribución normal. Esto es especialmente importante cuando el tamaño de la muestra es pequeño.

  2. Independencia: Las observaciones deben ser independientes entre sí. En el caso de muestras pareadas, las diferencias entre las observaciones deben ser independientes.

Si alguno de estos supuestos no se cumple, los resultados de la prueba t pueden no ser válidos y se deben considerar métodos alternativos para el análisis de los datos.

Métodos alternativos

En el caso de que los supuestos de la prueba t no se cumplan, existen métodos alternativos para el análisis de los datos. Algunos de los métodos alternativos más comunes son:

  1. Prueba de Wilcoxon: La prueba de Wilcoxon es una prueba no paramétrica utilizada para comparar dos muestras relacionadas. Esta prueba no requiere que las diferencias entre las observaciones sigan una distribución normal.

  2. Bootstrap: El método de bootstrap es una técnica de remuestreo que se utiliza para estimar la distribución de un estadístico de interés. Esta técnica no requiere supuestos sobre la distribución de los datos y es útil cuando los supuestos de la prueba t no se cumplen.

  3. Prueba de permutación: La prueba de permutación es una técnica no paramétrica que se utiliza para evaluar la significancia de un estadístico de interés. Esta técnica no requiere supuestos sobre la distribución de los datos y es útil cuando los supuestos de la prueba t no se cumplen.

Estos métodos alternativos son útiles cuando los supuestos de la prueba t no se cumplen y se deben considerar en el análisis de los datos.

Ejemplo con la prueba de Wilcoxon

Supongamos que queremos realizar una prueba de hipótesis para determinar si hay una diferencia significativa en las calificaciones antes y después de la intervención utilizando la prueba de Wilcoxon.

wilcox.test(calif_despues, calif_antes, paired = TRUE)
## Warning in wilcox.test.default(calif_despues, calif_antes, paired = TRUE):
## cannot compute exact p-value with ties
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  calif_despues and calif_antes
## V = 55, p-value = 0.005264
## alternative hypothesis: true location shift is not equal to 0