Parte VII · Cómo se hizo
19 · Metodología y determinismo
Todas las cifras de esta web se pueden reproducir a partir del fichero original. Ninguna la calcula un modelo de lenguaje: salen de scripts deterministas (misma entrada, misma salida, con semilla fija) y la web los lee de los ficheros que esos scripts escriben.
El proceso, en 10 scripts
| 01_perfilado.py | Inspección: tipos, huecos, formatos, variantes. |
| 02_etl.py | Limpieza idempotente, marca de anomalías y log de transformaciones. |
| 03_diccionario.py | Diccionario de datos (hechos + descripción). |
| 04_anonimizacion.py | Pseudónimo aleatorio; fichero interno y público; k y l medidos sobre el público. |
| 05_eda.py | Descriptivos, anomalías, las 3 preguntas, KPI y mapa de calor, sobre ventas válidas. |
| 06_robustez.py | Tests de permutación que miden lo mismo que se afirma. |
| 07_ml.py | ¿Se puede segmentar?, predicción de la satisfacción, IsolationForest contra la regla. |
| 08_inferencia.py | Los contrastes de la parte de señal frente a ruido: intervalos, potencia, comparaciones múltiples y Simpson. |
| 09_segmentacion.py | Las técnicas de agrupamiento y de validación de modelos, sobre la tabla agrupada por correo. |
| 10_atipicos_kpi.py | Los conceptos de atípicos, estadística descriptiva y cuadro de mando que no calculaban los anteriores. |
Las reglas que sigue el análisis
- El encargo es la referencia: cada requisito del encargo tiene su evidencia en un fichero y un script de comprobación,
verificar_correcciones.py, revisa que esté. - Rango antes que agregado: se mira el rango de cada variable dentro de su producto antes de sumar nada. Lo que cae fuera es error hasta que se demuestre lo contrario.
- La regla decide, el algoritmo contrasta: las 16 anomalías las marca una regla de negocio; IsolationForest, sin conocerla, detecta 15 de ellas.
- Misma base al comparar: meses completos y ventas válidas; nunca sumas de periodos desiguales.
- El test mide lo que se afirma: cada test declara su estadístico y el código calcula exactamente ese.
- No inventar dato: la satisfacción ausente se deja ausente y las anomalías no se «corrigen».
- Verificación independiente: el 13/09/2026 un verificador recalculó 16 cifras desde el CSV crudo con código propio y sin pandas y cuadraron todas. Un revisor intentó refutar las siete conclusiones con otros métodos. No lo consiguió con ninguna, matizó cinco y encontró dos defectos de anonimización que se corrigieron. El 23/09/2026, antes de publicar, se repitió con la web entera: tres verificadores recalcularon desde el fichero original 1.439 cifras de las páginas. Cuadraron 1.423. Ocho no cuadraban por redondeos o por cómo las leía la página, y se corrigieron. Tres son un mismo p de 0,60 que con más barajados sale 0,62, sin cambiar la conclusión. Las cinco restantes no son medidas del dato. Un revisor intentó refutar 51 conclusiones: se sostuvieron 23, se matizaron 23 y se corrigieron las cinco que caían.
La primera versión de esta web se dio por verificada con una comprobación de sumas y tenía errores que una revisión posterior encontró:
- las 16 ventas fuera de las reglas del catálogo se daban por pedidos legítimos;
- el mes del año se elegía sumando meses con distinto número de años y el test medía la variación del ticket medio en vez de la facturación;
- los correos conservaban las tildes y los clientes se agrupaban por un correo que comparten personas distintas;
- la k-anonimidad se medía sobre columnas distintas de las que se entregaban, con pseudónimos numerados por orden;
- en la primera corrección del mismo día, el fichero público seguía llevando el producto y el pseudónimo juntaba a personas distintas con el mismo nombre. Lo encontró el revisor.
- faltaban el mapa de calor, los KPI de crecimiento y satisfacción, las alertas y el informe técnico.
Todo está corregido en los scripts y los ficheros de la web salen de ellos.
Piezas propias que se reutilizan
Una de ellas es el contrato de resultado, con el que cada etapa entrega su salida en un formato que pueden leer tanto un programa como una persona:
Contrato de resultado (Result Contract)
{
"status": "OK", // OK | WARN | BLOCKED
"risk": "LOW", // LOW | MEDIUM | HIGH
"summary": "19.984 ventas válidas (20.000 sin duplicados, 16 anómalas fuera); sin correlación ventas~satisfacción.",
"artifacts": ["eda.json", "robustez.json"],
"next": "Modelado y cuadro de mando"
} El encargo pide mostrar los prompts utilizados. Este es el que recibió el verificador independiente de cifras.
Prompt del verificador independiente
Eres el verificador independiente. NO reutilices los scripts:
recalcula desde cero, con tu propio código, sobre el fichero crudo.
Reglas que tienes que reproducir: quitar duplicados exactos; importe = cant * precio;
anomalía = cantidad fuera de 1-5 o precio distinto del de catálogo de su producto.
Confirma o refuta cada cifra (al céntimo):
- facturación registrada y facturación válida
- número de anomalías y su importe
- mes con más facturación y mes del año con mayor media (meses completos)
- k mínima de [año, provincia] en el fichero público
Devuelve una tabla: cifra | tu_valor | publicado | CUADRA/NO CUADRA. Siguiente: conclusiones y siguientes pasos →