1 Introducción y Objetivos de Aprendizaje

Este documento constituye una guía metodológica y técnica orientada al cálculo, interpretación y comunicación de medidas descriptivas de tendencia central, posición y dispersión para variables continuas en investigación clínica y biomédica. El diseño instruccional vincula de manera sinérgica el rigor teórico-matemático, la programación reproducible en RStudio y la precisión ética en la redacción científica bajo normas internacionales (Formato Vancouver).

1.1 Objetivo Procedimental y Cognoscitivo

Al finalizar este tutorial, el estudiante será capaz de: - Comprender y aplicar las definiciones y fórmulas matemáticas de tendencia central, posición y dispersión en bioestadística. - Programar y compilar un reporte reproducible de análisis de simetría y posición poblacional en RStudio. - Automatizar la construcción de la “Tabla 1” (características clínicas y demográficas basales) utilizando el paquete gtsummary en R, agrupando y comparando subgrupos de estudio. - Elaborar y redactar con rigor la sección de Resultados Descriptivos de un manuscrito médico siguiendo las directrices del formato Vancouver.

1.2 Objetivo Actitudinal

Desarrollar una sólida honestidad intelectual y precisión ética en la representación y reporte de datos cuantitativos, rechazando la manipulación de escalas, el reporte selectivo de medidas de resumen para ocultar asimetrías o la fabricación de normalidades que sesguen la interpretación clínica de la evidencia en salud.


2 Fundamentos Teóricos y Fórmulas Matemáticas

Las variables cuantitativas continuas representan mediciones en una escala infinita de valores posibles. Para resumir su comportamiento poblacional sin perder información clave, la bioestadística utiliza tres conjuntos de medidas descriptivas: tendencia central, posición (no central) y dispersión.

2.1 Medidas de Tendencia Central

Buscan identificar el punto medio o el “centro” físico de la distribución de los datos.

2.1.1 Media Aritmética (\(\bar{x}\))

Es la suma de todos los valores observados dividida por el tamaño de la muestra (\(n\)). Representa el centro de gravedad o equilibrio de los datos.

\[\bar{x} = \frac{\sum_{i=1}^{n} x_i}{n}\]

  • Ventajas: Es fácil de calcular y es la base de la mayoría de las pruebas estadísticas paramétricas.
  • Limitación crítica: Es extremadamente sensible a valores atípicos (outliers). Un solo valor extremo arrastra la media hacia su dirección, distorsionando la realidad del grupo.

2.1.2 Mediana (\(\tilde{x}\) o \(Me\))

Es el valor que ocupa la posición central en un conjunto de datos previamente ordenados de menor a mayor. Divide a la población en dos partes exactamente iguales (50% por debajo, 50% por encima).

Para calcular su posición en un conjunto de \(n\) datos ordenados:

- Si \(n\) es impar: \[Me = x_{\left(\frac{n+1}{2}\right)}\] - Si \(n\) es par: \[Me = \frac{x_{\left(\frac{n}{2}\right)} + x_{\left(\frac{n}{2}+1\right)}}{2}\]

  • Ventaja: Es una medida robusta, insensible a valores atípicos. Por ello, se prefiere cuando los datos son asimétricos.

2.1.3 Moda (\(Mo\))

Es el valor o categoría que presenta la mayor frecuencia absoluta en el conjunto de datos. - Una distribución puede ser unimodal (una sola moda), bimodal (dos picos de alta frecuencia) o multimodal.


2.2 Medidas de Posición No Central (Cuantiles)

Dividen la distribución ordenada de los datos en partes porcentuales específicas.

2.2.1 Cuartiles (\(Q\))

Dividen los datos ordenados en cuatro partes iguales (cada una representa el 25% de la muestra). - Primer Cuartil (\(Q_1\)): El valor por debajo del cual se encuentra el 25% de los datos (Percentil 25). - Segundo Cuartil (\(Q_2\)): Coincide exactamente con la Mediana (Percentil 50) [195]. - Tercer Cuartil (\(Q_3\)): El valor por debajo del cual se encuentra el 75% de los datos (Percentil 75).

