El problema: una recomendación aparentemente respaldada por datos
Una empresa observa que las máquinas con mantenimiento preventivo se averían más que las demás. Un sistema de IA reconoce esa asociación y predice correctamente un riesgo mayor para las mantenidas. ¿Sería sensato usar esa predicción para reducir el mantenimiento? No necesariamente: quizá se interviene precisamente en las máquinas ya más frágiles. Los datos podrían describir cómo seleccionamos los casos y no el efecto de intervenir.
Este artículo pregunta cómo pasar de «¿qué máquinas fallan?» a «¿qué cambiaría si interviniéramos?». Construiremos una tabla sintética de dos mil máquinas y seguiremos todos los pasos: comparación ingenua, comparación dentro de grupos comparables, reconstrucción de la población e hipótesis necesarias. No demostraremos que un mantenimiento concreto funciona, sino cómo una predicción correcta puede utilizarse para responder a la pregunta equivocada.
Tres variables y un horizonte temporal común
Llamemos Z al grupo de antigüedad, vieja o nueva, medido antes de decidir. M vale 1 si se realiza una intervención preventiva bien definida y 0 en caso contrario. Y vale 1 si aparece al menos una avería durante el mes siguiente y 0 si no. El riesgo es una probabilidad durante el mismo mes, no averías por hora. Comparar duraciones distintas o intervenciones distintas bajo una etiqueta cambiaría el problema.
En la construcción didáctica la mitad de las máquinas es vieja. Se mantiene al 90% de las viejas y al 10% de las nuevas. Dentro de cada grupo suponemos que la asignación no depende de otras causas del fallo: es una hipótesis del mundo sintético, no algo que una tabla real demuestre sola. Fijamos riesgos del 40% sin intervención y 20% con ella para las viejas, y del 4% y 2% para las nuevas. Los conteos coinciden exactamente con esas probabilidades, sin simular ruido muestral.
| Z (0 nueva, 1 vieja) | M | Máquinas | Averías | Riesgo |
|---|---|---|---|---|
| 1 | 1 | 900 | 180 | 20% |
| 1 | 0 | 100 | 40 | 40% |
| 0 | 1 | 100 | 2 | 2% |
| 0 | 0 | 900 | 36 | 4% |
Una comparación engañosa con divisiones correctas
Sumemos la primera y tercera fila: entre las mil máquinas mantenidas hay 182 averías, el 18,2%. Entre las mil no mantenidas hay 76, el 7,6%. La diferencia es +10,6 puntos porcentuales. No hay error aritmético, pero los grupos son distintos: el primero contiene un 90% de máquinas viejas; el segundo, solo un 10%. La comparación incorpora esa diferencia antes de decir nada sobre la intervención.
La barra vertical significa «entre los casos en que»: P(Y=1 | M=1) es el riesgo entre las máquinas mantenidas según la política histórica. No es el riesgo que tendrían todas si impusiéramos mantenimiento a todas. Un modelo que devuelve 18,2% y 7,6% reproduce correctamente esas frecuencias agregadas. La corrección predictiva no autoriza a interpretar la diferencia como efecto de cambiar la política.
Comparación dentro de grupos: el signo se invierte
Entre las viejas comparamos 20% con 40%; entre las nuevas, 2% con 4%. En ambos grupos el riesgo con mantenimiento es menor. Esta inversión entre comparación agregada y estratificada es una forma de la paradoja de Simpson. No contradice la probabilidad: cambian los pesos de mezcla. El agregado mantenido está dominado por las viejas; el no mantenido, por las nuevas. Las medias responden a preguntas distintas.
Estratificar por edad no convierte automáticamente una asociación en causa. Funciona en el mundo construido porque estipulamos que, dentro de Z, la asignación no depende de otras causas del fallo. Si un técnico eligiera máquinas por un ruido anómalo no registrado, incluso máquinas de igual edad podrían no ser comparables. La cuestión científica es explicar por qué vale la comparación, no elegir la agrupación que produce el resultado deseado.
Intervenir significa cambiar una regla
Representemos las hipótesis con tres flechas: Z → M, Z → Y y M → Y. La antigüedad afecta tanto a la elección de intervenir como al riesgo; intervenir puede afectar al fallo. Z es un factor de confusión en el modelo. El operador do(M=1) designa una acción hipotética que asigna M=1 independientemente de la antigua regla Z → M y deja iguales los demás mecanismos. No es un comando ni una prueba en fábrica: define la pregunta causal.
La pregunta pasa a ser: en la misma población, mitad vieja y mitad nueva, ¿qué riesgo habría asignando mantenimiento a todas o a ninguna? Mantener fija la población es esencial. No sustituimos máquinas viejas por nuevas ni comparamos departamentos con distinta composición. Solo cambiamos M bajo las hipótesis declaradas. Esta precisión evita que «la IA recomienda mantenimiento» oculte objetivos distintos tras una frase sencilla.
Profundización: un mundo sintético que genera la tabla
Podemos explicitar la comparabilidad en vez de dejarla como declaración verbal. Imaginemos tres números independientes UZ, UM y UY, uniformes entre cero y uno. El primero determina la antigüedad; el segundo, comparado con qZ, determina el mantenimiento; el tercero, comparado con rZM, determina la avería. Representan variación no explicada por otras variables. Es una definición probabilística del mundo didáctico: el programa calcula probabilidades exactas sin extraer muestras aleatorias.
La notación 1[condición] vale uno si se cumple y cero si no. Z=1 identifica las viejas. En rZM el primer índice es el grupo y el segundo la decisión: r10 es el riesgo de una vieja sin mantenimiento, no de una nueva mantenida. La independencia de UM y UY impide que seleccionar la intervención revele información adicional sobre el fallo dentro del grupo. Si compartieran una causa oculta, esa propiedad podría fallar.
La intervención hipotética sustituye solo la segunda ecuación por M=m. No cambia la distribución de edades ni la variabilidad del fallo. Antes, la probabilidad conjunta se factoriza como P(Z) × P(M|Z) × P(Y|M,Z). Al fijar M desaparece el factor de la antigua asignación y queda P(Z) × P(Y|m,Z). Sumando grupos obtenemos exactamente la fórmula de estandarización siguiente. Conocemos así su origen y, sobre todo, qué paso fallaría si el modelo causal fuera incorrecto.
Reconstruir la comparación: mismos pesos, dos decisiones
Usamos los riesgos dentro de grupos, ponderados por la población objetivo: 50% viejas y 50% nuevas para ambas decisiones. Es la estandarización. La fórmula suma, para cada edad z, el riesgo con decisión m dentro del grupo multiplicado por su proporción. Su interpretación causal depende de las hipótesis declaradas; siempre podemos calcular una media ponderada, pero el significado no nace solo del álgebra.
En el mundo supuesto, mantener todas da un riesgo medio del 11%, frente al 22% sin mantener ninguna: una reducción de 11 puntos porcentuales. En dos mil máquinas correspondería a 220 averías esperadas en vez de 440. «Esperadas» no significa garantizadas en un mes real. Tampoco equivale a «reducción del 11%»: la reducción relativa es del 50%, porque 11 es la mitad de 22. Informar diferencia absoluta y base de comparación evita ambigüedad.
El gráfico explica por qué importan los pesos

