Deney tasarımı: güç analizi

Python ile A/B Testi

Moe Lotfy, PhD

Principal Data Science Manager

Etki büyüklüğü

  • Ortalamalar farkı için Cohen's d Cohen's d etki büyüklüğü formülü
  • Oranlar farkı için Cohen's h

Cohen's h etki büyüklüğü formülü

  • Kural:
    • Küçük etki = 0,2
    • Orta etki = 0,5
    • Büyük etki = 0,8
# Standartlaştırılmış etki büyüklüğünü hesapla
from statsmodels.stats.proportion import proportion_effectsize
effect_size_std = proportion_effectsize(.33, .3)
print(effect_size_std)
0.0645
# Standartlaştırılmış etki büyüklüğünü hesapla
from statsmodels.stats.proportion import proportion_effectsize
effect_size_std = proportion_effectsize(p_B, p_A)
print(effect_size_std)
0.0716
Python ile A/B Testi

Oranlar için örneklem büyüklüğü tahmini

# power modülünü içe aktar
from statsmodels.stats import power
# Örneklem büyüklüğünü hesapla
sample_size = power.TTestIndPower().solve_power(effect_size=effect_size_std,
                                                power=.80,
                                                alpha=.05,
                                                nobs1=None)
print(sample_size)
3057.547
Python ile A/B Testi

Örneklem ve MDE’nin güce etkisi

# t-testi power paketini içe aktar
from statsmodels.stats.power import TTestIndPower
# Güç analizi parametrelerini belirt
sample_sizes = array(range(10, 120))
effect_sizes = array([0.2, 0.5, 0.8])
# Güç eğrilerini çiz
TTestIndPower().plot_power(nobs=sample_sizes, effect_size=effect_sizes)
plt.show()

Güç eğrileri: örneklem büyüklüğünün güç ve etki büyüklüğü ile değişimi

Python ile A/B Testi

Ortalamalar için örneklem büyüklüğü tahmini

# Temel ortalama sipariş değerini hesapla
mean_A = checkout[checkout['checkout_page']=='A']['order_value'].mean()
print(mean_A)
24.9564
std_A = checkout[checkout['checkout_page']=='A']['order_value'].std()
print(std_A)
2.418
# İstenen minimum ortalama sipariş değerini belirt
mean_new = 26
# Standartlaştırılmış etki büyüklüğünü hesapla
std_effect_size=(mean_new-mean_A)/std_A
Python ile A/B Testi

Ortalamalar için örneklem büyüklüğü tahmini

sample_size = power.TTestIndPower().solve_power(effect_size=std_effect_size,
                                                power=.80,
                                                alpha=.05,
                                                nobs1=None)
print(sample_size)
85.306
Python ile A/B Testi

Haydi pratik yapalım!

Python ile A/B Testi

Preparing Video For Download...