2.2.2 Percentiles (\(P_k\))

Dividen el conjunto de datos ordenados en 100 partes iguales (cada una representa el 1%). - El percentil \(k\) (\(P_k\)) es el valor por debajo del cual se ubica el \(k\%\) de las observaciones. Por ejemplo, en estudios neonatales y pediátricos, los percentiles 2.5 y 97.5 se utilizan para establecer los límites normales de crecimiento.


2.3 Medidas de Dispersión o Variabilidad

Cuantifican qué tan dispersos o separados están los datos respecto a su punto central. Un promedio sin una medida de dispersión carece de valor clínico, ya que no permite saber si los pacientes son homogéneos o heterogéneos.

2.3.1 Rango Total (\(R\))

Es la diferencia entre el valor máximo y el valor mínimo observados en la muestra.

\[R = X_{max} - X_{min}\]

  • Limitación: Solo depende de los dos valores más extremos, ignorando el comportamiento de todo el resto de la muestra.

2.3.2 Rango Intercuartílico (\(RIQ\))

Es la diferencia entre el tercer y el primer cuartil. Representa el ancho del intervalo que contiene al 50% central de las observaciones.

\[RIQ = Q_3 - Q_1\]

  • Ventaja: Es una medida de dispersión robusta que no se ve afectada por valores atípicos. Se reporta siempre en conjunto con la Mediana.

2.3.3 Varianza Muestral (\(s^2\))

Mide el promedio de las desviaciones cuadráticas de los datos respecto a su media aritmética. Se divide por \(n-1\) (grados de libertad) para obtener un estimador insesgado de la varianza poblacional.

\[s^2 = \frac{\sum_{i=1}^{n} (x_i - \bar{x})^2}{n - 1}\]

2.3.4 Desviación Estándar Muestral (\(s\) o \(SD\))

Es la raíz cuadrada positiva de la varianza muestral [195]. Devuelve la variabilidad a la escala de medición original de la variable (por ejemplo, kg, mmHg o años), facilitando su interpretación clínica.

\[s = \sqrt{s^2}\]

2.3.5 Coeficiente de Variación (\(CV\))

Es una medida de dispersión relativa que expresa la desviación estándar como un porcentaje de la media. Es útil para comparar la variabilidad de dos variables con diferentes unidades de medida (ej. comparar variabilidad de peso en kg vs. estatura en cm).

\[CV = \left( \frac{s}{\bar{x}} \right) \times 100\%\]


2.4 Relación entre Simetría y Sesgo (Skewness)

La simetría describe la forma de la distribución de frecuencias.

- Distribución Simétrica (Gaussiana): Los datos se distribuyen uniformemente a ambos lados del centro. La media, la mediana y la moda coinciden exactamente. \[\text{Media} = \text{Mediana} = \text{Moda}\] - Asimetría Positiva (Sesgo a la derecha): La distribución presenta una “cola” larga hacia los valores altos. La media se ve arrastrada por los valores extremos y es mayor que la mediana. \[\text{Media} > \text{Mediana}\] - Asimetría Negativa (Sesgo a la izquierda): Presenta una “cola” larga hacia los valores bajos. La media es menor que la mediana. \[\text{Media} < \text{Mediana}\]


3 Guía de Decisión Bioestadística para el Reporte

Para mantener el rigor ético y metodológico en un artículo científico, la selección de la medida de resumen debe seguir estrictamente la siguiente regla bioestadística:

Distribución de Datos Forma en Histograma Medida de Tendencia Central Medida de Dispersión Asociada
Normal (Simétrica / Paramétrica) Campana de Gauss simétrica Media Aritmética (\(\bar{x}\)) Desviación Estándar (\(SD\))
No Normal (Asimétrica / No Paramétrica) Cola a la derecha o izquierda Mediana (\(Me\)) Rango Intercuartílico (\(RIQ\))

