Controlli di sanità: validità esterna

A/B Testing in Python

Moe Lotfy, PhD

Principal Data Science Manager

Paradosso di Simpson

Paradosso di Simpson: fenomeno statistico in cui certe tendenze tra variabili emergono, scompaiono o si invertono quando la popolazione è suddivisa in segmenti.

print(simp_imbalanced.groupby('Variant').mean())
Variant     Conversion
A              0.80
B              0.64
print(simp_imbalanced.groupby(['Variant','Device']).mean())
Variant Device   Conversion
A       Phone        0.875
        Tablet       0.500
B       Phone        0.900
        Tablet       0.575
A/B Testing in Python

Paradosso di Simpson

simp_imbalanced.groupby(['Variant','Device'])\
                            ['Device'].count()
Variant  Device
A        Phone     40
         Tablet    10
B        Phone     10
         Tablet    40

Esempio di tabella del paradosso di Simpson

A/B Testing in Python

Paradosso di Simpson

simp_balanced.groupby(['Variant','Device'])\
                        ['Device'].count()
Variant  Device
A        Phone     40
         Tablet    10
B        Phone     40
         Tablet    10
print(simp_balanced.groupby('Variant').mean())
Variant     Conversion
A              0.70
B              0.52
print(simp_balanced.groupby(['Variant','Device']).mean())
Variant Device     Conversion
A       Phone        0.750
        Tablet       0.500
B       Phone        0.575
        Tablet       0.300
A/B Testing in Python

Effetto novità

  • Effetto novità
    • Miglioramento temporaneo delle metriche dovuto alla curiosità verso una nuova funzionalità.
  • Avversione al cambiamento
    • L'opposto dell'effetto novità.
    • Gli utenti evitano di provare una novità per familiarità con la versione precedente.
A/B Testing in Python

Ispezione visiva dell'effetto novità

# Traccia il Lift nel CTR vs giorni di test
novelty.plot('date', 'CTR_lift')
plt.ylim([0, 0.09])
plt.title('Lift nel CTR vs Durata del test')
plt.show()

Dimostrazione visiva dell'effetto novità come grafico a linee di CTR vs giorni di esperimento

A/B Testing in Python

Correggere l'effetto novità

  • Aumentare la durata del test
    • Includi i dati dopo che l'effetto del trattamento si è stabilizzato.
  • Esaminare i cohort di nuovi e vecchi utenti
    • I nuovi utenti di norma subiscono meno l'effetto novità.
    • I vecchi utenti confrontano con le esperienze precedenti.
A/B Testing in Python

Esercitiamoci!

A/B Testing in Python

Preparing Video For Download...