1 1. Datos de ejemplo (tabla pequeña)

A continuación se construye una tabla pequeña con datos simulados de ventas por categoría. Esta tabla servirá para la gráfica de barras.

datos_barras <- tibble::tibble(
  categoria = c("A", "B", "C", "D", "E"),
  ventas = c(35, 22, 48, 15, 30)
)
knitr::kable(datos_barras, caption = "Tabla 1. Ventas por categoría (datos simulados)")
Tabla 1. Ventas por categoría (datos simulados)
categoria ventas
A 35
B 22
C 48
D 15
E 30

2 2. Gráfica de barras con ggplot2

La siguiente gráfica muestra las ventas por categoría usando barras. Se usa un estilo minimalista para facilitar la lectura.

ggplot(datos_barras, aes(x = categoria, y = ventas)) +
  geom_col() +
  geom_text(aes(label = ventas), vjust = -0.3, size = 4) +
  labs(title = "Ventas por categoría",
       x = "Categoría",
       y = "Ventas (unidades)") +
  theme_minimal(base_size = 13)

Interpretación rápida. La categoría con mayor valor es C (48) y la menor es D (15).

3 3. Diagrama de caja (boxplot) con ggplot2

A continuación, se crea un conjunto de datos pequeño con puntajes de dos grupos (por ejemplo, dos cursos o dos métodos). El diagrama de caja permite comparar la dispersión, la mediana y posibles valores atípicos.

set.seed(123)
datos_box <- tibble::tibble(
  grupo = rep(c("Grupo 1", "Grupo 2"), each = 20),
  puntaje = c(round(rnorm(20, mean = 3.4, sd = 0.4), 2),
              round(rnorm(20, mean = 3.8, sd = 0.5), 2))
)
knitr::kable(head(datos_box, 10), caption = "Tabla 2. Primeras 10 filas de puntajes por grupo")
Tabla 2. Primeras 10 filas de puntajes por grupo
grupo puntaje
Grupo 1 3.18
Grupo 1 3.31
Grupo 1 4.02
Grupo 1 3.43
Grupo 1 3.45
Grupo 1 4.09
Grupo 1 3.58
Grupo 1 2.89
Grupo 1 3.13
Grupo 1 3.22
ggplot(datos_box, aes(x = grupo, y = puntaje)) +
  geom_boxplot() +
  labs(title = "Distribución de puntajes por grupo",
       x = "Grupo",
       y = "Puntaje (0-5)") +
  theme_minimal(base_size = 13)

Lectura del boxplot.
- La línea horizontal dentro de cada caja es la mediana.
- Los bordes inferior y superior de la caja representan el 1er y 3er cuartil (Q1 y Q3).
- Las “bigotes” (whiskers) se extienden hasta 1.5 * IQR (rango intercuartílico = Q3 - Q1).
- Los puntos fuera de ese rango se consideran posibles atípicos.

4 4. Medidas de tendencia central (definiciones y fórmulas)

Sea un conjunto de datos \(x_1, x_2, \dots, x_n\).

4.1 4.1. Media (promedio)

Fórmula (muestral): \[ \bar{x} \;=\; \frac{1}{n}\sum_{i=1}^{n} x_i \]

La media es sensible a valores extremos (outliers).

4.2 4.2. Mediana

La mediana es el valor que divide la muestra ordenada en dos partes con la misma cantidad de observaciones.
- Si \(n\) es impar, es el valor en la posición \((n+1)/2\).
- Si \(n\) es par, se promedia el valor en las posiciones \(n/2\) y \(n/2 + 1\).

4.3 4.3. Moda

La moda es el(los) valor(es) que más se repite(n). Puede haber una moda, varias, o ninguna (si todos los valores aparecen con la misma frecuencia).

5 5. Otras medidas descriptivas (para referencia)

5.1 5.1. Varianza y desviación estándar (muestrales)

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

La desviación estándar \(s\) mide la dispersión promedio alrededor de la media.

6 6. Cálculo de medidas con R

A modo de ejemplo, calculemos medidas para la variable puntaje del conjunto datos_box (global y por grupo).

# Función para moda (retorna todas las modas si hay empate)
moda <- function(x){
  tb <- table(x)
  tb <- tb[tb == max(tb)]
  as.numeric(names(tb))
}

resumen_global <- datos_box |> 
  summarise(
    n = n(),
    media = mean(puntaje),
    mediana = median(puntaje),
    moda = paste(moda(puntaje), collapse = ", "),
    varianza = var(puntaje),
    desv_est = sd(puntaje)
  )

resumen_por_grupo <- datos_box |>
  group_by(grupo) |>
  summarise(
    n = n(),
    media = mean(puntaje),
    mediana = median(puntaje),
    moda = paste(moda(puntaje), collapse = ", "),
    varianza = var(puntaje),
    desv_est = sd(puntaje),
    .groups = "drop"
  )

knitr::kable(resumen_global, digits = 3, caption = "Tabla 3. Resumen descriptivo global (puntaje)")
Tabla 3. Resumen descriptivo global (puntaje)
n media mediana moda varianza desv_est
40 3.616 3.59 3.18, 3.44, 3.65 0.183 0.428
knitr::kable(resumen_por_grupo, digits = 3, caption = "Tabla 4. Resumen descriptivo por grupo (puntaje)")
Tabla 4. Resumen descriptivo por grupo (puntaje)
grupo n media mediana moda varianza desv_est
Grupo 1 20 3.456 3.445 3.18 0.151 0.389
Grupo 2 20 3.776 3.730 3.65 0.172 0.414

7 7. Conclusiones breves

  • La gráfica de barras facilita comparar cantidades por categorías (ej. ventas).
  • El diagrama de caja es útil para comparar distribuciones: ubicación (mediana), dispersión (IQR) y atípicos.
  • Las medidas de tendencia central (media, mediana y moda) resumen el centro de los datos; conviene reportarlas junto con dispersión (varianza y desviación estándar).

Nota para RPubs: Compile este documento a HTML (Knit) y luego publíquelo en RPubs desde RStudio con Publish. Si no ve los gráficos, asegúrese de que los paquetes se instalaron correctamente.