Un valor atípico es una observación que se separa notablemente del patrón general. Detectarlo ayuda a revisar datos, comprender poblaciones y evitar conclusiones distorsionadas.
Un outlier es un valor extremo en relación con el resto de una distribución. Puede ser un error de carga, una medición excepcional, un caso perteneciente a otra población o un fenómeno real que merece atención.
La detección estadística señala observaciones para investigar; no decide por sí sola que deban eliminarse.
El 120 está muy separado del grupo principal. Su presencia aumenta el rango, la media y la desviación estándar, por lo que conviene revisar su origen.
El método más utilizado con diagramas de caja usa el RIC:
Un valor fuera de esos límites se marca como potencialmente atípico. “Potencialmente” es importante: la regla no demuestra que el dato sea incorrecto.
Para el conjunto 48, 49, 50, 51, 52, 53, 120, usando Q1 = 49 y Q3 = 53:
Los valores no atípicos se encuentran dentro de los límites. Los bigotes de un Box Plot llegan hasta los extremos que permanecen dentro de ellos.
Selecciona una distribución y un método. Los puntos naranjas son observaciones marcadas por la regla elegida.
Si la distribución es aproximadamente simétrica, puede utilizarse el puntaje z:
Una regla orientativa marca |z| ≥ 2 o |z| ≥ 3, según el objetivo. No es equivalente a la regla del RIC y puede verse afectada por los mismos extremos que intenta detectar.
| Característica | RIC | Puntaje z |
|---|---|---|
| Centro | Cuartiles y mediana. | Media. |
| Dispersión | RIC. | Desviación estándar. |
| Resistencia | Más resistente a extremos. | Sensible a extremos. |
| Supuesto | No exige normalidad. | Se interpreta mejor con forma aproximadamente normal. |
Un valor puede ser atípico en el conjunto completo pero normal dentro de un subgrupo. Por ejemplo, una latencia nocturna puede parecer extrema si se mezclan servidores con capacidades diferentes.
También existe atipicidad contextual: un valor puede ser normal en general pero anómalo para una hora, estación o condición específica.
Los outliers se investigan mejor combinando:
El procedimiento recomendado es:
Un outlier puede contener información crítica. En monitoreo, una observación extrema puede ser precisamente el incidente que se necesita detectar.
Eliminarlo porque altera la media produce un análisis más cómodo, pero puede ocultar el fenómeno real. La limpieza debe seguir reglas previas y auditables.
En algunos análisis se reemplazan extremos por valores límite o se eliminan ciertas colas. Estas técnicas se llaman winsorización y recorte, respectivamente.
No son correcciones neutrales: cambian la distribución. Deben informarse, compararse con el análisis original y justificarse por el objetivo.
Una transformación logarítmica puede reducir el efecto de colas muy largas y facilitar el modelado. No elimina el fenómeno: cambia la escala en la que se analiza.
Los umbrales de atipicidad deben calcularse en la escala adecuada y comunicarse indicando si se trabajó con datos originales o transformados.
Este ejemplo calcula Q1, Q3, RIC y límites, detecta los valores marcados y los dibuja separados del resto.
const datos = [48, 49, 50, 51, 52, 53, 120];
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 q1 = mediana(ordenados.slice(0, Math.floor(ordenados.length / 2)));
const q3 = mediana(ordenados.slice(Math.ceil(ordenados.length / 2)));
const ric = q3 - q1;
const limiteSuperior = q3 + 1.5 * ric;
const atipicos = datos.filter(valor => valor < q1 - 1.5 * ric || valor > limiteSuperior);
console.log('Q1:', q1, 'Q3:', q3, 'RIC:', ric);
console.log('Límite superior:', limiteSuperior);
console.log('Atípicos:', atipicos);
if (typeof document !== 'undefined') {
const canvas = document.getElementById('canvasOutlierCodigo');
const contexto = canvas.getContext('2d');
const area = { izquierda: 70, derecha: 770, arriba: 60, base: 350 };
const escalaX = valor => area.izquierda + (valor - 40) / 90 * (area.derecha - area.izquierda);
contexto.clearRect(0, 0, canvas.width, canvas.height);
contexto.fillStyle = '#fffdfb'; contexto.fillRect(0, 0, canvas.width, canvas.height);
contexto.fillStyle = '#4b2a1d'; contexto.font = 'bold 18px Segoe UI, Arial'; contexto.fillText('Detección de valores atípicos', 22, 30);
contexto.strokeStyle = '#f0d8c5'; contexto.lineWidth = 1; contexto.beginPath(); contexto.moveTo(area.izquierda, 230); contexto.lineTo(area.derecha, 230); contexto.stroke();
contexto.fillStyle = '#7c3f24'; contexto.font = '12px Segoe UI, Arial'; contexto.textAlign = 'center';
for (let valor = 40; valor <= 130; valor += 10) { const x = escalaX(valor); contexto.beginPath(); contexto.moveTo(x, area.arriba); contexto.lineTo(x, area.base); contexto.stroke(); contexto.fillText(valor, x, area.base + 18); }
datos.forEach(valor => { contexto.fillStyle = atipicos.includes(valor) ? '#c2410c' : '#e9a77f'; contexto.beginPath(); contexto.arc(escalaX(valor), 230, 7, 0, Math.PI * 2); contexto.fill(); });
contexto.strokeStyle = '#c2410c'; contexto.lineWidth = 3; contexto.beginPath(); contexto.moveTo(escalaX(limiteSuperior), area.arriba); contexto.lineTo(escalaX(limiteSuperior), area.base - 30); contexto.stroke(); contexto.fillStyle = '#c2410c'; contexto.font = 'bold 12px Segoe UI, Arial'; contexto.fillText(`Límite superior: ${limiteSuperior}`, escalaX(limiteSuperior), area.base - 8);
}El resultado debe informar el método, los límites, los valores marcados y la cantidad de observaciones. “Se detectaron outliers” no alcanza si no se explica con qué regla.
Los puntos atípicos deben tener etiquetas o un resumen textual y no distinguirse únicamente por color.
La detección de valores atípicos combina reglas estadísticas con revisión del contexto. El RIC, los puntajes z y las visualizaciones ayudan a señalar observaciones, pero la decisión final requiere comprender cómo se produjeron los datos.
En el próximo tema estudiaremos la asimetría de una distribución.