Analítica de Producto (IT)Analista de productos

Describa el enfoque para aislar el efecto causal del programa de referidos en el LTV a largo plazo en presencia de endogeneidad de auto-selección y retrasos en la conversión de usuarios invitados.

Supere entrevistas con el asistente de IA Hintsage

Respuesta a la pregunta

El problema clave en la evaluación de los programas de referidos es la endogeneidad de la auto-selección: los usuarios con alta participación ya tienen un LTV mayor y son más propensos a invitar a amigos, creando la ilusión de una alta efectividad del canal. Para una evaluación adecuada, aplicamos métodos de inferencia causal: Propensity Score Matching (PSM) para eliminar el sesgo por características observables, o Instrumental Variables (IV), si hay un instrumento aleatorizado (por ejemplo, la exposición aleatoria a un banner).

Para tener en cuenta los retrasos en el tiempo entre el envío de la invitación y la conversión del referido, utilizamos Survival Analysis (modelo de Kaplan-Meier o Cox Proportional Hazards) en lugar de un simple análisis de cohorte. Esto permite manejar correctamente los datos censurados (right-censoring), cuando parte de los usuarios aún no ha completado su ciclo de vida. El LTV se calcula integrando la curva de retención con descuento o mediante el método BTYD (Pareto/NBD) para predecir transacciones futuras.

Situación de la vida real

Contexto: En una aplicación móvil de entrega de comida, se lanzó un programa de referidos con bonificaciones bidireccionales. Después de un trimestre, el informe en Tableau mostró que los usuarios que activaron el enlace de referido tienen un LTV un 40% superior al promedio de la plataforma. El Product Manager requería una ampliación del presupuesto, pero el equipo de análisis sospechaba que la diferencia se debía a las características fundamentales de los super-usuarios.

Problema: Era imposible separar el verdadero efecto incremental de la correlación con la participación. El uso de simples consultas SQL para comparar grupos daba una estimación sesgada debido a los confundidores (frecuencia de pedidos, tiempo en el producto). Sin una evaluación adecuada, el negocio corría el riesgo de sobrepagar por un canal con rentabilidad negativa o cercana a cero.

Solución 1: Comparación directa de cohortes a través de SQL

Compararon la cohorte de "Invitadores" (treatment) y "No Invitadores" (control) utilizando agregación en BigQuery, calculando ARPU y retención en el día 90.

Pros: Implementación instantánea, visualización clara para stakeholders, bajos requerimientos de recursos.

Contras: Error crítico de auto-selección (self-selection bias) y error de supervivencia. Los usuarios que ya planeaban quedarse en el producto usan más los referidos. El resultado está sobreestimado y es inapropiado para la toma de decisiones.

Solución 2: Propensity Score Matching en datos históricos

En Python (scikit-learn) construimos un modelo de regresión logística para evaluar el propensity score — la probabilidad de participación en el programa basada en características pre-tratamiento (edad de la cuenta, historial de pedidos, ticket promedio). Luego aplicamos Nearest Neighbors para hacer emparejamiento de pares 1:1 y comparamos el LTV solo en subgrupos comparables.

Pros: Elimina sesgos por variables observables (observable confounders), funciona con datos retrospectivos sin necesidad de experimento. Permite obtener rápidamente una estimación de ATT (Average Treatment Effect on the Treated).

Contras: No elimina características no observables (unobserved confounders), como la extroversión o el capital social. Con datos no balanceados (pocos invitados), pueden surgir problemas de soporte común (common support), y parte de la muestra se descarta, reduciendo la potencia.

Solución 3: Variables Instrumentales y Survival Analysis

Encontramos un experimento natural: el 50% de los usuarios vieron aleatoriamente un banner del programa de referidos en la pantalla principal (instrumento Z), lo que influía en la probabilidad de participación (X), pero no en el LTV directamente (Y). Evaluamos el efecto a través de 2SLS (Two-Stage Least Squares) en la biblioteca linearmodels para Python, obteniendo LATE (Local Average Treatment Effect). Para tener en cuenta los retrasos, aplicamos Survival Analysis: construimos un modelo de riesgos (hazard function) del tiempo hasta el primer pedido del referido y ajustamos el LTV según la probabilidad de conversión en cada momento.

