15. Diagramas de caja (Box Plot)

Un diagrama de caja resume una distribución mediante cuartiles, mediana, bigotes y posibles valores atípicos. Permite comparar rápidamente posición, dispersión y forma.

15.1 Introducción

Un diagrama de caja representa una variable cuantitativa sobre una escala numérica. La caja contiene la mitad central de los datos, una línea marca la mediana y los bigotes muestran la extensión de los valores no considerados atípicos.

Su diseño es compacto: una sola figura puede resumir muchos valores sin dibujar cada observación. Por eso resulta especialmente útil para comparar varios grupos.

15.2 Las cinco posiciones principales

El resumen habitual utiliza cinco números:

MínimoMenor valor incluido en los bigotes.
Q1Primer cuartil: deja aproximadamente 25 % debajo.
MedianaSegundo cuartil: divide los datos ordenados en dos mitades.
Q3Tercer cuartil: deja aproximadamente 75 % debajo.
MáximoMayor valor incluido en los bigotes.

Cuando se utiliza la regla del rango intercuartílico, los bigotes no siempre llegan al mínimo y máximo absolutos: los valores alejados se dibujan aparte como atípicos.

15.3 Datos ordenados del ejemplo

Analizamos 13 tiempos de respuesta, expresados en milisegundos:

72, 85, 91, 98, 105, 112, 118,
121, 127, 133, 145, 171, 205

Ordenar los datos es indispensable. Los cuartiles se calculan a partir de posiciones dentro de la lista ordenada, no de la lista original.

15.4 Mediana

Como hay 13 datos, la mediana ocupa la posición central:

Posición de la mediana = (n + 1) / 2
Posición = (13 + 1) / 2 = 7
Mediana = 118 ms

La mediana deja seis observaciones a cada lado. Si la cantidad de datos fuera par, se promediarían los dos valores centrales.

15.5 Primer y tercer cuartil

Una forma frecuente de calcular los cuartiles es dividir la lista alrededor de la mediana y obtener la mediana de cada mitad:

ParteValoresResultado
Mitad inferior72, 85, 91, 98, 105, 112Q1 = (91 + 98) / 2 = 94,5
Centro118Mediana = 118
Mitad superior121, 127, 133, 145, 171, 205Q3 = (133 + 145) / 2 = 139

Existen distintas convenciones para interpolar percentiles. En un informe hay que indicar el método utilizado si la elección puede cambiar los resultados.

15.6 Rango intercuartílico

El rango intercuartílico mide la amplitud de la mitad central:

RIC = Q3 − Q1
RIC = 139 − 94,5 = 44,5 ms

El RIC es resistente a valores extremos. A diferencia del rango total, no depende directamente del mínimo y del máximo absolutos.

15.7 Regla de los valores atípicos

Una regla habitual considera potencialmente atípicos los valores que quedan fuera de estos límites:

Límite inferior = Q1 − 1,5 × RIC
Límite superior = Q3 + 1,5 × RIC

Inferior = 94,5 − 1,5 × 44,5 = 27,75
Superior = 139 + 1,5 × 44,5 = 205,75

Todos los datos del ejemplo están entre 27,75 y 205,75 ms. Por lo tanto, no hay valores atípicos según esta regla; 205 ms es extremo, pero aún está dentro del límite.

15.8 Cómo se dibuja la caja

  1. Ordenar los valores de la variable.
  2. Calcular Q1, mediana y Q3.
  3. Calcular el RIC y los límites de atipicidad.
  4. Dibujar una caja desde Q1 hasta Q3.
  5. Trazar dentro de la caja la línea de la mediana.
  6. Extender los bigotes hasta el menor y mayor valor no atípico.
  7. Representar los atípicos como puntos individuales.
  8. Agregar escala, unidades, título y tamaño de muestra.

15.9 Laboratorio interactivo

Selecciona una distribución. El gráfico muestra la caja, la mediana, los bigotes y los puntos que quedan fuera de 1,5 veces el RIC.

Constructor de diagramas de caja

Tu navegador no puede mostrar el diagrama. El resumen textual aparece debajo.

15.10 Interpretación de la caja

La caja del ejemplo se extiende desde 94,5 hasta 139 ms. Esto significa que aproximadamente la mitad central de las observaciones está dentro de ese intervalo. La línea en 118 ms marca la mediana.

Una caja larga indica mayor dispersión central. Una caja corta indica que la mitad central está más concentrada, aunque todavía hay que observar los bigotes y posibles atípicos.

