A/B टेस्टिंग क्या है?

Python में A/B Testing

Moe Lotfy, PhD

Principal Data Science Manager

A/B टेस्टिंग परिचय

  • A/B टेस्ट है...

     
    • यह जानने का प्रयोग कि कौन-सा वर्ज़न बेहतर है
    • किसी मेट्रिक पर आधारित: signup rate, average sales per user, आदि
    • रैंडम असाइनमेंट और परिणामों का विश्लेषण
Python में A/B Testing

A/B टेस्ट करें या नहीं?

A/B टेस्टिंग के अच्छे उपयोग:

  • Conversion rates ऑप्टिमाइज़ करना
  • नए ऐप फीचर्स रिलीज़ करना
  • Ads के incremental प्रभाव का आकलन
  • Drug trials का प्रभाव आँकना

इन स्थितियों में A/B टेस्ट न करें:

  • पर्याप्त ट्रैफ़िक नहीं/"small" sample size
  • स्पष्ट, तार्किक हाइपोथेसिस नहीं
  • नैतिक चिंताएँ
  • उच्च opportunity cost
Python में A/B Testing

A/B टेस्टिंग के मूल चरण

  1. लक्ष्य और डिज़ाइन/experiences तय करें
  2. नामांकन हेतु यूज़र्स को रैंडम तरीके से sample करें
  3. यूज़र्स को रैंडम तरीके से बाँटें:
    • control variant: current state
    • treatment/test variant(s): new design
  4. यूज़र actions लॉग करें और metrics निकालें
  5. सांख्यिकीय रूप से महत्वपूर्ण अंतर जाँचें

A/B testing steps

Python में A/B Testing

Randomization का महत्व

  • Generalizability और representativeness
  • समूहों के बीच bias कम करना
  • Treatment effect अलग कर causality स्थापित करना

 

Random sampling and random assignment illustration

1 https://www.statology.org/random-selection-vs-random-assignment/
Python में A/B Testing

Python में random assignment का उदाहरण

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
Python में A/B Testing

Python में random assignment का उदाहरण

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
Python में A/B Testing

Python में random assignment का उदाहरण

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
Python में A/B Testing

अभ्यास करते हैं!

Python में A/B Testing

Preparing Video For Download...