Per misurare l'effetto senza randomizzazione è necessario costruire un controllo sintetico tramite Propensity Score Matching (PSM), e poi applicare il metodo Difference-in-Differences (DiD). Inizialmente valutiamo la probabilità di ricevere un badge (regressione logistica) sui dati pre-storici (attività, demografia, retention), per abbinare i "trattati" con utenti "di controllo" simili. Poi confrontiamo la dinamica della metrica target (profondità di coinvolgimento) tra questi gruppi, il che consente di separare l'effetto del badge dalle tendenze generali di crescita.
È fondamentale verificare l'ipotesi di tendenze parallele tramite l'analisi event-study: costruiamo una regressione con ritardi e anticipi e ci assicuriamo che i coefficienti prima dell'implementazione siano insignificativi. Per aumentare la sensibilità utilizziamo CUPED in Python o R, riducendo la varianza grazie a covariate prima dell'esperimento. La valutazione finale ATT (Average Treatment Effect on the Treated) fornisce una misura non distorta del puro effetto della gamification.
L'azienda "EduTech" ha lanciato un programma di incentivazione: gli utenti ricevevano badge digitali per le recensioni lasciate sui corsi. Le limitazioni tecniche del backend legacy non hanno permesso di randomizzare il pubblico, quindi l'analista ha affrontato la sfida di misurare l'impatto sulla metrica "profondità di coinvolgimento" (numero medio di lezioni visualizzate a settimana) in presenza di forte auto-selezione: solo gli studenti più attivi lasciavano recensioni, creando un evidente problema di bias.
Sono stati considerati quattro approcci per risolvere il problema.
Semplice confronto delle medie dopo l'implementazione tra i coloro che hanno ricevuto un badge e quelli che non l'hanno ricevuto. Il principale vantaggio è la velocità di calcolo in SQL senza complessa preparazione dei dati. Lo svantaggio critico è l'ignorerà completo dell'auto-selezione: gli utenti attivi crescono comunque più velocemente (effetto maturazione), portando a una sovrastima dell'effetto e a conclusioni sbagliate sull'efficacia.
Analisi "prima-dopo" esclusivamente sul gruppo con badge. I vantaggi includono l'esclusione delle differenze intergruppo e l'uso del t-test accoppiato per gli stessi utenti. Tuttavia, è impossibile separare l'effetto del badge dalla crescita stagionale generale dell'attività (inizio dell'anno scolastico) o dai cambiamenti simultanei negli algoritmi di raccomandazione, rendendo le conclusioni inaffidabili.
Regressione OLS con controllo delle covariate tramite l'aggiunta di variabili relative all'attività passata. Questo si implementa rapidamente in statsmodels e fornisce coefficienti comprensibili. Tuttavia, il metodo richiede severa linearità delle dipendenze, è sensibile ai valori anomali e non tiene conto delle tendenze individuali di sviluppo dell'utente nel tempo, il che può distorcere la valutazione.
PSM + Difference-in-Differences (soluzione scelta). Abbiamo condotto Propensity Score Matching in BigQuery, utilizzando regressione logistica sui predittori prima del lancio (frequenza degli accessi, corsi completati). Successivamente, abbiamo applicato DiD con effetti fissi per utente e settimana. Vantaggi - minimizzazione del bias di selezione in base a caratteristiche osservabili e rimozione di tendenze temporali mantenendo la parallelità. Svantaggi - alta complessità computazionale e criticità dell'ipotesi di tendenze parallele, che richiede verifica attraverso grafici event-study.
La soluzione è stata scelta grazie alla capacità di fornire la valutazione meno distorta solamente con dati osservazionali. In seguito all'analisi, si è scoperto che i badge aumentano il coinvolgimento del 12%, ma solo per gli utenti con meno di tre mesi di esperienza. Per i "veterani", l'effetto si è rivelato statisticamente insignificante, il che ha permesso al team di prodotto di rivedere le regole di assegnazione e concentrarsi sull'onboarding.
Come verificare che l'ipotesi di tendenze parallele in DiD non sia stata violata, se non abbiamo un esperimento?
I candidati spesso si limitano a un confronto visivo dei grafici, trascurando la verifica formale. È necessario costruire una regressione event-study, includendo variabili dummy per ciascun periodo prima e dopo il trattamento. Se i coefficienti per i periodi "prima" sono statisticamente significativi (p-value < 0.05), l'ipotesi è violata. In questo caso, è possibile applicare CUPED per la correzione dei pre-trend o utilizzare il Synthetic Control Method per costruire un gruppo di controllo con una tendenza il più simile possibile a quella del gruppo trattato prima dell'intervento.
Perché il Propensity Score Matching non risolve il problema dell'endogeneità a causa di caratteristiche nascoste (selection on unobservables)?
PSM bilancia solo le covariate osservabili (età, attività), ma se esiste una motivazione nascosta (ad esempio, "amore per l'apprendimento"), difficile da quantificare, il bias rimane. Per risolvere sono necessarie variabili strumentali (IV), come la distanza geografica dal centro offline più vicino, che è correlata alla probabilità di ricevere un badge, ma non influisce sul coinvolgimento direttamente. Un'alternativa è il Regression Discontinuity Design (RDD), se la soglia per ricevere un badge è rigida (ad esempio, esattamente 3 recensioni), creando una variazione esogena.
Come affrontare la violazione di SUTVA (Stable Unit Treatment Value Assumption) nella gamification, quando l'effetto è "contagioso" attraverso il grafico sociale?
Se gli amici vedono i badge e iniziano anche a lasciare recensioni, il classico DiD fornisce una stima distorta, mescolando effetti diretti e indiretti. La soluzione è utilizzare errori standard clusterizzati per gruppi di amici, oppure un campionamento a due fasi, escludendo dalla gruppo di controllo gli utenti connessi ai "trattati". È possibile valutare esplicitamente gli spillover effects tramite mediation analysis in Python (librerie causalml o mediation), separando l'effetto totale in effetto diretto (su se stesso) e indiretto (sugli amici), per evitare una sottovalutazione del vero effetto.