7ac69ab4fb
Bloque del grupo eda (sesion ausente EDA-benchmark): - 8 funciones nuevas: adf_kpss_stationarity, acf_pacf, stl_decompose, to_returns, fdr_correction, suggest_reexpression, exploratory_caveats, render_eda_pdf - integracion: profile_table (run_series, emit_pdf), association_matrix (FDR Benjamini-Hochberg), render_eda_markdown (secciones series/reexpresion/caveats) - slash commands /eda y /capitulos - issues 0173-0177: mejoras del /eda derivadas del benchmark sobre 12 datasets reales (outlier_pct x100, periodo estacional, FK inference, render models, tipos id-like) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.6 KiB
4.6 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| exploratory_caveats | function | py | datascience | 1.0.0 | pure | def exploratory_caveats(profile: dict) -> dict | Genera las advertencias que recuerdan que un EDA es EXPLORATORIO (genera hipotesis), no confirmatorio. Inspecciona un TableProfile del grupo eda y devuelve solo los caveats que aplican a lo calculado: correlacion!=causalidad, overfitting in-sample, p-values no son confirmacion, comparaciones multiples, outliers!=errores, muestra pequena, datos faltantes. El caveat general va siempre. Pura. |
|
false |
|
dict con `n` (numero de caveats), `caveats` (lista de {id, topic, message, reference} empezando por el general `exploratory_nature`) y `note` (vacio en caso normal; mensaje si el perfil esta vacio y solo se devuelve el caveat general). Nunca lanza excepcion. | true |
|
python/functions/datascience/exploratory_caveats_test.py | python/functions/datascience/exploratory_caveats.py |
Ejemplo
from datascience import exploratory_caveats
profile = {
"n_rows": 5000,
"correlations": {"pairs": [
{"a": "precio", "b": "ventas", "value": 0.82},
{"a": "precio", "b": "margen", "value": -0.61},
]},
"models": {"pca": {"explained": [0.6, 0.3]}, "normality": {"precio": {"is_normal": False}}},
"columns": [{"name": "precio", "numeric": {"n_outliers": 4, "outlier_pct": 0.8}}],
}
out = exploratory_caveats(profile)
out["n"] # -> 6
[c["id"] for c in out["caveats"]]
# -> ['exploratory_nature', 'correlation_not_causation', 'in_sample_overfitting',
# 'p_values_not_confirmation', 'multiple_comparisons', 'outliers_not_errors']
# Perfil vacio -> solo la advertencia general.
exploratory_caveats({})["caveats"][0]["id"] # -> "exploratory_nature"
Cuando usarla
Al cerrar un EDA, antes de entregar el reporte o de tomar decisiones sobre lo que muestra. Convierte la disciplina exploratoria (Tukey: el EDA da hipotesis, no conclusiones) en una lista accionable de advertencias adaptada a lo que realmente se calculo en ese perfil. Pensada para inyectar una seccion "Advertencias / esto es exploratorio" en el markdown de un reporte EDA, o para que un agente recuerde no tratar una correlacion o una "significancia" como confirmacion. NO la uses para calcular estadisticos: solo razona sobre el contenido de un TableProfile ya hecho.
Gotchas
- Es pura: no recalcula nada, solo decide que advertencias aplican a partir de
las claves presentes en el
profile. Si una fase del EDA no se corrio (p.ej. sinmodels), su caveat no aparece — es deliberado. - El caveat
exploratory_nature(general) va SIEMPRE, incluso con perfil vacio oNone(en ese casonotelo avisa). No lanza excepcion ante entradas raras. correlationsse tolera como lista de pares o como dict conpairs/strongest(mismo shape que consumerender_eda_markdown). Un solo par disparacorrelation_not_causation+in_sample_overfitting; >=2 anaden ademasmultiple_comparisons.- Umbrales: muestra pequena si
n_rows < 30; faltantes notables sinull_cell_pct > 0.2(fraccion) o si hayall_null_cols. Son convenciones prudentes, ajustables si el caller lo necesita (recomputando sobre el mismo profile). null_cell_pctse asume fraccion 0-1 (como en el resto del grupo eda). Si tu pipeline lo guarda como porcentaje 0-100, el umbral se dispara casi siempre.