1 Introducción y Objetivos

Bienvenido/a al tutorial práctico en RStudio correspondiente al Capítulo 4: Fundamentos para la Inferencia Estadística.

El objetivo de esta guía es proporcionar las herramientas conceptuales y computacionales necesarias para:

  1. Comprender la variabilidad muestral y la aplicación del Teorema del Límite Central (TCL) en estudios biomédicos.
  2. Calcular e interpretar Intervalos de Confianza (IC) para una media poblacional (\(\mu\)).
  3. Ejecutar y evaluar Pruebas de Hipótesis para una Media, interpretando el estadístico \(t\), el valor \(p\) y la regla de decisión estadística (\(\alpha\)).
  4. Distinguir entre Significancia Estadística e Importancia Clínica en el análisis de hallazgos médicos.
  5. Aplicar estos procedimientos en RStudio a los datos reales recolectados por los grupos de investigación de la cátedra.

2 Bases teóricas

2.1 Estimadores Puntuales vs. Parámetros Poblacionales

En investigación médica, nuestro objetivo es conocer las características de una población objetivo (medidas por parámetros fijos e ignorados como la media poblacional \(\mu\) y la desviación estándar \(\sigma\)). Sin embargo, solo podemos trabajar con muestras representativas, de las cuales calculamos estadísticos o estimadores puntuales:

  • Media Muestral (\(\bar{X}\)): Estimador puntual de \(\mu\).
  • Desviación Estándar Muestral (\(s\)): Estimador puntual de \(\sigma\).

Dado que muestras independientes de tamaño \(n\) extraídas de la misma población producen diferentes medias \(\bar{X}\), la distribución de todas las posibles medias muestrales se denomina Distribución Muestral de la Media.

2.2 Teorema del Límite Central (TCL) y Error Estándar (\(SE\))

El Teorema del Límite Central (TCL) establece que, si el tamaño muestral es suficientemente grande (\(n \ge 30\)), la distribución muestral de \(\bar{X}\) se aproximará a una Distribución Normal, independientemente de la forma de la población original.

La dispersión de las medias muestrales alrededor de \(\mu\) se mide mediante el Error Estándar (\(SE\)):

\[SE = \frac{s}{\sqrt{n}}\]

Regla Teórica Fundamental: A medida que el tamaño de muestra \(n\) aumenta, el \(SE\) disminuye de forma proporcional a \(\sqrt{n}\), incrementando la precisión de nuestra estimación.

2.3 Intervalos de Confianza (\(IC\)) para una Media (\(\mu\))

Un Intervalo de Confianza proporciona un rango de valores plausibles para el verdadero parámetro poblacional \(\mu\), incorporando el margen de variabilidad muestral:

\[IC_{(1-\alpha)\%} = \bar{X} \pm \text{Margen de Error } (ME)\] \[IC_{(1-\alpha)\%} = \bar{X} \pm \left( t_{\alpha/2, \, df} \cdot \frac{s}{\sqrt{n}} \right)\]

Donde:

  • \(t_{\alpha/2, \, df}\) es el valor crítico de la distribución \(t\) de Student con \(df = n - 1\) grados de libertad para el nivel de confianza deseado (p. ej., \(95\% \implies \alpha = 0.05\)).
  • Si \(n \ge 30\), la distribución \(t\) se aproxima estrechamente a la distribución Normal estándar (\(Z_{0.025} = 1.96\)).

2.4 Prueba de Hipótesis y Significación Estadística

El contraste de hipótesis enfrenta dos proposiciones mutuamente excluyentes:

  1. Hipótesis Nula (\(H_0\)): Afirma la ausencia de efecto o que el parámetro es igual a un valor de referencia (\(\mu = \mu_0\)).
  2. Hipótesis Alternativa (\(H_1\)): Afirma la presencia de un efecto o una diferencia clínicamente relevante (\(\mu \neq \mu_0\), \(\mu > \mu_0\) o \(\mu < \mu_0\)).

2.4.1 Estadístico de Prueba (\(t_{\text{calc}}\)) y Valor \(p\)

El estadístico de prueba mide cuántos errores estándar se aleja la media observada del valor nulo:

