Ce este testarea A/B?

A/B Testing în Python

Moe Lotfy, PhD

Principal Data Science Manager

Introducere în testarea A/B

  • Un test A/B este...

     
    • un experiment pentru a testa care versiune este mai bună
    • bazat pe metrici: rata de înregistrare, vânzări medii per utilizator etc.
    • folosind atribuire aleatorie și analiza rezultatelor
A/B Testing în Python

Să testăm sau nu A/B?

Utilizare adecvată a testării A/B:

  • Optimizarea ratei de conversie
  • Lansarea de noi funcționalități
  • Evaluarea efectelor incrementale ale reclamelor
  • Evaluarea impactului studiilor clinice

Nu efectuați teste A/B dacă:

  • Trafic insuficient/eșantion „mic"
  • Nicio ipoteză logică clară
  • Considerații etice
  • Cost de oportunitate ridicat
A/B Testing în Python

Pașii fundamentali ai testării A/B

  1. Stabiliți obiectivul și variantele/experiențele
  2. Eșantionați aleatoriu utilizatorii pentru înscriere
  3. Atribuiți aleatoriu utilizatorii la:
    • varianta de control: starea actuală
    • varianta de tratament/test: design nou
  4. Înregistrați acțiunile și calculați metricile
  5. Testați diferențele semnificative statistic

Etapele testării A/B

A/B Testing în Python

Valoarea randomizării

  • Generalizabilitate și reprezentativitate
  • Minimizarea bias-ului între grupuri
  • Stabilirea cauzalității prin izolarea efectului de tratament

 

Ilustrare eșantionare și atribuire aleatorie

1 https://www.statology.org/random-selection-vs-random-assignment/
A/B Testing în Python

Exemplu Python de atribuire aleatorie

checkout.info()
RangeIndex: 9000 entries, 0 to 8999
Data columns (total 6 columns):
 #   Column         Non-Null Count  Dtype  
 0   user_id        9000 non-null   int64  
 1   checkout_page  9000 non-null   object 
 2   order_value    7605 non-null   float64
 3   purchased      9000 non-null   float64
 4   gender         9000 non-null   object 
 5   browser        9000 non-null   object 
dtypes: float64(2), int64(1), object(3)
memory usage: 422.0+ KB
A/B Testing în Python

Exemplu Python de atribuire aleatorie

checkout['gender'].value_counts(normalize=True)
F    0.507556
M    0.492444
Name: gender, dtype: float64
sample_df = checkout.sample(n=3000)
sample_df['gender'].value_counts(normalize=True)
M    0.506333
F    0.493667
Name: gender, dtype: float64
A/B Testing în Python

Exemplu Python de atribuire aleatorie

checkout.groupby('checkout_page')['gender'].value_counts(normalize=True)
checkout_page  gender
A              M         0.505000
               F         0.495000
B              F         0.507333
               M         0.492667
C              F         0.520333
               M         0.479667
Name: gender, dtype: float64
A/B Testing în Python

Să exersăm!

A/B Testing în Python

Preparing Video For Download...