egutierrez
6f88f184f1
feat(eda): capítulo OUTLIERS — valores atípicos univariantes + multivariantes
...
Nuevo capítulo dedicado `outliers` para el motor AutomaticEDA que reúne y
profundiza en un solo sitio el análisis de valores atípicos, hoy disperso entre
`num_distr` (conteo por columna) y `modelos` (IsolationForest). Se registra en
`chapters_registry.py` entre `missingness` y `correlacion` (bloque de calidad de
datos: calidad → missingness → outliers).
Contenido del capítulo:
- Resumen univariante por columna: nº y % de atípicos por Tukey (1.5·IQR) y por
z-score (|z| > 3), con vallas inferior/superior y valores extremos. Ordenado
por contaminación y marcando las columnas más afectadas. Reusa las funciones
del registry `build_boxplot_stats` (vallas desde los percentiles del profile)
y `detect_outliers` (regla z-score sobre la muestra cruda de `ctx`).
- Boxplots de Tukey de las columnas más contaminadas (caja, bigotes y puntos
atípicos), delegados a la función nueva `build_boxplots_figure`.
- Multivariante: filas anómalas considerando todas las columnas a la vez con
`isolation_forest_outliers` — nº y % de filas, las más anómalas con su score y
las dimensiones que las hacen raras (top columnas por |z|, vía la función nueva
`summarize_outlier_dims`). El detector se corre en vivo sobre `raw_numeric`
para que el indexado de filas coincida exactamente con el de las dimensiones;
cae al bloque precomputado del perfil cuando no hay muestra cruda (preset lite).
- Interpretación exploratoria: un atípico no es necesariamente un error
(distingue error de dato vs dato real extremo) y recomendaciones (revisar,
winsorizar o re-expresar, enlazando con la re-expresión de Tukey del perfil).
Términos clicables registrados en el glosario compartido: `outlier`,
`tukey_fence`, `zscore`, `isolation_forest`.
Funciones nuevas del registry (dominio datascience, grupo eda):
- `build_boxplots_figure_py_datascience` (figure helper, impura)
- `summarize_outlier_dims_py_datascience` (pura)
El capítulo se activa con ≥1 columna numérica y devuelve None en su ausencia;
lee todo defensivo y nunca lanza. Tests: capítulo (golden + edges + error path +
render PDF/PPTX) y ambas funciones nuevas. Suite de no-regresión de AutomaticEDA
verde. Verificado end-to-end con el dataset Titanic (Fare/Parch/SibSp como las
columnas más contaminadas).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 21:12:40 +02:00
..
2026-06-30 21:12:40 +02:00
2026-06-29 06:37:47 +02:00
2026-06-30 18:52:08 +02:00
2026-06-29 03:51:11 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 03:34:01 +02:00
2026-06-30 17:35:19 +02:00
2026-06-30 17:35:19 +02:00
2026-06-30 17:35:19 +02:00
2026-06-29 03:51:11 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 03:34:01 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-05-04 23:35:22 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-30 15:29:33 +02:00
2026-06-30 15:29:33 +02:00
2026-06-30 15:29:33 +02:00
2026-06-29 06:37:47 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 06:37:47 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-30 14:54:49 +02:00
2026-06-30 14:54:49 +02:00
2026-06-30 14:54:49 +02:00
2026-06-30 21:12:40 +02:00
2026-06-30 21:12:40 +02:00
2026-06-30 21:12:40 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-30 16:08:41 +02:00
2026-06-30 16:08:41 +02:00
2026-06-30 17:56:24 +02:00
2026-04-05 17:11:32 +02:00
2026-04-05 18:45:16 +02:00
2026-04-05 17:11:32 +02:00
2026-06-30 15:29:33 +02:00
2026-06-30 15:29:33 +02:00
2026-06-30 15:29:33 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-04-05 17:11:32 +02:00
2026-04-05 18:45:16 +02:00
2026-04-05 17:11:32 +02:00
2026-06-30 15:04:10 +02:00
2026-06-30 15:04:10 +02:00
2026-06-30 15:04:10 +02:00
2026-06-30 15:04:10 +02:00
2026-06-30 15:04:10 +02:00
2026-06-30 15:04:10 +02:00
2026-06-14 23:55:16 +02:00
2026-06-30 20:37:01 +02:00
2026-06-30 20:37:01 +02:00
2026-06-30 20:37:01 +02:00
2026-05-16 16:33:22 +02:00
2026-06-30 18:10:23 +02:00
2026-06-30 18:10:23 +02:00
2026-06-30 18:10:23 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-04-05 17:11:32 +02:00
2026-06-28 18:16:24 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-04-05 17:11:32 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-04-05 17:11:32 +02:00
2026-06-21 21:43:08 +02:00
2026-06-21 21:43:08 +02:00
2026-06-30 14:57:27 +02:00
2026-06-30 14:57:27 +02:00
2026-06-30 14:57:27 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 18:15:15 +02:00
2026-06-30 18:15:15 +02:00
2026-06-30 18:15:15 +02:00
2026-06-29 06:37:47 +02:00
2026-06-29 06:37:47 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-04-05 17:11:32 +02:00
2026-06-30 15:29:33 +02:00
2026-06-30 15:29:33 +02:00
2026-06-30 15:29:33 +02:00
2026-05-16 16:33:22 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-04-05 17:11:32 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-04-05 17:11:32 +02:00
2026-06-21 14:22:55 +02:00
2026-06-20 18:22:23 +02:00
2026-06-21 14:22:55 +02:00
2026-05-14 00:28:20 +02:00
2026-06-21 14:22:55 +02:00
2026-06-21 14:22:55 +02:00
2026-05-14 00:28:20 +02:00
2026-06-29 03:51:11 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 03:34:01 +02:00
2026-04-30 16:33:38 +02:00
2026-04-30 16:33:38 +02:00
2026-04-05 17:11:32 +02:00
2026-04-05 18:45:16 +02:00
2026-04-05 17:11:32 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-04-30 16:41:09 +02:00
2026-04-30 16:41:09 +02:00
2026-04-05 17:11:32 +02:00
2026-04-05 18:45:16 +02:00
2026-04-05 17:11:32 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 20:38:17 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-29 03:51:11 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 03:34:01 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-04-30 16:33:38 +02:00
2026-04-30 16:33:38 +02:00
2026-04-30 16:41:09 +02:00
2026-05-04 14:43:35 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-05-16 16:33:22 +02:00
2026-04-05 17:11:32 +02:00
2026-05-14 00:28:20 +02:00
2026-04-05 17:11:32 +02:00
2026-05-16 16:33:22 +02:00
2026-06-29 06:37:47 +02:00
2026-06-29 06:37:47 +02:00
2026-06-29 06:37:47 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-04-05 17:11:32 +02:00
2026-05-14 00:28:20 +02:00
2026-04-05 17:11:32 +02:00
2026-04-05 17:11:32 +02:00
2026-05-14 00:28:20 +02:00
2026-04-05 17:11:32 +02:00
2026-05-14 00:28:20 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-06-30 20:38:39 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-14 00:28:20 +02:00
2026-04-02 22:03:51 +02:00
2026-04-05 18:45:16 +02:00
2026-04-02 22:03:51 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-14 00:28:20 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-04-05 17:11:32 +02:00
2026-05-14 00:28:20 +02:00
2026-04-05 17:11:32 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-30 17:35:19 +02:00
2026-06-30 17:35:19 +02:00
2026-06-30 17:35:19 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 14:57:27 +02:00
2026-06-30 14:57:27 +02:00
2026-06-30 14:57:27 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-21 14:22:55 +02:00
2026-06-21 14:22:55 +02:00
2026-06-21 14:22:55 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-30 20:37:01 +02:00
2026-06-30 20:37:01 +02:00
2026-06-30 20:37:01 +02:00
2026-06-21 21:43:08 +02:00
2026-06-21 21:43:08 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-30 18:52:08 +02:00
2026-06-30 18:52:08 +02:00
2026-06-30 18:52:08 +02:00
2026-06-30 14:30:31 +02:00
2026-06-30 14:30:31 +02:00
2026-06-30 14:30:31 +02:00
2026-06-30 14:30:31 +02:00
2026-06-30 14:30:31 +02:00
2026-06-30 14:30:31 +02:00
2026-06-29 04:05:38 +02:00
2026-06-20 18:22:23 +02:00
2026-06-29 04:05:38 +02:00
2026-06-29 04:05:38 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 04:05:38 +02:00
2026-05-14 00:28:20 +02:00
2026-04-02 22:03:51 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-06-30 15:35:42 +02:00
2026-05-14 00:28:20 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-21 14:22:55 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-14 23:55:16 +02:00
2026-06-14 23:55:16 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-14 23:55:16 +02:00
2026-06-14 23:55:16 +02:00
2026-06-14 23:55:16 +02:00
2026-06-14 23:55:16 +02:00
2026-06-14 23:55:16 +02:00
2026-06-14 23:55:16 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-14 00:28:20 +02:00
2026-06-29 06:37:47 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 06:37:47 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 15:33:55 +02:00
2026-06-30 18:15:15 +02:00
2026-06-30 18:15:15 +02:00
2026-06-30 18:15:15 +02:00
2026-06-29 03:51:11 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 03:34:01 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-30 21:12:40 +02:00
2026-06-30 21:12:40 +02:00
2026-06-30 21:12:40 +02:00
2026-06-30 18:10:23 +02:00
2026-06-30 18:10:23 +02:00
2026-06-30 18:10:23 +02:00
2026-06-21 14:22:55 +02:00
2026-06-21 14:22:55 +02:00
2026-06-21 14:22:55 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-29 03:51:11 +02:00
2026-06-29 03:34:01 +02:00
2026-06-29 03:34:01 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-06-20 18:22:23 +02:00
2026-05-04 23:35:22 +02:00
2026-05-04 23:35:22 +02:00
2026-05-13 00:50:34 +02:00
2026-05-13 00:50:34 +02:00
2026-05-13 00:50:34 +02:00
2026-05-13 00:50:34 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 23:35:22 +02:00