15.11 Interpretación de los bigotes

Los bigotes muestran hasta dónde llegan los datos no atípicos según la regla elegida. No deben confundirse necesariamente con el mínimo y el máximo absolutos.

Si un bigote es mucho más largo que el otro, la distribución puede presentar asimetría. La lectura debe combinar la posición de la mediana, la longitud de la caja y la extensión de cada bigote.

15.12 Asimetría en un Box Plot

PatrónIndicio visualInterpretación posible
Aproximadamente simétricoMediana centrada y bigotes parecidos.Las dos colas tienen extensión similar.
Asimetría a la derechaBigote superior más largo o atípicos altos.Hay una cola hacia valores grandes.
Asimetría a la izquierdaBigote inferior más largo o atípicos bajos.Hay una cola hacia valores pequeños.

Estos patrones son indicios descriptivos, no una prueba automática de la forma de la distribución.

15.13 Valores atípicos

Un punto atípico es una observación alejada según una regla estadística. No significa necesariamente que sea un error: puede representar un caso real, una condición especial o una población diferente.

Antes de eliminarlo conviene revisar el registro, la unidad, el proceso de medición y el contexto. Se puede informar el análisis con y sin ese valor, pero la decisión debe quedar documentada.

15.14 Comparar grupos

Los diagramas de caja son muy eficaces para comparar grupos sobre una misma escala:

  • la posición de las medianas compara valores centrales;
  • la longitud de las cajas compara el RIC;
  • los bigotes comparan la extensión de los datos no atípicos;
  • los puntos separados muestran posibles valores atípicos;
  • la superposición de cajas puede revelar diferencias pequeñas o grandes.

Para comparar correctamente, las unidades y la escala deben ser las mismas. No se deben comparar cajas dibujadas con escalas distintas sin indicarlo.

15.15 Cuartiles y percentiles

Q1 corresponde al percentil 25 y Q3 al percentil 75. La mediana corresponde al percentil 50. Los percentiles indican posiciones relativas, no necesariamente valores observados en la lista.

El diagrama de caja no muestra todos los percentiles. Resume especialmente los límites de la mitad central, pero puede ocultar diferencias internas dentro de cada cuarto.

15.16 Limitaciones

Dos conjuntos de datos pueden tener el mismo resumen de cinco números y formas internas diferentes. Un Box Plot no reemplaza siempre al histograma, al polígono o a la inspección de los datos originales.

Con muestras muy pequeñas, los cuartiles pueden ser inestables. También hay que informar el tamaño de muestra: una caja basada en 8 datos no tiene la misma evidencia que una basada en 8.000.

15.17 Diagrama de caja con JavaScript

El siguiente ejemplo calcula el resumen de cinco números, imprime los resultados y, al ejecutarse, dibuja un Box Plot completo en un canvas.

const datos = [72, 85, 91, 98, 105, 112, 118, 121, 127, 133, 145, 171, 205];
const ordenados = [...datos].sort((a, b) => a - b);

function mediana(valores) {
  const mitad = Math.floor(valores.length / 2);
  return valores.length % 2
    ? valores[mitad]
    : (valores[mitad - 1] + valores[mitad]) / 2;
}

const centro = mediana(ordenados);
const inferior = ordenados.slice(0, Math.floor(ordenados.length / 2));
const superior = ordenados.slice(Math.ceil(ordenados.length / 2));
const q1 = mediana(inferior);
const q3 = mediana(superior);
const ric = q3 - q1;
const limiteInferior = q1 - 1.5 * ric;
const limiteSuperior = q3 + 1.5 * ric;
const atipicos = ordenados.filter(valor => valor < limiteInferior || valor > limiteSuperior);
const noAtipicos = ordenados.filter(valor => !atipicos.includes(valor));
const minimo = Math.min(...noAtipicos);
const maximo = Math.max(...noAtipicos);

console.log('Resumen:', { minimo, q1, mediana: centro, q3, maximo, atipicos });