Pros: El método IV elimina tanto los confundidores observables como los no observables, proporcionando una evaluación causal. El análisis de supervivencia maneja correctamente los datos incompletos y permite modelar la dinámica temporal.

Contras: Requiere un instrumento válido (relevancia y exogeneidad), lo cual es difícil de probar. Potencia estadística reducida de las estimaciones IV (amplios intervalos de confianza). La interpretación de LATE difiere de ATE (el efecto promedio solo para "compliers").

Solución elegida:

Elegimos un enfoque híbrido: utilizamos la aleatorización del banner para la estimación IV del efecto puro de participación, y luego aplicamos un modelo no lineal de Survival Analysis (Cox con covariables que varían en el tiempo) para calcular el LTV esperado teniendo en cuenta el tiempo de conversión de los referidos. Esto permitió separar el efecto del programa del efecto de auto-selección.

Resultado:

El verdadero efecto incremental fue del +12% al LTV para el grupo de compliers, y no del +40% como en el informe original. El análisis de retrasos mostró que el 85% de las conversiones de referidos ocurren en los primeros 14 días después del clic, lo que permitió reducir el horizonte de evaluación de efectividad de 90 a 30 días. El negocio revisó la unidad económica, reduciendo el costo de adquisición (CAC) en un 18% al renunciar a largas esperas de retención.

Lo que a menudo pasan por alto los candidatos

Pregunta 1: ¿Cómo verificar la suposición SUTVA (ausencia de interferencia entre unidades) en un programa de referidos donde existen efectos de red entre los invitadores?

SUTVA se rompe si la densidad de invitaciones en el círculo social influye en la probabilidad de conversión (por ejemplo, sobre saturación o efecto viral). Para verificarlo, utilizamos la clusterización: dividimos a los usuarios en clústeres geográficos o segmentos según gráficos sociales a través de Graph Analysis (NetworkX).

Luego aplicamos Difference-in-Differences, comparando clústeres con alta y baja penetración de enlaces de referido. Si el efecto en clústeres densos difiere significativamente (menor debido a la sobre saturación o mayor debido a la prueba social), SUTVA está violada y se deben utilizar modelos con interacciones intergrupales (spatial models) o limitar el análisis a segmentos aislados.

Pregunta 2: ¿Por qué no se puede utilizar la regresión lineal ordinaria (OLS) para predecir LTV en condiciones de datos censurados, cuando parte de los usuarios aún no ha realizado churn?

OLS ignora el hecho de censura (right-censoring), tratando el LTV actual como final, lo que lleva a una sistemática subestimación de las evaluaciones para los usuarios "nuevos". En su lugar, aplicamos Survival Analysis para evaluar la curva de retención ( S(t) ), y luego la integramos para obtener el expected lifetime.

Alternativamente, usamos modelos de probabilidad para compras repetidas (BTYD), como Pareto/NBD o Gamma-Gamma, implementados en la biblioteca lifetimes para Python. Estos modelos consideran transacciones aún invisibles a través de distribuciones probabilísticas de frecuencia y tiempo entre compras, dando una estimación no sesgada del futuro LTV incluso para usuarios activos.

Pregunta 3: ¿Cómo distinguir las invitaciones incrementales (invitaciones que ocurrieron solo gracias al programa) de las invitaciones orgánicas (que ocurrirían sin estimulación) al evaluar el efecto?

Utilizamos el marco de Principal Stratification, dividiendo la población en cuatro grupos (strata): Always-takers (invitarían siempre), Compliers (invitaron solo debido al programa), Never-takers y Defiers. A través del análisis IV con un instrumento binario (por ejemplo, visto/no visto el banner) evaluamos LATE — el efecto solo para los Compliers.

Para una segmentación más detallada, aplicamos métodos de Causal Machine Learning (EconML, CausalML en Python), como Causal Forest o Meta-learners (S-Learner, T-Learner), para evaluar el Conditional Average Treatment Effect (CATE) para diferentes segmentos. Esto permite entender para qué usuarios (por ejemplo, ticket bajo/alto) el programa genera invitaciones incrementales, y para cuáles simplemente captura el compartir orgánico.