\[t_{\text{calc}} = \frac{\bar{X} - \mu_0}{SE} = \frac{\bar{X} - \mu_0}{s / \sqrt{n}}\]

  • Valor \(p\): Es la probabilidad de obtener un estadístico de prueba tan o más extremo que el observado, asumiendo que \(H_0\) es verdadera.
  • Regla de Decisión con \(\alpha = 0.05\):
    • Si \(p \le \alpha \implies\) Rechazar \(H_0\) (Resultado Estadísticamente Significativo).
    • Si \(p > \alpha \implies\) No rechazar \(H_0\) (Evidencia Insuficiente).

2.5 Significancia Estadística vs. Importancia Clínica

Un valor \(p < 0.05\) indica que la diferencia observada es difícil de explicar por mero azar, pero no garantiza que sea clínicamente importante.

  • En muestras muy grandes (\(n > 10,000\)), diferencias diminutas e irrelevantes en la práctica médica serán estadísticamente significativas.
  • En muestras pequeñas (\(n < 20\)), grandes efectos clínicos pueden no alcanzar significación por falta de potencia estadística (\(1 - \beta\)).

3 Caso Práctico Guiado: Calidad de Sueño PSQI (Informe G13)

Evaluaremos el Informe G13, en el cual se estudió la calidad del sueño en estudiantes de medicina mediante la escala PSQI (donde un puntaje \(> 5.0\) indica mala calidad del sueño o insomnio clínico).

Datos Muestrales del Informe G13:

  • Tamaño de muestra: \(n = 41\) estudiantes.
  • Media observada: \(\bar{X} = 7.88\) puntos PSQI.
  • Desviación estándar: \(s = 2.11\) puntos.
  • Umbral de normalidad clínica: \(\mu_0 = 5.0\) puntos.
  • Nivel de significación: \(\alpha = 0.05\) (Confianza del 95%).

3.1 Solución Manual Paso a Paso (Aritmética)

3.1.1 Paso 1: Cálculo del Error Estándar (\(SE\))

\[SE = \frac{s}{\sqrt{n}} = \frac{2.11}{\sqrt{41}} = \frac{2.11}{6.4031} = \mathbf{0.3295 \text{ puntos}}\]

3.1.2 Paso 2: Construcción del Intervalo de Confianza al 95% (\(IC_{95\%}\))

Para \(df = 41 - 1 = 40\) y un nivel de confianza del \(95\%\) (\(\alpha/2 = 0.025\)):

  • Valor crítico \(t_{0.025, 40} = \mathbf{2.0211}\)
  • Margen de Error: \(ME = t_{\text{crít}} \cdot SE = 2.0211 \times 0.3295 = \mathbf{0.6660 \text{ puntos}}\)
  • Límite Inferior (\(LI\)): \(\bar{X} - ME = 7.88 - 0.6660 = \mathbf{7.214 \text{ puntos}}\)
  • Límite Superior (\(LS\)): \(\bar{X} + ME = 7.88 + 0.6660 = \mathbf{8.546 \text{ puntos}}\)
  • Resultado \(IC_{95\%}\): \([7.214, \; 8.546] \text{ puntos PSQI}\)

3.1.3 Paso 3: Prueba de Hipótesis para la Calidad de Sueño

  • \(H_0: \mu = 5.0 \quad \text{vs.} \quad H_1: \mu \neq 5.0\)

Cálculo del Estadístico \(t\): \[t_{\text{calc}} = \frac{\bar{X} - \mu_0}{SE} = \frac{7.88 - 5.0}{0.3295} = \frac{2.88}{0.3295} = \mathbf{8.7405}\]

  • Como \(|t_{\text{calc}}| = 8.7405 > 2.0211\) (\(p < 0.0001\)), se rechaza la hipótesis nula (\(H_0\)).
  • Conclusión Clínica: Existe evidencia estadísticamente significativa para afirmar que la media poblacional de la calidad de sueño en los estudiantes es significativamente superior al umbral de mala calidad de sueño (\(\mu > 5.0\)).

3.2 Solución Programática en RStudio

A continuación, implementaremos este análisis en R utilizando tres enfoques programáticos.

3.2.1 Enfoque A: Cálculo Directo a partir de Estadísticos Resumidos

# --- Parámetros de Entrada (Informe G13) ---
n <- 41
xbar <- 7.88
s <- 2.11
mu0 <- 5.0
conf_level <- 0.95