if (typeof document !== 'undefined') {
  const canvas = document.getElementById('canvasCajaCodigo');
  const contexto = canvas.getContext('2d');
  const area = { izquierda: 70, derecha: 770, arriba: 60, base: 350 };
  const escalaX = valor => area.izquierda + (valor - 50) / 170 * (area.derecha - area.izquierda);
  const y = 220;

  contexto.clearRect(0, 0, canvas.width, canvas.height);
  contexto.fillStyle = '#fbfffd';
  contexto.fillRect(0, 0, canvas.width, canvas.height);
  contexto.fillStyle = '#173d37';
  contexto.font = 'bold 18px Segoe UI, Arial';
  contexto.fillText('Diagrama de caja de tiempos de respuesta', 22, 30);

  contexto.strokeStyle = '#d3ebe4';
  contexto.lineWidth = 1;
  for (let valor = 50; valor <= 220; valor += 10) {
    const x = escalaX(valor);
    contexto.beginPath();
    contexto.moveTo(x, area.arriba);
    contexto.lineTo(x, area.base);
    contexto.stroke();
    contexto.fillStyle = '#28685e';
    contexto.font = '11px Segoe UI, Arial';
    contexto.textAlign = 'center';
    contexto.fillText(valor, x, area.base + 18);
  }

  contexto.strokeStyle = '#28685e';
  contexto.lineWidth = 2;
  contexto.beginPath();
  contexto.moveTo(area.izquierda, y);
  contexto.lineTo(area.derecha, y);
  contexto.stroke();

  contexto.fillStyle = '#8ed1c2';
  contexto.strokeStyle = '#176b60';
  contexto.lineWidth = 2;
  contexto.fillRect(escalaX(q1), y - 42, escalaX(q3) - escalaX(q1), 84);
  contexto.strokeRect(escalaX(q1), y - 42, escalaX(q3) - escalaX(q1), 84);

  contexto.strokeStyle = '#9a3412';
  contexto.lineWidth = 3;
  [minimo, maximo].forEach(valor => {
    const x = escalaX(valor);
    contexto.beginPath();
    contexto.moveTo(x, y - 25);
    contexto.lineTo(x, y + 25);
    contexto.stroke();
  });
  contexto.beginPath();
  contexto.moveTo(escalaX(minimo), y);
  contexto.lineTo(escalaX(q1), y);
  contexto.moveTo(escalaX(q3), y);
  contexto.lineTo(escalaX(maximo), y);
  contexto.stroke();

  contexto.strokeStyle = '#c2410c';
  contexto.beginPath();
  contexto.moveTo(escalaX(centro), y - 42);
  contexto.lineTo(escalaX(centro), y + 42);
  contexto.stroke();

  contexto.fillStyle = '#c2410c';
  atipicos.forEach(valor => {
    contexto.beginPath();
    contexto.arc(escalaX(valor), y, 6, 0, Math.PI * 2);
    contexto.fill();
  });
}
Tu navegador no puede mostrar el diagrama de caja.

15.18 Accesibilidad

Un diagrama de caja debe acompañarse de una tabla o resumen con mínimo, Q1, mediana, Q3, máximo, RIC y cantidad de atípicos. El color no debe ser la única forma de distinguir la caja y los puntos.

La escala debe ser legible y no debe recortarse para exagerar una diferencia. El texto alternativo puede resumir el grupo, la mediana, el RIC y los valores atípicos.

15.19 Errores frecuentes

  • Calcular cuartiles sin ordenar los valores.
  • Confundir Q1 y Q3 con el mínimo y el máximo.
  • Dibujar siempre los bigotes hasta los extremos absolutos.
  • Eliminar automáticamente los atípicos sin investigar su causa.
  • Comparar grupos con escalas diferentes o unidades distintas.
  • Usar un Box Plot para categorías sin una variable cuantitativa.
  • Ocultar el tamaño de muestra o el método de cálculo de cuartiles.

15.20 Qué debes recordar de este tema

  • La caja va de Q1 a Q3 y contiene aproximadamente el 50 % central.
  • La línea interna representa la mediana.
  • El RIC se calcula como Q3 − Q1.
  • La regla 1,5 × RIC identifica posibles valores atípicos.
  • Los bigotes llegan hasta los valores no atípicos más extremos.
  • La posición, la dispersión y la asimetría se interpretan juntas.
  • Un gráfico compacto no reemplaza la documentación de los datos.

15.21 Conclusión

El diagrama de caja resume la distribución con una figura breve y comparable. Sus cuartiles permiten describir la posición central y la dispersión resistente, mientras que los bigotes y puntos ayudan a detectar observaciones extremas.

Interpretarlo correctamente exige conocer el método de cuartiles, la regla de atipicidad, el tamaño de muestra y las unidades de la variable. En el próximo tema estudiaremos los diagramas de dispersión.