Zeynep Budak
Machine Learning Turkiye
5 min readFeb 12, 2021

--

BAĞIMSIZ İKİ ÖRNEKLEM T TESTİ (A/B TESTİ)

Image created by myself

Merhaba!

Bugün sizlere iki bağımsız grubu karşılaştırırken sıkça kullandığımız bağımsız iki örneklem t testinin iş dünyasındaki karşılığını bir örnekle anlatmaya çalışacağım.

Başlamadan önce bazı temel istatistik konularına değinmek istiyorum.

  • İstatistik konu olarak tanımlayıcı istatistik ve çıkarımsal istatistik
    olmak üzere iki ana gruba ayrılır.
Image created by myself
  • Tanımlayıcı istatistikte verilerin sınıflandırılması, ortalama ve yaygınlık ölçülerinin hesaplanılması gibi konulara değinerek sayısal verileri özetleriz.
  • Çıkarımsal istatistikte ise örneklemden elde ettiğimiz bulgular yardımıyla evren hakkında kestirimde bulunur, hipotezleri test ederek karara varırız.

Peki hipotez nedir? Amacı nedir?

Hipotezler yığın karakteristikleri ile ilgili önermelerdir. Bu karakteristikler çoğu kez parametrelerdir. Eğer parametreleri hesaplamak mümkünse önermenin doğru olup olmadığını kesin olarak söylenebiliriz. Fakat yığın çok sayıda birimden oluşuyorsa parametrelerin hesabı kolay olmaz. Bu durumda da yığından rasgele örnekler seçer ve istatistiklerini hesaplanırız. Amacımız ise bu istatistikleri, hipotezlerin doğru olup olmadığının ortaya çıkartılmasında kanıt olarak kullanmaktır. “Temel İstatistik Yöntemler - Prof. Dr. Hamza Gamgam”

https://www.scielo.br/scielo.php?script=sci_arttext&pid=S0034-72802014000100016&lng=en&nrm=iso&tlng=en

Yukarıdaki tabloda bazı hipotez testlerini görmektesiniz.

Bağımsız iki grup t testi, iki bağımsız grup arasında ortalamalar açısından istatistiksel olarak anlamlı bir fark olup olmadığını test etmek için kullandığımız parametrik bir testtir. Örneğin farklı cinsiyetlerin sınav başarı puanları veya bir ürünü kullanan ve kullanmayan grupların ortalamaları karşılaştırılmak istendiğinde kullanılabilir. Bu grupların ortalamaları incelendiğinde iki grup arasında bir fark görülebilir ancak bu durum rastgele mi oluştu yoksa istatistiksel olarak da ortalamalar arasında anlamlı bir fark var mı bunu da bilmek isteriz. Bunu anlayabilmek için ise A/B testi yaparız.

A/B Testinde, yapılan yenilik ve geliştirmelerin(renk değişimi, menü değişimi, buton değişimi, reklam alanı yeri değişimi gibi) belirlenen bazı kriterlere göre “anlamlı bir farklılık” yaratıp yaratmadığı araştırılır. Anlamlı farklılık ise istatistiksel testler ile ölçülür.

Bir olay ile ele alacak olursak:

AB testi uygulayacağımız olay şu şekilde olsun. Bir firma yeni bir reklam teklifi metodu belirlemiş. Eski(mevcut) sistemdeki metod ile yeni sistemdeki metodu birbiri ile kıyaslamak istiyor. Hangi yöntemin sitesinde satın almayı iyi yönde etkileyeceğini anlamak istiyor. Bunun için de bizden A/B testi yapmamızı istiyor olsun.

Müşterinin sitedeki yolculuğu şöyledir:

Kullanıcı bir reklam görür (Impression)

Kullanıcı reklamdaki web sitesi bağlantısına tıklar (Website Click)

Kullanıcı web sitesinde arama yapar (Search)

Kullanıcı bir ürünün ayrıntılarını görüntüler (View Content)

Kullanıcı ürünü sepete ekler (Add to Cart)

Kullanıcı ürünü satın alır (Purchase)

  • İlk adım olarak verinin incelenmesi;

Veriyi sizinle paylaşamıyorum lakin içeriğini açıklamak isterim. Bu test için kullanıcılar test ve kontrol grubu olarak rastgele iki eşit büyüklükteki gruba ayrılır. “maksimum teklif” içeren reklam kampanyası “kontrol grubuna” sunulur ve “ortalama teklif” içeren kampanya “test grubuna” sunulur. Oluşan veri setinde kontrol ve test grubu eşit sayıda ve 40'ar örnek içermektedir. İki grupta da 4 değişken bulunmaktadır: İzlenme sayısı (Impression), Tıklanma sayısı (Click), Satın alma (Purchase), Kazanç (Earning).

Veri ön işlemleme aşamasından sonra iki grubun purchase dağılım grafiğine de bakmak istersek gerekli kodlar şöyle:

print(“Test ve Control grubunun purchase dağılımı”)
pyplot.figure(figsize=(8,6))
pyplot.xlabel(‘Purchase’)
pyplot.hist(Control_Group[‘Purchase’],bins=15, alpha=0.7, label=’Control Group’)
pyplot.hist(Test_Group[‘Purchase’],bins=15, alpha=0.7, label=’Test Group’)
pyplot.legend(loc=’upper right’)
pyplot.show()

Purchase (satın alma) değişkeni ile ilgilendiğimiz için kontrol ve test grubunda satın alma değişkenlerini birleştirmeliyiz. “Maximum” sütunu kontrol grubunun satın alma, “Average” sütunu ise test grubunun satın alma sütunundan gelir.