El eje horizontal indica la proporción de máquinas viejas en la población comparada; el vertical, el riesgo mensual porcentual. Ambas curvas crecen al incluir más máquinas frágiles. Para cada proporción común, mantenimiento queda por debajo. El error inicial lee la curva con mantenimiento en 0,9 y la otra en 0,1: salen 18,2% y 7,6%, pero hemos cambiado intervención y composición a la vez. El gráfico revela lo que oculta la agregación.
Un segundo cálculo: dar más peso a los casos raros
Podemos reconstruir el resultado ponderando por la inversa de la probabilidad de recibir la intervención observada. Entre las mantenidas, las viejas reciben peso 1/0,9 y las nuevas 1/0,1. Las cien nuevas representan así mil unidades ponderadas, igual que las novecientas viejas. El riesgo ponderado es (180/0,9 + 2/0,1)/2000 = 0,11. Sin mantenimiento se invierten los pesos: (40/0,1 + 36/0,9)/2000 = 0,22. No creamos observaciones: cambiamos su representación en el cálculo.
El programa verifica la coincidencia. No vuelve mágicamente robustos los métodos: aquí las probabilidades y riesgos se conocen por construcción. Con datos reales hay que estimarlos, y pesos grandes hacen el resultado sensible a pocos casos. Si ninguna máquina nueva recibiera mantenimiento, no habría observaciones para compararla. Un algoritmo más sofisticado podría extrapolar, pero necesitaría hipótesis adicionales en vez de presentar la ausencia de datos como información.
Hipótesis que una buena puntuación predictiva no verifica
La primera hipótesis es comparabilidad dentro de Z: no quedan causas comunes no medidas de mantenimiento y avería. La segunda es positividad: ambas decisiones deben ser observables en cada grupo objetivo. La tercera es consistencia: M=1 debe designar la misma acción definida y el mismo horizonte. También suponemos que intervenir en una máquina no cambia directamente el resultado de otras. Una flota con recursos compartidos podría violar esa última condición.
Añadir todas las columnas disponibles tampoco es una solución universal. La temperatura medida después del mantenimiento podría ser parte del mecanismo que reduce fallos: mantenerla fija puede cambiar la pregunta del efecto total a otro efecto. Una variable influida tanto por la intervención como por una causa del fallo puede introducir sesgo al seleccionar casos. Decidir qué ajustar requiere orden temporal y conocimiento del proceso, no solo correlaciones o importancia de variables.
Qué cambia para un sistema de IA empresarial
Un predictor sigue siendo útil para anticipar la carga del servicio bajo la política actual. Eso difiere de elegir la mejor política. Para decidir sobre quién intervenir hay que definir efecto y población, y después evaluar costes y restricciones además de riesgos. En el ejemplo, el beneficio absoluto es mayor para las viejas: 20 puntos frente a 2. Pero sin coste de intervención, coste del fallo y capacidad disponible todavía no tenemos una política óptima.
Una evaluación experimental bien diseñada puede hacer más creíble la comparación si resulta viable con las restricciones operativas adecuadas. No proponemos negar mantenimiento necesario ni hemos realizado experimentos de campo. El trabajo es un ejercicio determinista con datos sintéticos, código y resultados guardados. No son datos de clientes, resultados de un producto ni medidas de EL-AI. Su valor es transparentar el razonamiento antes de buscar respuestas en datos reales.
Conclusión: predecir no equivale a decidir
La predicción inicial del 18,2% para las mantenidas podía ser correcta y la recomendación de reducir mantenimiento, equivocada. Confundimos el riesgo de un grupo seleccionado con el efecto de actuar sobre la misma población. Al recomponer grupos comparables con iguales pesos, el mundo sintético pasa de un aumento aparente de 10,6 puntos a una reducción causal de 11, válida solo bajo las hipótesis declaradas. Antes de confiar decisiones a la IA, hay que aclarar qué cambio evaluamos y qué hace creíble la comparación.
Fuentes, código y límites de reproducción
Judea Pearl, Causal inference in statistics: An overview, Statistics Surveys 3, 2009, pp. 96–146, DOI 10.1214/09-SS057. Se consultaron las secciones 3.2.1–3.2.3 sobre intervenciones y 3.3.1 sobre el criterio back-door, incluida la ecuación 25. Es una revisión científica publicada, no un nuevo benchmark industrial. La tabla y los cálculos son originales solo como construcción didáctica; no son nueva investigación causal ni reproducción de experimentos de un artículo.
El código breve calcula riesgos observados y estandarizados. El archivo incluye comprobaciones con pesos inversos y el gráfico de composición. No se entrenó ningún modelo de IA, no se simularon muestras aleatorias ni se estiman intervalos de confianza con estos conteos construidos. Son comprobaciones aritméticas reproducibles del caso hipotético, no medidas de incertidumbre o rendimiento en una flota real.
Judea Pearl (2009) — Causal inference in statistics: An overview.
old = {1: (180, 900), 0: (40, 100)}
new = {1: (2, 100), 0: (36, 900)}
for m in [1, 0]:
observed = (old[m][0]+new[m][0])/(old[m][1]+new[m][1])
standardized = 0.5*old[m][0]/old[m][1]+0.5*new[m][0]/new[m][1]
print(m, f"observed={observed:.3f}", f"standardized={standardized:.3f}")
Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 27 de septiembre de 2026.

