I. Giriş
A. Tanım
A/B testi, iki veya daha fazla grup arasındaki farklı değişkenlerin performansını karşılaştırmak için kullanılan istatistiksel bir yöntemdir.
B. Amaç
Yapılan değişikliklerin etkilerini ölçerek, iş stratejilerini optimize etmek ve kararlar almak.
II. Temel Kavramlar
A. Kontrol ve Test Grupları
- Kontrol grubu: Mevcut durumu temsil eder.
- Test grubu: Yeni bir değişikliği temsil eder.
B. Hipotez
Belirli bir değişikliğin, metrikler üzerinde olumlu bir etki yaratacağına dair öngörü.
C. Metrikler
Ölçüm yapılan değişkenler (örneğin, dönüşüm oranları, tıklama sayıları).
III. A/B Testi Adımları
A. Soru Formülasyonu
- Hipotez Oluşturma: “Eğer X değişikliği yapılırsa, Y metriklerinde artış/azalış olur mu?”
B. Deney Tasarımı
- Grup Seçimi:
- Kontrol ve test gruplarının belirlenmesi.
- Değişiklik Belirleme:
- Hangi değişikliklerin test edileceğinin belirlenmesi.
C. Veri Toplama
- Ölçümler ve Analiz:
- Metriklerin belirlenip verilerin toplanması.
D. Sonuçlar ve Yorumlama
- İstatistiksel Analiz:
- Elde edilen verilerin istatistiksel analizi.
- Sonuçların Yorumlanması:
- Hipotez doğrulandı mı? Veriler ne anlatıyor?
IV. Püf Noktalar ve Dikkat Edilmesi Gerekenler
A. Örneklem Büyüklüğü
Yeterli sayıda katılımcıya sahip olunması.
B. Zaman Çerçevesi
Testin ne kadar süreceğinin belirlenmesi.
C. Sezgisel Yanılgılar
Değişikliklerin beklenen etkisini dikkate almak.
D. Segmentasyon
- Farklı Alt Grupları İncelemek:
- Örneğin, demografik segmentasyon.
V. İstatistiksel Testler
A/B testi sürecinde kullanılan bazı temel istatistiksel testler:
1. Levene Testi
- Amaç:
- Kontrol ve test grupları arasındaki varyans homojenliğini kontrol etmek.
2. T-Testi
- Amaç:
- İki grup arasındaki ortalama farkın istatistiksel olarak anlamlı olup olmadığını değerlendirmek.
3. Mann-Whitney U Testi
- Amaç:
- Varyans homojenliğinin sağlanamadığı durumlarda ortalama farkı değerlendirmek için kullanılır.
4. ANOVA (Varyans Analizi)
- Amaç:
- İki veya daha fazla grup arasındaki ortalama farkın istatistiksel olarak anlamlı olup olmadığını değerlendirmek.
import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
# Verileri oluştur
np.random.seed(23)
# Kontrol grubu için örnek veri
control_group = np.random.normal(loc=10, scale=2, size=1000)
# Test grubu için örnek veri (değişiklik yapılmış durum)
test_group = np.random.normal(loc=12, scale=2, size=1000)
# Verileri bir DataFrame'e yerleştir
data = pd.DataFrame({
'Control_Group': control_group,
'Test_Group': test_group
})
# Levene testi
levene_stat, levene_p_value = stats.levene(control_group, test_group)
# Varyanslar eşit mi kontrolü
if levene_p_value < 0.05:
print("Levene testi reddetti. Varyanslar arasında anlamlı bir fark vardır.")
else:
print("Levene testi reddedemedi. Varyanslar arasında anlamlı bir fark yoktur.")
# T-testi
t_stat, t_p_value = stats.ttest_ind(control_group, test_group)
# Mann-Whitney U testi
mw_stat, mw_p_value = stats.mannwhitneyu(control_group, test_group)
# ANOVA testi
anova_stat, anova_p_value = stats.f_oneway(control_group, test_group)
# Sonuçları yazdır
print(f'T-Test Statistic: {t_stat}, P-Value: {t_p_value}')
print(f'Mann-Whitney U Statistic: {mw_stat}, P-Value: {mw_p_value}')
print(f'ANOVA Statistic: {anova_stat}, P-Value: {anova_p_value}')
# Hipotez testi
alpha = 0.05
if t_p_value < alpha or mw_p_value < alpha or anova_p_value < alpha:
print("En az bir test, H0 hipotezini reddetti. Gruplar arasında anlamlı bir fark vardır.")
else:
print("Tüm testler H0 hipotezini ret edemedi. Gruplar arasında anlamlı bir fark yoktur.")
Python Çıktısı:
Levene testi reddedemedi. Varyanslar arasında anlamlı bir fark yoktur.
T-Test: -142.55221523681567, P-Value: 0.0
Mann-Whitney U : 7699670.0, P-Value: 0.0
ANOVA: 20321.134068923428, P-Value: 0.0
En az bir test, H0 hipotezini reddetti. Gruplar arasında anlamlı bir fark vardır.
Not: Normallik varsayımını kontrol etmek için genellikle Shapiro-Wilk testi veya Anderson-Darling testi gibi diğer testler de kullanılabilir. Ancak, bu testler de örnekleme büyüklüğüne duyarlı olabilir. Veri setiniz büyükse, normallik varsayımını kontrol etmek için çeşitli testleri değerlendirmek önemlidir.