Advertencia Ética: Reportar la media y desviación estándar para variables fuertemente asimétricas es un error grave que distorsiona la realidad clínica (por ejemplo, reportar que la estancia hospitalaria promedio es de 5 ± 8 días, lo cual implicaría estancias negativas imposibles). En esos casos, reportar Mediana [RIQ] es el estándar científico mandatorio.


4 Normas Clínicas de Redacción: Formato Vancouver y la “Tabla 1”

En las publicaciones biomédicas bajo normas de estilo de Vancouver (ICMJE): 1. La Tabla 1 se dedica a resumir las características demográficas (edad, sexo) y clínicas iniciales de los sujetos, estratificados según el factor de estudio o grupo de exposición. 2. Las variables cuantitativas deben indicar claramente el formato de presentación en el encabezado o en las notas de pie de tabla (ej. Media (± DE) o Mediana [RIQ]). 3. Precisión decimal: No se debe abusar de los decimales. En medicina, para muestras pequeñas (\(n < 100\)), reportar un decimal para medias y porcentajes es suficiente y adecuado para la lectura clínica.


5 Práctica en RStudio: Procesamiento y Visualización Reproducible

A continuación, ejecutaremos el código de R para calcular estas estadísticas descriptivas utilizando la base de datos real del estudio del sueño y uso de redes sociales de los estudiantes universitarios.

5.1 Preparación y Carga de Datos

Primero cargamos la base de datos depurada y asignamos los tipos de variables correspondientes en RStudio.

```{r carga_datos} # Carga de la base de datos adjunta datos <- read.csv(“datos_clinicos_limpios.csv”)

Conversión de las variables cualitativas a factores con sus niveles correctos

datos\(sexo_limpio <- factor(datos\)sexo_limpio, levels = c(“Femenino”, “Masculino”)) datos\(uso_redes_noche <- factor(datos\)uso_redes_noche, levels = c(“Menos de 1 hora”, “1-2 horas”, “3-4 horas”, “Más de 6 horas”), ordered = TRUE)

Inspección de la estructura del dataset

str(datos)


------------------------------------------------------------------------

## 5.2 Cálculo Descriptivo con R Base (Variables Continuas)

Calcularemos las medidas descriptivas completas para la variable **edad** y la variable **horas_sueno**.

### 5.2.1 Estadísticas Descriptivas para la Edad (Distribución Normal)

Dado que la variable `edad` presenta una distribución simétrica en nuestro conjunto de datos, procederemos a calcular sus métricas paramétricas correspondientes.

```{r descriptivos_edad}
# Estadísticas descriptivas de la edad con funciones nativas
edad_media <- mean(datos$edad)
edad_sd <- sd(datos$edad)
edad_mediana <- median(datos$edad)
edad_min <- min(datos$edad)
edad_max <- max(datos$edad)
edad_rango <- range(datos$edad)

# Cuartiles específicos para la edad
edad_cuartiles <- quantile(datos$edad, probs = c(0.25, 0.50, 0.75))

# Visualizar resultados compilados
cat("--- Estadísticas Descriptivas de la Edad ---\n",
    "Media Aritmética (SD):", round(edad_media, 2), "(±", round(edad_sd, 2), ") años\n",
    "Mediana:", edad_mediana, "años\n",
    "Rango Total:", edad_min, "a", edad_max, "años\n",
    "Cuartiles [Q1, Q2, Q3]:", paste(edad_cuartiles, collapse = ", "), "\n")

5.2.2 Estadísticas Descriptivas para las Horas de Sueño (Presencia de NAs)

La variable horas_sueno presenta datos faltantes (NA). Es mandatorio indicar el parámetro na.rm = TRUE en R para que las funciones estadísticas omitan estos valores vacíos y puedan completar el cálculo.

