Analisi di businessAnalista di Prodotto

Descrivi l'approccio per l'isolamento dell'effetto causale di un programma di referral sul lungo LTV in presenza di endogeneità dell'auto-selezione e ritardi nella conversione degli utenti invitati.

Supera i colloqui con l'assistente IA Hintsage

Risposta alla domanda

Il problema chiave nella valutazione dei programmi di referral è l'endogeneità dell'auto-selezione: gli utenti con un alto coinvolgimento hanno già un LTV maggiore e invitano più spesso amici, creando l'illusione di una grande efficacia del canale. Per una corretta valutazione, utilizziamo metodi di inferenza causale: Propensity Score Matching (PSM) per eliminare il bias da variabili osservabili, o Instrumental Variables (IV) se esiste uno strumento randomizzato (ad esempio, la visualizzazione casuale di un banner).

Per gestire i ritardi temporali tra l'invio dell'invito e la conversione del referral, utilizziamo l'Analisi di Sopravvivenza (modello di Kaplan-Meier o Cox Proportional Hazards) anziché una semplice analisi cohortale. Ciò consente di elaborare correttamente i dati censurati (right-censoring), in cui parte degli utenti non ha ancora completato il ciclo di vita. Calcoliamo l'LTV integrando la curva di retention con uno sconto o utilizzando il metodo BTYD (Pareto/NBD) per prevedere le transazioni future.

Situazione della vita reale

Contesto: In un'app mobile di consegna cibo è stato lanciato un programma di referral con bonus bilaterali. Dopo un trimestre, la reportistica in Tableau mostrava che gli utenti che avevano attivato il link di referral avevano un LTV superiore del 40% alla media della piattaforma. Il Product Manager richiedeva un ampliamento del budget, ma il team di analisi sospettava che la differenza fosse dovuta non al programma ma alle caratteristiche di base degli super-utente.

Problema: Non era possibile separare il vero effetto incrementale dalla correlazione con il coinvolgimento. L'uso di semplici query SQL per confrontare i gruppi forniva una stima distorta a causa dei confondenti (frequenza degli ordini, tempo nel prodotto). Senza una corretta valutazione, l'azienda rischiava di pagare troppo per un canale con margine negativo o vicino allo zero.

Soluzione 1: Confronto diretto delle coorti tramite SQL

Abbiamo confrontato la coorte "Invitanti" (trattamento) e "Non invitanti" (controllo) utilizzando aggregazioni in BigQuery, calcolando ARPU e retention al 90° giorno.

Vantaggi: Implementazione immediata, visualizzazione chiara per gli stakeholder, basse richieste di risorse.

Svantaggi: Critico errore di auto-selezione (self-selection bias) ed errore di sopravvivenza. Gli utenti che già pianificavano di rimanere nel prodotto usano più spesso il referral. Il risultato è esagerato e non utilizzabile per decisioni.

Soluzione 2: Propensity Score Matching su dati storici