Kontrol ve test grubunun birleştirilmesi:

Control_Group[“Group”] = “A” # Maximum Bidding
Test_Group[“Group”] = “B” # Average Bidding

AB = Control_Group.append(Test_Group) ##AB testi için AB değişkeni
AB.head()

Kontrol ve Test gruplarının purchase ortalamalarına dabakalım:

print(“ Mean of purchase of control group: %.3f”%AB[AB[“Group”]== “A”][“Purchase”].mean(),”\n”,
“Mean of purchase of test group: %.3f”%AB[AB[“Group”]== “B”][“Purchase”].mean())

Average teklif (yeni) sunulan test grubunun ortalaması Maximum teklif (mevcut) sunulan kontrol grubunun ortalamasından daha iyi görünmektedir. Bu durumda yeni yöntemin satın alma açısından daha iyi olduğunu söyleyebiliriz.

Bu durum rasgele mi oluştu yoksa istatistiksel olarak da yeni teklif daha iyidir diyebilir miyiz? A/B test ile bu durumu test edebiliriz.

Bağımsız İki Örneklem T Testi (A/B Test)

A/B testini uygulayabilmek için varsayımların sağlanıp sağlanmadığı kontrol edilmelidir. Bağımsız iki örneklem T testinin (AB Testi) uygulanabilmesi için Normal dağılım ve Varyans homojenliği varsayımlarının sağlanması gerekir.

Eğer normallik sağlanmazsa:

  1. Bağımsız iki örneklem ise Mann Whitney U testi uygulanır. (Nonparamteric bağımsız iki örneklem )
  2. Bağımlı iki örneklem ise Wilcoxon testi uygulanır. (Nonparamteric bağımlı iki örneklem )

Eğer sadece varyans homojenliği sağlanmazsa Welch testi uygulanır.

•Varsayım Kontrolü

1.Normallik Varsayımı

Normallik varsayımını kontrol etmek için Shapiro Wilk testini kullanıyoruz. Her iki dağılım (kontrol ve test grubu) için de test yapılır. Teste göre:

H0: Örnek dağılımı ile teorik normal dağılım arasında istatistiki olarak anlamlı bir fark yoktur.

H1: Örnek dağılımı ile teorik normal dağılım arasında istatistiki olarak anlamlı bir fark vardır.

H0 reddedilemiyorsa (yani p-value büyük 0.05’ten) örnek dağılım ile normal dağılım arasındaki fark yoktur denir. Yani normal dağılım varsayımı sağlanmıştır.

AB.loc[AB[“Group”] == “A”, “Purchase”]
AB.loc[AB[“Group”] == “B”, “Purchase”]

test_istatistigi, pvalue = shapiro(AB.loc[AB[“Group”] == “A”, “Purchase”])
print(‘Test İstatistiği = %.4f, p-değeri = %.4f’ % (test_istatistigi, pvalue))

test_istatistigi, pvalue = shapiro(AB.loc[AB[“Group”] == “B”, “Purchase”])
print(‘Test İstatistiği = %.4f, p-değeri = %.4f’ % (test_istatistigi, pvalue))

2. Varyans Homojenliği Varsayımı

Varyans homojenliği varsayımına göre:

H0: Varyanslar Homojendir

H1: Varyanslar Homojen Değildir

Varyans homojenliği Levene testi kullanılarak değerlendirilir.

stats.levene(AB.loc[AB[“Group”] == “A”, “Purchase”],
AB.loc[AB[“Group”] == “B”, “Purchase”])

p>alfa, homojendir.

Bağımsız iki örneklem t testinin uygulanması

Varsayımlar sağlandığına göre iki örneklem t testi uygulanabilir.

H0: M1 = M2 Eski sistem ile yeni sistem karşılaştırıldığında iki grupta satın alma ortalamaları arasında istatistiksel olarak anlamlı bir fark yoktur.

H1: M1 != M2 Eski sistem ile yeni sistem karşılaştırıldığında iki grupta satın alma ortalamaları arasında istatistiksel olarak anlamlı bir fark vardır.

test_istatistigi, pvalue = stats.ttest_ind(AB.loc[AB[“Group”] == “A”, “Purchase”],
AB.loc[AB[“Group”] == “B”, “Purchase”],
equal_var=True)

print(‘Test İstatistiği = %.4f, p-değeri = %.4f’ % (test_istatistigi, pvalue))

p>alfa, fark yok.

Satın almada bir fark olmadığından iki yöntemden herhangi birini seçilebilir. Belki detaylı tıklanma istatistiklerine bakılıp hangisinin daha kazançlı olduğu tespit edilebilir.

Karşılaştırma yapabileceğimiz diğer metrikler.

a. CTR -Click Through Rate

Kullanıcıların reklamı ne kadar çok tıkladıklarını gösterir.

Reklam tıklanma sayısı (Click) / Reklam izlenme sayısı (Impression) şeklinde hesaplanır.

b. CR -Conversion Rate

Dönüşüm oranı: siteyi ziyaret eden kullanıcıların kaçı istenilen eylemi gerçekleştirmiştir sorusuna cevap arar.

Satın alma sayısı (Purchase) / İzlenme sayısı (Impression) şeklinde hesaplanır.

Bu metrikler oran hesaplanarak bulunduğu için ve oran karşılaştırıldığı için bağımsız iki örneklem oran testi uygulanmalıdır.

Detaylı kodları ve diğer metrik hesaplarını ilerleyen günlerde ekleyip yazıyı güncelleyeceğim. Umarım şimdiden faydalı olmuştur. İyi çalışmalar :)

--

--