```{r descriptivos_sueno} # Estadísticas descriptivas para horas_sueno omitiendo NAs sueno_media <- mean(datos\(horas_sueno, na.rm = TRUE) sueno_sd <- sd(datos\)horas_sueno, na.rm = TRUE) sueno_mediana <- median(datos\(horas_sueno, na.rm = TRUE) sueno_riq <- IQR(datos\)horas_sueno, na.rm = TRUE) sueno_cuartiles <- quantile(datos$horas_sueno, probs = c(0.25, 0.50, 0.75), na.rm = TRUE)

cat(“— Estadísticas Descriptivas de Horas de Sueño —”, “Media (SD):”, round(sueno_media, 2), “(±”, round(sueno_sd, 2), “) horas”, “Mediana [RIQ]:”, sueno_mediana, “[”, sueno_cuartiles[1], ”-”, sueno_cuartiles[3], ”] horas”, “Rango Intercuartílico calculado (IQR):”, sueno_riq, “horas”)


------------------------------------------------------------------------

## 5.3 Automatización de la "Tabla 1" con `gtsummary`

El estándar contemporáneo para la creación de tablas descriptivas en artículos médicos es el paquete `gtsummary`.
Este paquete genera tablas publicables de forma automatizada y reproducible, organizando las variables cuantitativas según su normalidad y las cualitativas según sus frecuencias.

Estratificaremos todas las variables clínicas de nuestra muestra según el **Uso Nocturno de Redes Sociales**.

```{r tabla_1_automatizada}
library(gtsummary)
library(dplyr)

# Generación automática de la Tabla 1 para el manuscrito
tabla_1 <- datos %>%
  select(uso_redes_noche, sexo_limpio, edad, nivel_estres, horas_sueno) %>%
  tbl_summary(
    by = uso_redes_noche, # Variable de estratificación/grupos
    statistic = list(
      # Definimos qué estadístico usar según el tipo y simetría de la variable
      edad ~ "{mean} (± {sd})",             # Normal: Media (± DE)
      horas_sueno ~ "{median} [{p25} - {p75}]", # Asimétrica: Mediana [RIQ]
      nivel_estres ~ "{median} [{p25} - {p75}]", # Ordinal/Asimétrica: Mediana [RIQ]
      sexo_limpio ~ "{n} ({p}%)"            # Categórica: Frecuencia (%)
    ),
    digits = list(
      all_continuous() ~ 1,
      all_categorical() ~ 1
    ),
    label = list(
      sexo_limpio ~ "Sexo del Paciente",
      edad ~ "Edad (Años)",
      horas_sueno ~ "Horas de Sueño Reportadas",
      nivel_estres ~ "Nivel de Estrés Percibido"
    ),
    missing_text = "(Datos faltantes)"
  ) %>%
  add_overall(last = FALSE, col_label = "**Total de la Muestra** (N = {N})") %>%
  bold_labels() %>%
  modify_spanning_header(all_stat_cols() ~ "**Uso Nocturno de Redes Sociales**") %>%
  modify_caption("**Tabla 1.** Características demográficas y clínicas de los estudiantes según uso nocturno de redes sociales.")

# Mostrar tabla en la consola de RStudio / Reporte compilado
tabla_1

6 Redacción de Resultados Descriptivos (Estilo Vancouver)

Basado en los resultados que R procesa de nuestra base de datos real (datos_clinicos_limpios.csv), a continuación se presenta un bloque de Resultados Clínicos listo para incorporarse al manuscrito en formato Vancouver:

Resultados: Se analizó una cohorte final de 31 estudiantes universitarios, de los cuales el 61.3% (n=19) pertenecía al sexo femenino y el 38.7% (n=12) al sexo masculino. La edad promedio de los participantes fue de 21.0 ± 2.2 años (rango: 18.0 a 25.0 años), mostrando una distribución simétrica. Con relación al comportamiento del sueño, se identificó un dato faltante en 4 pacientes (12.9% de la muestra). La mediana global de horas de sueño nocturno fue de 7.0 horas (rango intercuartílico [RIQ]: 4.0 a 8.0 horas), evidenciando asimetría en la población.

