Akıl sağlığı kontrolleri: İç geçerlilik

Python ile A/B Testi

Moe Lotfy, PhD

Principal Data Science Manager

Örnek Oranı Uyumsuzluğu (SRM)

  • Örnek Oranı Uyumsuzluğu (SRM)
    • Varyantlar arası tahsis tasarımdan sapar
  • Ki-kare uygunluk testi

Ki-kare formülü

Örnek oranı uyumsuzluğu tahsis örneği

Python ile A/B Testi

SRM Python örneği

# Varyant başına benzersiz ID’leri hesapla
AdSmart.groupby('experiment')['auction_id'].nunique()
experiment
control    4071
exposed    4006
# Benzersiz sayıları her varyanta ata
control_users=AdSmart[AdSmart['experiment']=='control']['auction_id'].nunique()
exposed_users=AdSmart[AdSmart['experiment']=='exposed']['auction_id'].nunique()
total_users=control_users+exposed_users
# Varyant başına tahsis oranlarını hesapla
control_perc = control_users / total_users
exposed_perc = exposed_users / total_users
print("Control grubundaki kullanıcı yüzdesi:",100*round(control_perc,5),"%")
print("Exposed grubundaki kullanıcı yüzdesi:",100*round(exposed_perc,5),"%")
Control grubundaki kullanıcı yüzdesi: 50.402 %
Exposed grubundaki kullanıcı yüzdesi: 49.598 %
1 Adsmart Kaggle veri kümesi: https://www.kaggle.com/datasets/osuolaleemmanuel/ad-ab-testing
Python ile A/B Testi

SRM Python örneği

# Varyant başına gözlenen ve beklenen sayı listelerini oluştur
observed = [ control_users, exposed_users ]
expected = [ total_users/2, total_users/2 ]
# scipy kütüphanesinden chisquare’i içe aktar
from scipy.stats import chisquare
# Gözlenen ve beklenen listelerde ki-kare testini çalıştır
chi = chisquare(observed, f_exp=expected)
# Test sonuçlarını ve yorumu yazdır
print(chi)
if chi[1] < 0.01:
    print("SRM olabilir")
else:
    print("SRM muhtemelen yok")
Power_divergenceResult(statistic=0.5230902562832735, pvalue=0.4695264353014863)
SRM muhtemelen yok
1 Adsmart Kaggle veri kümesi: https://www.kaggle.com/datasets/osuolaleemmanuel/ad-ab-testing
Python ile A/B Testi

SRM kök neden analizi

SRM’in yaygın nedenleri:$^1$

  • Atama: hatalı gruplama veya bozuk rastgeleleştirme işlevleri
  • Uygulama: varyantların geç başlatılması veya kademeli açılış hızları
  • Veri günlüğü: günlükleme gecikmeleri veya bot filtreleme
  • Müdahale: deney yapanın bir varyantı duraklatması
1 Çevrimiçi Kontrollü Deneylerde Örnek Oranı Uyumsuzluğunu Teşhis Etme: Uygulayıcılar için Bir Taksonomi ve Kural Seti
Python ile A/B Testi

A/A testleri

  • A/A testi
    • İki kullanıcı grubuna özdeş deneyim sunar
    • Deney kurulumu hatalarını ortaya çıkarır
    • Metrikler arasında istatistiksel olarak anlamlı fark yoktur
    • Belirlenen $\alpha$ seviyesinde hâlâ yalancı pozitifler olabilir (zamanın %5’i)
    • Gruplar arası dağılım dengesizliklerini gösterir (örn. tarayıcılar, cihazlar)
Python ile A/B Testi

Dağılım dengesi Python örneği

  • Dengeli tarayıcı dağılımı
  • Geçerli test
checkout.groupby('checkout_page')['browser'].value_counts(normalize=True)
checkout_page  browser
A              chrome     0.341333
               safari     0.332000
               firefox    0.326667
B              safari     0.352000
               firefox    0.325000
               chrome     0.323000
C              safari     0.346000
               chrome     0.330000
               firefox    0.324000
  • Dengesiz tarayıcı dağılımı
  • Geçersiz test
 AdSmart.groupby('experiment')['browser'].value_counts(normalize=True)
experiment  browser                   
control     Chrome Mobile                 0.591992
            Facebook                      0.137804
            Samsung Internet              0.120855
            Chrome Mobile WebView         0.071727
            Mobile Safari                 0.060427
            Chrome Mobile iOS             0.008352
            Mobile Safari UI/WKWebView    0.007369
exposed     Chrome Mobile                 0.535197
            Chrome Mobile WebView         0.298802
            Samsung Internet              0.082876
            Facebook                      0.050674
            Mobile Safari                 0.022716
            Chrome Mobile iOS             0.004244
1 Adsmart Kaggle veri kümesi: https://www.kaggle.com/datasets/osuolaleemmanuel/ad-ab-testing
Python ile A/B Testi

Hadi pratik yapalım!

Python ile A/B Testi

Preparing Video For Download...