Regresión predictiva o causal: ¿qué se intenta estimar?
La misma familia de regresión puede servir dos objetivos incompatibles: predecir gasto futuro o estimar el efecto de una intervención. Cambian estimando, variables admisibles, diseño y validación.
Respuesta directa
Separar correctamente una predicción del día 7 de un efecto causal total definido en el día 0.
La misma familia de regresión puede servir dos objetivos incompatibles: predecir gasto futuro o estimar el efecto de una intervención. Cambian estimando, variables admisibles, diseño y validación.
01
La respuesta en 30 segundos
1
Una regresión predictiva estima un valor futuro para una unidad nueva y se evalúa con datos no usados en el ajuste.
2
Una regresión causal busca el efecto de una intervención definida en una población y depende de un diseño de identificación, no solo del ajuste.
3
Una variable posterior al tratamiento puede mejorar la predicción en el día 7 y ser inadmisible para el efecto causal total decidido en el día 0.
02
Tres niveles de lectura
- 1
Responsable: aclare si la decisión pregunta quién gastará más o qué causaría enviar el recordatorio.
- 2
Profesional: fije origen de predicción, intervención, comparador, resultado, población y variables disponibles en cada momento.
- 3
Analista: separe pérdida predictiva, estimando causal, identificación, estimación y alcance de la incertidumbre.
03
Situación de marketing concreta
Un comercio aleatoriza en el día 0 un recordatorio por correo entre 2.400 clientes elegibles. En el día 7 quiere predecir el gasto a 30 días con la información disponible. Por separado quiere el efecto total medio del envío. El índice de interacción del día 7 sirve para la primera pregunta, pero ocurre después de la asignación para la segunda.
04
Dos preguntas, dos estimandos
Predicción: para un cliente observado en el día 7, estimar E[Y|X] y el error en 600 clientes holdout. Causalidad: entre 2.400 clientes aleatorizados, estimar ATE = E[Y(1)−Y(0)], con T=1 un único recordatorio en el día 0 y ninguno más hasta el día 30, T=0 ningún recordatorio hasta el día 30 e Y gasto a 30 días en euros.
Predicción
μ(x) = E[Y | X=x]Causalidad
ATE = E[Y(1) − Y(0)]05
Por qué la misma regresión puede engañar
- Un RMSE bajo no define intervención ni contrafactual y no demuestra ningún efecto causal.
- Añadir la interacción posterior al tratamiento ayuda a predecir Y, pero bloquea parte de la vía T → M → Y al leer el coeficiente de T.
- Seleccionar variables porque predicen bien no sustituye el razonamiento causal sobre confusores, mediadores y colliders.
Arnold et al. (2020) Ramspek et al. (2021) Cinelli, Forney & Pearl (2022)
06
Intuición y cronología causal
L y S preceden a T, pero no la causan porque T es aleatoria. El DAG declarado es L,S → M; L,S → Y; T → M → Y; y T → Y. L es intención basal, S gasto previo y M interacción del día 7. En el día 7 M es información predictiva disponible. Para el efecto total de T decidido en el día 0, M es un mediador que no debe ajustarse. La misma columna cambia de función según la pregunta y el momento.
07
Datos necesarios y disponibilidad
- customer_id; split train/holdout; baseline_intent_z y prior_spend_eur medidos antes del día 0.
- reminder_assigned es la asignación aleatoria del día 0; engagement_index_7d se mide después.
- spend_30d_eur es el resultado continuo. Las 1.800 filas train ajustan predicciones; 600 filas holdout evalúan su transporte interno.
08
Modelos formales y símbolos
Predicción en día 7
Y = β₀ + β₁L + β₂S + β₃T + β₄M + εL: baseline_intent_z; S: prior_spend_eur; T: reminder_assigned; M: engagement_index_7d; Y: spend_30d_eur.
Efecto total
Y = α₀ + τT + α₁L + α₂S + uτ: diferencia media ajustada por precisión; M se excluye.
μ(x) es la media condicional de Y para el vector de predictores x. β₀ y α₀ son interceptos; β₁ a β₄ y α₁ a α₂ son pendientes; τ es el ATE; ε y u son los residuos de ambos modelos.
09
Cálculo declarado, paso a paso
- 01
Generar o cargar 2.400 filas con semilla 20260819 y conservar el split fijado.
- 02
Ajustar dos predicciones en train: sin M y con M; evaluar solo en holdout.
- 03
Remuestrear por pares los 600 errores holdout 2.000 veces para el IC de mejora del RMSE.
- 04
Estimar τ en las 2.400 unidades excluyendo M y calcular el IC robusto HC1.
- 05
Ajustar por separado el modelo con M para mostrar por qué su coeficiente de T no responde al ATE total.
10
Ejemplo numérico completo
Dataset sintético MSC. No describe ninguna campaña real.
| Objeto | Especificación | Resultado |
|---|---|---|
| RMSE | Predicción sin M | 6,1006 € |
| RMSE | Predicción con M | 5,1734 € |
| ATE | Modelo causal sin M | 8,3667 € |
| βT | M | Modelo ajustado por M | 2,0657 € |
Mejora predictiva
15,20%
95% CI [11,05%; 19,62%]
ATE
8,37 €
95% CI [7,87 €; 8,86 €]
Verdad del generador
8,80 €
11
Supuestos de validez
- Predicción: definiciones, disponibilidad en día 7, población y medición estables entre train, holdout y uso futuro.
- Causalidad: aleatorización correcta, consistencia de ambas políticas, ausencia de interferencia, resultado observado y seguimiento no diferencial.
- El modelo lineal estima una diferencia media y puede mejorar la precisión; la aleatorización, no la forma de regresión, identifica el ATE.
Hernán & Robins, Causal Inference: What If Arnold et al. (2020) Cinelli, Forney & Pearl (2022)
12
Diagnósticos e incertidumbre
01
Predicción: comparar RMSE, MAE y R² en holdout; comprobar deriva, valores fuera de soporte y disponibilidad real de M en el origen.
02
Causalidad: comprobar proporción de asignación, equilibrio pretratamiento, pérdida, contaminación y errores estándar robustos HC1.
03
El IC bootstrap de la mejora del RMSE describe este holdout sintético. El IC HC1 del ATE describe ruido muestral bajo el diseño declarado, no validez externa.
13
Interpretar sin mezclar objetivos
El modelo del día 7 con M reduce el RMSE un 15,20%, IC bootstrap 95% [11,05%; 19,62%]. Es una mejora predictiva en este holdout. El modelo causal sin M estima el ATE en 8,37 €, IC HC1 [7,87 €; 8,86 €], cerca de la verdad sintética de 8,80 €. Con M, el coeficiente de T baja a 2,07 € y deja de representar el efecto total.
14
Conclusiones permitidas y prohibidas
Permitido
- Elegir el modelo con M para una predicción en el día 7 en un contexto comparable.
- Informar 8,37 € como estimación del efecto total medio bajo el protocolo aleatorio declarado.
Prohibido
- Presentar la reducción del RMSE como prueba de que el recordatorio aumenta el gasto.
- Leer 2,07 € como efecto causal total o generalizar 8,37 € a otra población sin nueva evidencia.
15
Decisión de marketing posible
Mantener dos objetos separados: una puntuación de gasto en el día 7 que puede usar M y una estimación experimental del efecto total que la excluye. La primera prioriza una acción en el día 7; la segunda decide si mantener la política de recordatorio.
16
Cuándo usar cada enfoque
01
Use regresión predictiva cuando el objetivo sea un resultado futuro individual y el origen esté explícito.
02
Use estimación causal cuando una decisión cambie T y un diseño creíble identifique el contrafactual.
03
No use este modelo lineal si resultado, soporte o mecanismo de asignación difieren materialmente sin nueva auditoría.
04
Alternativas: validación temporal y modelos no lineales para predecir; diferencia de medias aleatoria para el ATE; análisis de mediación específico si el efecto directo pasa a ser el objetivo.
17
Implementaciones reproducibles
Python 3.13 y R 4.5 son referencias. SPSS 31 y SAS 9.4 son sintaxis secundarias para el modelo causal; no certifican equivalencia de errores estándar ni supuestos.
Python 3.13
python msc-p018-reference.py --csv msc-p018-predictive-causal.csvR 4.5
d <- read.csv("msc-p018-predictive-causal.csv")
train <- subset(d, split == "train"); hold <- subset(d, split == "holdout")
pre <- lm(spend_30d_eur ~ baseline_intent_z + prior_spend_eur + reminder_assigned, train)
post <- lm(spend_30d_eur ~ baseline_intent_z + prior_spend_eur + reminder_assigned + engagement_index_7d, train)
e0 <- hold$spend_30d_eur - predict(pre, hold)
e1 <- hold$spend_30d_eur - predict(post, hold)
rmse <- function(e) sqrt(mean(e^2))
c(pre_rmse=rmse(e0), post_rmse=rmse(e1), improvement=100*(rmse(e0)-rmse(e1))/rmse(e0))
set.seed(20260819)
b <- replicate(2000, { i <- sample(seq_along(e0), replace=TRUE); 100*(rmse(e0[i])-rmse(e1[i]))/rmse(e0[i]) })
quantile(b, c(.025, .975))
hc1 <- function(fit) {
X <- model.matrix(fit); e <- residuals(fit); n <- nrow(X); p <- ncol(X)
bread <- solve(crossprod(X)); meat <- crossprod(X, X * e^2)
se <- sqrt(diag((n/(n-p)) * bread %*% meat %*% bread))
cbind(estimate=coef(fit), se=se, lower=coef(fit)-1.959964*se, upper=coef(fit)+1.959964*se)
}
total <- lm(spend_30d_eur ~ reminder_assigned + baseline_intent_z + prior_spend_eur, d)
adjusted <- lm(spend_30d_eur ~ reminder_assigned + baseline_intent_z + prior_spend_eur + engagement_index_7d, d)
hc1(total)["reminder_assigned", ]
hc1(adjusted)["reminder_assigned", ]IBM SPSS Statistics 31
GET DATA /TYPE=TXT /FILE='msc-p018-predictive-causal.csv'
/DELCASE=LINE /DELIMITERS="," /ARRANGEMENT=DELIMITED /FIRSTCASE=2
/VARIABLES=customer_id A5 split A7 baseline_intent_z F12.6 prior_spend_eur F12.6
reminder_assigned F1.0 engagement_index_7d F12.6 spend_30d_eur F12.6.
REGRESSION /DEPENDENT spend_30d_eur
/METHOD=ENTER reminder_assigned baseline_intent_z prior_spend_eur.SAS 9.4
proc import datafile="msc-p018-predictive-causal.csv" out=p018 dbms=csv replace; guessingrows=max; run;
proc reg data=p018;
model spend_30d_eur = reminder_assigned baseline_intent_z prior_spend_eur / hcc hccmethod=1;
run; quit;18
Entregable final esperado
Un expediente contiene dos fichas separadas: predicción con origen en día 7, variables admisibles, métricas holdout y deriva; causalidad con protocolo en día 0, DAG, ATE, intervalo, amenazas y población de validez. Los resultados nunca se fusionan en una única conclusión.
19
Fuentes científicas y nivel de evidencia
- Shmueli (2010)
Fundamento conceptual: objetivos, datos, validación y criterios difieren entre explicación y predicción.
- Hernán & Robins, Causal Inference: What If
Texto metodológico completo: contrafactuales, ATE, aleatorización, consistencia e interferencia.
- Arnold et al. (2020)
Artículo metodológico abierto: selección de variables, evaluación e interpretación difieren según la pregunta.
- Cinelli, Forney & Pearl (2022)
Fundamento causal: ajustar un mediador puede bloquear el efecto total buscado.
- Ramspek et al. (2021)
Revisión empírica: documenta y acota la frecuencia de confusión en 180 estudios observacionales.
Estos textos sustentan el método. Dataset, mecanismo generador y resultados son creaciones sintéticas MSC, no validación empírica externa.
Dataset · Herramienta
Conexiones metodológicas
