Verificações de sanidade: validade externa

A/B Testing em Python

Moe Lotfy, PhD

Principal Data Science Manager

Paradoxo de Simpson

Paradoxo de Simpson: fenômeno estatístico em que certas tendências entre variáveis surgem, somem ou se invertem quando a população é dividida em segmentos.

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 em Python

Paradoxo de Simpson

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

Tabela de exemplo do paradoxo de Simpson

A/B Testing em Python

Paradoxo de 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 em Python

Efeito novidade

  • Efeito novidade
    • Melhora temporária nas métricas causada pela curiosidade dos usuários sobre um recurso novo.
  • Aversão à mudança
    • O oposto do efeito novidade.
    • Usuários evitam testar um recurso novo por familiaridade com o antigo.
A/B Testing em Python

Inspeção visual do efeito novidade

# Plotar Lift em CTR vs dias de teste
novelty.plot('date', 'CTR_lift')
plt.ylim([0, 0.09])
plt.title('Lift em CTR vs Duração do Teste')
plt.show()

Demonstração visual do efeito novidade como um gráfico de linha de CTR vs dias do experimento

A/B Testing em Python

Corrigindo efeitos de novidade

  • Aumentar a duração do teste
    • Começar a incluir dados após o efeito do tratamento estabilizar.
  • Examinar coortes de usuários novos e recorrentes
    • Usuários novos tendem a ter menos efeito novidade.
    • Usuários antigos comparam com experiências anteriores.
A/B Testing em Python

Vamos praticar!

A/B Testing em Python

Preparing Video For Download...