Al estratificar las características según la intensidad de uso nocturno de redes sociales (Tabla 1), se observó una tendencia clínica relevante: los estudiantes con uso extremo de redes sociales (más de 6 horas por noche, n=7) reportaron una mediana de horas de sueño menor (6.5 horas; RIQ: 4.0 - 9.0 horas) y niveles más elevados de estrés percibido (mediana: 6.0; RIQ: 3.0 - 8.0) en comparación con aquellos expuestos a menos de 1 hora de redes sociales nocturnas (n=6), quienes durmieron una mediana de 6.0 horas pero con niveles significativamente menores de estrés percibido (mediana: 3.5; RIQ: 2.0 - 6.0).


7 Actividad Práctica Autónoma (Reto del Estudiante)

Para consolidar tu aprendizaje procedimental y evaluar tu capacidad de transferencia, tu equipo deberá completar el análisis exploratorio enfocado en la variable de salud mental: Nivel de Estrés (nivel_estres).

Misión del Estudiante

  1. Calcular de manera manual y mediante código el nivel de asimetría y dispersión de la variable nivel_estres.
  2. Evaluar si la variable se distribuye de forma Normal o No Normal y justificar metodológicamente qué par de medidas estadísticas (Media/SD o Mediana/RIQ) se deben reportar en el manuscrito.
  3. Completar los siguientes bloques de código de R rellenando los espacios vacíos señalados como ___.

Ejercicio 1: Estadísticas de Tendencia Central y Dispersión del Estrés

Completa la sintaxis en RStudio para obtener los descriptivos de la variable nivel_estres:

# 1. Filtra los valores válidos de nivel_estres (si existieran NAs)
estres_valido <- na.omit(datos$nivel_estres)

# 2. Calcula la media, mediana y desviación estándar
estres_media   <- mean(estres_valido)
estres_mediana <- median(estres_valido)
estres_sd      <- sd(estres_valido)

# 3. Calcula los cuartiles 1 y 3 utilizando quantile()
# PISTA: los percentiles van expresados como fracciones decimales (0.25 y 0.75)
estres_q1 <- quantile(estres_valido, probs = 0.25)
estres_q3 <- quantile(estres_valido, probs = 0.75)

# 4. Determina el Rango Intercuartílico usando la función específica de R
estres_riq <- IQR(estres_valido)

# 5. Imprimir los resultados descriptivos consolidados
cat("--- Reporte Descriptivo del Nivel de Estrés ---\n",
    "Media Aritmética (SD):", round(estres_media, 1), " (±", round(estres_sd, 1), ")\n",
    "Mediana [RIQ]:", estres_mediana, " [", estres_q1, "-", estres_q3, "]\n",
    "Rango Intercuartílico calculado (IQR):", estres_riq, "\n")

Preguntas de Reflexión Bioestadística Crítica

  1. Evaluación de la Asimetría: Compare los valores de la Media y la Mediana del nivel de estrés calculados en R. ¿Es la distribución estrictamente simétrica o presenta algún sesgo (asimetría positiva o negativa)? Justifique su respuesta basándose en la relación matemática entre ambas métricas descriptivas.
  2. Decisión de Reporte Científico: Al observar la variabilidad de la variable nivel_estres, ¿considera adecuado representarla en el manuscrito mediante la media aritmética y desviación estándar, o prefiere la mediana y rango intercuartílico? Fundamente su decisión clínico-metodológica.
  3. Análisis Crítico de la “Tabla 1”: Examine detenidamente la Tabla 1 automatizada que generó en la sección 5.3. ¿Qué diferencias clínicas se perciben a nivel descriptivo entre las horas de sueño reportadas por los estudiantes que usan redes sociales “Menos de 1 hora” frente a los que las usan “Más de 6 horas”? ¿Por qué es clínicamente valioso estratificar a los pacientes en lugar de solo reportar la media o mediana global de toda la muestra?