# 1. Error Estándar
se <- s / sqrt(n)

# 2. Intervalo de Confianza al 95%
df_val <- n - 1
t_crit <- qt(1 - (1 - conf_level)/2, df = df_val)
me <- t_crit * se

ic_inferior <- xbar - me
ic_superior <- xbar + me

# 3. Prueba de Hipótesis
t_calc <- (xbar - mu0) / se
p_valor <- 2 * pt(-abs(t_calc), df = df_val)

# --- Impresión de Resultados ---
cat("==============================================\n")
## ==============================================
cat(" RESULTADOS DE INFERENCIA ESTADÍSTICA (G13)\n")
##  RESULTADOS DE INFERENCIA ESTADÍSTICA (G13)
cat("==============================================\n")
## ==============================================
cat(sprintf("Media Muestral (Xbar): %.2f puntos\n", xbar))
## Media Muestral (Xbar): 7.88 puntos
cat(sprintf("Error Estándar (SE)  : %.4f puntos\n", se))
## Error Estándar (SE)  : 0.3295 puntos
cat(sprintf("Valor Crítico t(40)  : %.4f\n", t_crit))
## Valor Crítico t(40)  : 2.0211
cat(sprintf("Margen de Error (ME) : %.4f puntos\n", me))
## Margen de Error (ME) : 0.6660 puntos
cat(sprintf("IC 95%% para mu        : [%.3f, %.3f] puntos\n", ic_inferior, ic_superior))
## IC 95% para mu        : [7.214, 8.546] puntos
cat(sprintf("Estadístico t_calc   : %.4f\n", t_calc))
## Estadístico t_calc   : 8.7398
cat(sprintf("p-valor              : %.2e (p < 0.0001)\n", p_valor))
## p-valor              : 8.09e-11 (p < 0.0001)
cat("==============================================\n")
## ==============================================

3.2.2 Enfoque B: Creación de una Función Reutilizable en R

Podemos construir una función en R que realice todo el procedimiento de inferencia para cualquier conjunto de datos resumidos:

inferencia_media_resumida <- function(n, xbar, s, mu0 = 0, conf_level = 0.95, alternativa = "two.sided") {
  se <- s / sqrt(n)
  df_val <- n - 1
  
  # Intervalo de confianza
  t_crit <- qt(1 - (1 - conf_level)/2, df = df_val)
  me <- t_crit * se
  ic <- xbar + c(-1, 1) * me
  
  # Prueba t
  t_calc <- (xbar - mu0) / se
  
  if (alternativa == "two.sided") {
    p_val <- 2 * pt(-abs(t_calc), df = df_val)
  } else if (alternativa == "greater") {
    p_val <- pt(t_calc, df = df_val, lower.tail = FALSE)
  } else {
    p_val <- pt(t_calc, df = df_val, lower.tail = TRUE)
  }
  
  resultado <- list(
    n = n,
    media = xbar,
    desv_est = s,
    se = se,
    ic = ic,
    t_calc = t_calc,
    df = df_val,
    p_valor = p_val
  )
  return(resultado)
}

# Prueba de la función con datos del Informe G13
res_g13 <- inferencia_media_resumida(n = 41, xbar = 7.88, s = 2.11, mu0 = 5.0)
print(res_g13$ic)
## [1] 7.214002 8.545998
print(res_g13$p_valor)
## [1] 8.08522e-11

3.2.3 Enfoque C: Uso de t.test() con Datos Vectoriales

Si disponemos del vector completo de datos de los pacientes (simulado aquí con la misma media y desviación del informe), podemos ejecutar directamente la función nativa t.test() de R:

set.seed(2026)
# Vector de datos que simula la muestra de n = 41 estudiantes del Informe G13
datos_psqi <- rnorm(n = 41, mean = 7.88, sd = 2.11)

# Aplicación de la función t.test()
prueba_psqi <- t.test(datos_psqi, mu = 5.0, conf.level = 0.95)

# Visualización del objeto t.test
print(prueba_psqi)
## 
##  One Sample t-test
## 
## data:  datos_psqi
## t = 8.2852, df = 40, p-value = 3.259e-10
## alternative hypothesis: true mean is not equal to 5
## 95 percent confidence interval:
##  7.067984 8.402429
## sample estimates:
## mean of x 
##  7.735206

