Parametrik olmayan istatistiksel testler

Python ile A/B Testi

Moe Lotfy, PhD

Principal Data Science Manager

Parametrik test varsayımları

  1. Rastgele örnekleme
    • Veri, ana kitleden rastgele örneklenir.
    • Veri toplama/örnekleme sürecini inceleyin.
  2. Bağımsızlık
    • Her gözlem/veri noktası bağımsızdır.
    • Bağımlılıkları görmezden gelmek hata oranlarını artırır.
  3. Normallik
    • Normal dağılım.
    • Yeterince büyük örneklem.
      • İki örneklem t-testi: her grupta n >= 30.
      • İki oranın testi: her grupta >=10 başarı ve >=10 başarısızlık.
Python ile A/B Testi

Mann-Whitney U testi

  • İstatistiksel anlamlılık için parametrik olmayan test
  • İki bağımsız örneğin aynı ana dağılımdan gelip gelmediğini belirler
  • Sıra toplamı testi
  • Eşleştirilmemiş veri
Python ile A/B Testi

Python'da Mann-Whitney U testi

# Varyanta göre sayfada kalma süresinin ortalamasını ve sayısını hesaplayın
print(checkout.groupby('checkout_page')['time_on_page'].agg({'mean', 'count'}))
                    mean  count
checkout_page                  
A              44.668527   3000
B              42.723772   3000
C              42.223772   3000
# Tekrarlanabilirlik için rastgele tohum ayarlayın 
np.random.seed(40)
# Her varyanttan 25'lik rastgele örnek alın
ToP_samp_A = checkout[checkout['checkout_page'] == 'A'].sample(25)['time_on_page']
ToP_samp_B = checkout[checkout['checkout_page'] == 'B'].sample(25)['time_on_page']
Python ile A/B Testi

Python'da Mann-Whitney U testi

# Mann-Whitney U testi çalıştırın
mwu_test = pingouin.mwu(x=ToP_samp_A,
                        y=ToP_samp_B,
                        alternative='two-sided')
# Test sonuçlarını yazdırın
print(mwu_test)
     U-val alternative     p-val     RBC    CLES
MWU  441.0   two-sided  0.013007 -0.4112  0.7056
Python ile A/B Testi

Bağımsızlık için ki-kare testi

  • Parametrik test varsayımlarından bağımsızdır
  • İki veya daha fazla kategorik değişkenin bağımsız olup olmadığını test eder
    • Sıfır hipotezi: Değişkenler bağımsızdır.
    • Alternatif hipotez: Değişkenler bağımsız değildir.
Python ile A/B Testi

Python'da ki-kare testi

Ana sayfa kayıt oranları A/B testi

Sıfır hipotezi: C ve D açılış sayfası tasarımları arasında kayıt oranlarında anlamlı fark yoktur

Alternatif: Aralarında anlamlı fark vardır

# C ve D gruplarındaki kullanıcı sayısını hesaplayın
n_C = homepage[homepage['landing_page'] == 'C']['user_id'].nunique()
n_D = homepage[homepage['landing_page'] == 'D']['user_id'].nunique()
# Her gruptaki benzersiz kayıtları hesaplayın
signup_C = homepage[homepage['landing_page'] == 'C'].groupby('user_id')['signup'].max().sum()
no_signup_C = n_C - signup_C
signup_D = homepage[homepage['landing_page'] == 'D'].groupby('user_id')['signup'].max().sum()
no_signup_D = n_D - signup_D
Python ile A/B Testi

Python'da ki-kare testi

# Kayıtlar tablosunu oluşturun
table = [[signup_C, no_signup_C], [signup_D, no_signup_D]]
print('Grup C kayıt oranı:',round(signup_C/n_C,3))
print('Grup D kayıt oranı:',round(signup_D/n_D,3))

# p-değerini hesaplayın
print('p-value=',stats.chi2_contingency(table,correction=False)[1])
Grup C kayıt oranı: 0.064
Grup D kayıt oranı: 0.048
p-value= 0.009165
Python ile A/B Testi

Hadi pratik yapalım!

Python ile A/B Testi

Preparing Video For Download...