user@devops:~$ cat README.md
Causal Inference & Uplift -- efectos de tratamiento
# Descripción
Inferencia causal y modelado de uplift implementados desde cero en Python + scikit-learn (sin DoWhy ni EconML). Parte 1: datos sinteticos n=6.000 con CATE verdadero tau(x)=2*sigmoid(x0)+1.5*x1-0.8*x2^2+0.5*x0*x1 y propensity dependiente de confusores x0/x3 (treated 44.2%, train 4.200 / test 1.800). Parte 2: propensity LR AUC 0.76 y GBM AUC 0.80, overlap 0.05-0.95 retiene 99.9%, ESS IPW 81.5%. Parte 3: ATE Naive 0.747 (bias +0.51 por confusion) vs IPW Hajek 0.357 vs AIPW doubly robust 0.261 (bias +0.02, CI bootstrap 95% [0.19, 0.33] cubre la verdad 0.237). Parte 4: metalearners CATE — S-learner PEHE 1.05, T-learner 0.45, X-learner (Kunzel 2019) 0.42, baseline lineal 1.17. Parte 5: curvas Qini / AUUC (X=695 vs random 261, oracle 703); top-decile uplift observado ~3.8. Parte 6: simulacion de politica — X@20% logra Y=1.96 superando treat-all (1.61) al concentrar el tratamiento en el quintil de mayor tau. Hallazgo: la identificacion (AIPW) corrige el sesgo observacional; el ranking de uplift convierte el CATE en valor de negocio con presupuesto limitado. 7 visualizaciones.
# Características principales
$ Datos sinteticos con CATE y propensity verdaderos conocidos (ground truth para PEHE)
$ Propensity scores LR+GBM, diagnostico de common support, calibracion y ESS de IPW
$ ATE Naive vs IPW (Hajek, trim 5%) vs AIPW doubly robust con IC bootstrap 95%
$ AIPW recupera ATE 0.261 (verdad 0.237); Naive sesgado a 0.75 por confusores x0/x3
$ Metalearners S/T/X-learner (Kunzel et al.): X gana con PEHE 0.42 vs S 1.05
$ Curvas Qini y AUUC model-free en test; top-decile uplift ~3.8
$ Politica de tratamiento por presupuesto: X@20% Y=1.96 > treat-all 1.61
$ 7 visualizaciones: overview, propensity, ATE, CATE scatter, Qini, policy, dashboard
# Galería
# Tecnologías utilizadas