Sample size hesaplayıcı
A/B testi başlatmadan önce kaç kullanıcıya ihtiyacın olduğunu hesapla
Mevcut 5% dönüşüm oranında, en az 20% göreli iyileşmeyi (5% → 6.0%) tespit etmek için her grupta 8.160 kullanıcı gerekiyor. Toplam 16.300 kullanıcı, günde 500 kullanıcıyla yaklaşık 33 gün sürer.
Bu sayılar nereden geliyor?
Örneklem büyüklüğü hesabı üç soruyu dengeler:
- Ne kadar küçük bir etkiyi tespit etmek istiyorsun?(MDE) MDE ne kadar küçükse, o etkiyi görmek için o kadar fazla kullanıcı gerekir. %1'lik iyileşmeyi görmek %20'lik iyileşmeyi görmekten çok daha zordur.
- Gerçek bir etki varsa onu ne sıklıkla yakalarsın?(Power / Güç) %80 güç: gerçek bir etki varsa %80 ihtimalle onu tespit edersin. Geri kalan %20'de gözden kaçırırsın — Tip-2 hata.
- Gerçek etki yokken yanlış pozitif ne sıklıkla görürsün? (Alpha) α = 0.05: etki yokken %5 ihtimalle anlamlı sonuç görürsün — Tip-1 hata.
from scipy import stats
import numpy as np
def sample_size(baseline, mde, power=0.80, alpha=0.05):
p1 = baseline
p2 = p1 * (1 + mde) # hedef dönüşüm oranı
za = stats.norm.isf(alpha / 2) # z-skoru (anlamlılık)
zb = stats.norm.isf(1 - power) # z-skoru (güç)
p_pool = (p1 + p2) / 2
n = (za * np.sqrt(2 * p_pool * (1 - p_pool)) +
zb * np.sqrt(p1*(1-p1) + p2*(1-p2)))**2 / (p2 - p1)**2
return int(np.ceil(n))
# Örnek: %5 baseline, %20 MDE
n = sample_size(baseline=0.05, mde=0.20)
print(f"Her grup için: {n} kullanıcı")
print(f"Toplam: {n*2} kullanıcı")MDE nasıl belirlenir?
MDE (Minimum Detectable Effect) en kritik parametre. Çok küçük seçersen test aylar sürer. Çok büyük seçersen önemli bir iyileşmeyi gözden kaçırırsın.
Pratik yaklaşım: o değişikliğin iş etkisini düşün. %5'lik dönüşüm iyileşmesi sana ne kazandırır? Eğer cevap "çok az" ise, tespit etmeye değmez demektir. MDE'yi iş açısından anlamlı en küçük etki olarak belirle.
Yaygın hatalar
- Testi erken durdurmak: İlk anlamlı sonucu görünce durdurmak yanlış. Örneklem büyüklüğüne ulaşmadan durmak Tip-1 hata oranını şişirir.
- Sonra örneklem hesaplamak:Testi çalıştırdıktan sonra "yeterince büyük müydü?" diye sormak güvenilmez. Önce hesapla, sonra başlat.
- Çok fazla metrik: Her metrik ayrı bir test. 10 metrik izlersen biri şans eseri anlamlı çıkar. Birincil metriği önceden belirle.
- Mevsimselliği yok saymak: Pazartesi-Cuma testi hafta sonu davranışını temsil etmez. En az bir tam hafta, tercihen iki hafta çalıştır.
Test sonuçların elindeyse A/B test anlamlılık hesaplayıcımızı kullanarak p-değeri ve güven aralığını hesaplayabilirsin.