3.3 Visualización Gráfica de la Inferencia

A continuación, graficaremos la distribución \(t\) de Student bajo \(H_0\), resaltando las zonas críticas de rechazo y la ubicación del estadístico observado.

# Construcción del gráfico de la prueba de hipótesis
x_seq <- seq(-4.5, 9, length.out = 1000)
df_t_plot <- data.frame(
  x = x_seq,
  density = dt(x_seq, df = 40)
)

ggplot(df_t_plot, aes(x = x, y = density)) +
  geom_area(data = filter(df_t_plot, x >= -2.021 & x <= 2.021), fill = "#A8DADC", alpha = 0.5) +
  geom_area(data = filter(df_t_plot, x <= -2.021), fill = "#E63946", alpha = 0.75) +
  geom_area(data = filter(df_t_plot, x >= 2.021), fill = "#E63946", alpha = 0.75) +
  geom_line(color = "#1D3557", size = 1.1) +
  geom_vline(xintercept = t_calc, color = "#1D3557", linetype = "solid", size = 1.2) +
  annotate("label", x = 6.5, y = 0.15, 
           label = paste0("t_calc = ", round(t_calc, 2), "\n(p < 0.0001)\nRechazo de H0"),
           color = "#1D3557", fontface = "bold", fill = "#F8F5EE", size = 3.8) +
  scale_x_continuous(
    name = "Estadístico t (df = 40)",
    breaks = c(-2.021, 0, 2.021, round(t_calc, 2)),
    labels = c("-2.02", "0\n(H0)", "+2.02", paste0("t_calc\n", round(t_calc, 2)))
  ) +
  labs(
    title = "Prueba de Hipótesis para la Calidad del Sueño PSQI (Informe G13)",
    subtitle = "H0: mu = 5.0 vs H1: mu != 5.0 | n = 41 | alpha = 0.05",
    y = "Densidad de Probabilidad bajo H0"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", color = "#1D3557"),
    plot.subtitle = element_text(color = "#457B9D")
  )


4 Resumen de Funciones Esenciales de R en Inferencia

Función en R Descripción y Uso Principal Ejemplo de Código
mean(x) Calcula la media muestral (\(\bar{X}\)) de un vector x. xbar <- mean(datos)
sd(x) Calcula la desviación estándar muestral (\(s\)) de un vector x. s <- sd(datos)
length(x) Devuelve el tamaño de la muestra (\(n\)). n <- length(datos)
qt(p, df) Devuelve el valor crítico \(t\) para una probabilidad p y grados de libertad df. t_crit <- qt(0.975, df = 35)
pt(q, df) Devuelve la probabilidad acumulada para un valor de estadístico q. p_val <- 2 * pt(-abs(t), df = 35)
qnorm(p) Devuelve el valor crítico \(Z\) de la distribución Normal estándar. z_crit <- qnorm(0.975)
t.test(x, mu) Ejecuta la prueba \(t\) completa para una muestra e imprime el \(IC\) y \(p\)-valor. t.test(datos, mu = 120)

5 Tarea Grupal: Inferencia sobre los Estudios Estudiantiles

Cada grupo de investigación deberá utilizar la siguiente matriz de datos extraída de sus propios informes preliminares para redactar un script en RMarkdown (.Rmd) que resuelva las tareas analíticas asignadas.

5.1 Matriz de Asignación por Grupos de Investigación

Tabla 4.1: Datos asignados para la Tarea Grupal por Equipos de Investigación.
Grupo Tema e Informe n Xbar (Media) s (SD) mu_0 (Referencia)
Grupo 1 Uso Nocturno de Pantallas (G1) 30 145.00 35.00 120
Grupo 2 Conocimientos en Diabetes (G2) 25 68.00 12.00 75
Grupo 3 Sedentarismo Diario (G3) 40 8.50 2.10 6
Grupo 4 Conocimiento Antibióticos (G4) 32 75.00 10.00 80
Grupo 5 Estrategia Brief-COPE (G5) 50 28.40 4.20 25
Grupo 6 Horas de Sueño Nocturno (G6) 18 6.20 1.35 7
Grupo 7 Ansiedad GAD-7 en Vapeadores (G7) 35 11.20 3.80 10
Grupo 8 Prevención de ITS (G8) 30 62.00 15.00 70
Grupo 9 Tensión Académica DASS-21 (G9) 45 16.80 5.10 14
Grupo 10 Automedicación en Años Iniciales (G10) 38 17.50 2.10 18
Grupo 11 IMC en Estudiantes Inactivos (G11) 40 24.80 3.20 23
Grupo 12 Uso Movil Nocturno y GAD-7 (G12) 28 9.80 3.10 8
Grupo 13 Calidad de Sueño PSQI (G13) 41 7.88 2.11 5
Grupo 14 Conocimiento Genética Prenatal (G14) 32 81.00 9.00 75
Grupo 15 Consumo de Energizantes (G15) 35 5.20 1.10 7