In Python (scikit-learn) abbiamo costruito un modello di regressione logistica per calcolare il propensity score — la probabilità di partecipazione al programma basata su variabili pre-trattamento (età dell'account, storia degli ordini, spesa media). Successivamente abbiamo applicato Nearest Neighbors per il matching di coppie 1:1 e abbiamo confrontato l'LTV solo in sottogruppi comparabili.

Vantaggi: Elimina il bias da variabili osservabili (observable confounders), funziona su dati retrospettivi senza bisogno di esperimenti. Permette di ottenere rapidamente una stima dell'ATT (Average Treatment Effect on the Treated).

Svantaggi: Non elimina le caratteristiche non osservate (unobserved confounders), come l'estroversione o il capitale sociale. Con dati sbilanciati (pochi invitanti) si verificano problemi di supporto comune (common support), e parte del campione viene scartato, riducendo la potenza.

Soluzione 3: Variabili strumentali e Analisi di Sopravvivenza

Abbiamo trovato un esperimento naturale: il 50% degli utenti vedeva casualmente un banner del programma di referral sulla schermata principale (strumento Z), che influenzava la probabilità di partecipazione (X) ma non direttamente l'LTV (Y). Abbiamo valutato l'effetto attraverso 2SLS (Two-Stage Least Squares) nella libreria linearmodels per Python, ottenendo LATE (Local Average Treatment Effect). Per tenere conto dei ritardi, abbiamo applicato l'Analisi di Sopravvivenza: abbiamo costruito un modello di rischio (hazard function) per il tempo fino al primo ordine del referral e abbiamo corretto l'LTV in base alla probabilità di conversione in ogni momento.

Vantaggi: Il metodo IV elimina sia i confondenti osservabili che quelli non osservabili, fornendo una stima causale. L'analisi di sopravvivenza gestisce correttamente i dati incompleti e consente di modellare la dinamica temporale.

Svantaggi: Richiede uno strumento valido (rilevanza ed esogeneità), il che è difficile da dimostrare. Potenza statistica ridotta delle stime IV (ampì intervalli di confidenza). L'interpretazione di LATE differisce da quella di ATE (effetto medio solo per i "compliers").

Soluzione scelta:

Abbiamo scelto un approccio ibrido: abbiamo utilizzato la randomizzazione del banner per la stima IV dell'effetto netto di partecipazione, quindi abbiamo applicato un modello non lineare di Analisi di Sopravvivenza (Cox con covariabili variabili nel tempo) per calcolare l'LTV atteso tenendo conto del tempo di conversione dei referral. Ciò ha permesso di separare l'effetto del programma dall'effetto di auto-selezione.

Risultato:

Il vero effetto incrementale è stato di +12% all'LTV per il gruppo dei compliers, e non +40% come nel rapporto iniziale. L'analisi dei ritardi ha mostrato che l'85% delle conversioni dei referral avviene nei primi 14 giorni dopo il clic, il che ha permesso di ridurre l'orizzonte di valutazione dell'efficacia da 90 a 30 giorni. L'azienda ha rivisto l'economia unitaria, riducendo il costo di acquisizione (CAC) del 18% grazie all'abbandono delle lunghe attese di retention.

Cosa spesso i candidati trascurano

Domanda 1: Come verificare l'assunzione SUTVA (assenza di intervento tra le unità) in un programma di referral, dove esistono effetti di rete tra gli invitanti?

SUTVA è violata se la densità degli inviti nel cerchio sociale influenza la probabilità di conversione (ad esempio, saturazione o effetto virale). Per verificare, utilizziamo la clusterizzazione: dividiamo gli utenti in cluster geografici o segmenti secondo i grafi sociali tramite Analisi Grafica (NetworkX).

Successivamente applichiamo il Difference-in-Differences, confrontando cluster con alta e bassa penetrazione di link di referral. Se l'effetto nei cluster densi differisce significativamente (inferiore a causa di saturazione o superiore a causa della prova sociale), SUTVA è violata e bisogna usare modelli con interazioni tra gruppi (spatial models) o limitare l'analisi a segmenti isolati.

Domanda 2: Perché non è possibile utilizzare la regressione lineare ordinaria (OLS) per prevedere l'LTV in condizioni di dati censurati, quando parte degli utenti non ha ancora effettuato churn?

L'OLS ignora il fatto del censuramento (right-censoring), trattando l'attuale LTV come finale, il che porta a stime sistematicamente basse per gli "utenti giovani". Invece, utilizziamo l'Analisi di Sopravvivenza per valutare la curva di retention ( S(t) ), quindi la integriamo per ottenere il lifetime atteso.

In alternativa, utilizziamo modelli probabilistici di acquisti ripetuti (BTYD), come Pareto/NBD o Gamma-Gamma, implementati nella libreria lifetimes per Python. Questi modelli considerano le transazioni che non sono ancora visibili tramite distribuzioni probabilistiche di frequenza e tempo tra acquisti, fornendo una stima non distorta del futuro LTV anche per gli utenti attivi.

Domanda 3: Come distinguere gli inviti incrementali (inviti che sono avvenuti solo grazie al programma) dagli inviti organici (che sarebbero avvenuti anche senza incentivazione) nella valutazione dell'effetto?

Utilizziamo il framework della stratificazione principale, dividendo la popolazione in quattro gruppi (strata): Sempre-accettatori (che avrebbero invitato sempre), Complier (che hanno invitato solo a causa del programma), Mai-accettatori e Defier. Attraverso un analisi IV con strumento binario (ad esempio, visto/non visto il banner), valutiamo LATE — l'effetto specifico per i Complier.

Per una segmentazione più dettagliata, utilizziamo metodi di Machine Learning Causale (EconML, CausalML in Python), come Causal Forest o Meta-learners (S-Learner, T-Learner), per valutare l'Effecto Medio Causale Condizionale (CATE) per diversi segmenti. Questo consente di capire per quali utenti (ad esempio, spesa bassa/alta) il programma genera inviti incrementali e per quali semplicemente registra la condivisione organica.