5.2 Consigna y Estructura del Entregable Grupal

Cada grupo de estudiantes debe crear un archivo RMarkdown denominado Tarea_Capitulo4_GrupoX.Rmd (reemplazando X por el número de su grupo) y desarrollar los siguientes 4 apartados:

5.2.1 1. Estimación Puntual y Error Estándar (25%)

  • Calcule e interprete el Error Estándar (\(SE\)) de la media para la variable asignada a su grupo.
  • Explique en un párrafo corto cómo cambiaría el \(SE\) si su equipo duplicara el tamaño de la muestra (\(n_{\text{nuevo}} = 2 \times n\)).

5.2.2 2. Construcción e Interpretación de Intervalos de Confianza (25%)

  • Calcule el Intervalo de Confianza al 95% (\(IC_{95\%}\)) para la media poblacional \(\mu\) utilizando el valor crítico \(t\) correspondiente a los grados de libertad de su muestra (\(df = n - 1\)).
  • Redacte la interpretación biomédica del intervalo, evitando errores de interpretación frecuentista.

5.2.3 3. Prueba de Hipótesis y Significación Estadística (30%)

  • Plantee formalmente las hipótesis \(H_0\) y \(H_1\) para comparar la media de su estudio contra el valor de referencia \(\mu_0\) asignado en la Tabla 4.1.
  • Calcule el estadístico de prueba \(t_{\text{calc}}\) y el \(p\)-valor correspondiente.
  • Indique la decisión estadística (\(\alpha = 0.05\)) y redacte la conclusión médica del estudio.

5.2.4 4. Código R y Gráfica Explicativa (20%)

  • Incluya todo el código en R formateado dentro de chunks ejecutables.
  • Elabore una gráfica en ggplot2 que muestre la curva de la distribución \(t\), la región de rechazo al 5% y la ubicación de su estadístico \(t_{\text{calc}}\).

5.3 Plantilla de Código R para iniciar la Tarea

# ==============================================================================
# PLANTILLA PARA LA TAREA GRUPAL — CAPÍTULO 4
# Grupo No: _____ | Integrantes: ____________________________________
# ==============================================================================

library(ggplot2)
library(dplyr)

# 1. Cargar parámetros asignados al grupo
n_grupo <- 30       # Reemplazar con el n de su grupo
xbar_grupo <- 145.0 # Reemplazar con la Xbar de su grupo
s_grupo <- 35.0     # Reemplazar con la s de su grupo
mu0_grupo <- 120.0  # Reemplazar con la mu_0 de su grupo
alpha <- 0.05

# 2. Cálculos de Inferencia
se_grupo <- s_grupo / sqrt(n_grupo)
df_grupo <- n_grupo - 1
t_crit_grupo <- qt(1 - alpha/2, df = df_grupo)
me_grupo <- t_crit_grupo * se_grupo

ic_inf_grupo <- xbar_grupo - me_grupo
ic_sup_grupo <- xbar_grupo + me_grupo

t_calc_grupo <- (xbar_grupo - mu0_grupo) / se_grupo
p_val_grupo <- 2 * pt(-abs(t_calc_grupo), df = df_grupo)

# 3. Impresión de Resultados
cat(sprintf("SE: %.4f\n", se_grupo))
cat(sprintf("IC 95%%: [%.3f, %.3f]\n", ic_inf_grupo, ic_sup_grupo))
cat(sprintf("t_calc: %.4f | p-valor: %.4f\n", t_calc_grupo, p_val_grupo))

¡Éxitos en la resolución del tutorial y en el desarrollo de la tarea grupal!