Ali Demirbaş

Kontrol grubu nedir? A/B testinde kontrol ve holdout grubu

Kontrol grubu nedir, deney grubundan farkı ne? A/B testinde kontrol grubunun büyüklüğü, holdout grubu, artımsal etki, SRM ve A/A testi.

10 dk okuma

Kontrol grubu: buzlu camla ayrılmış iki kaidede aynı bitki, deney ışığı yalnızca bir tarafta
Ali DemirbaşMobile App Growth Lead, Aksigorta

Kontrol grubu, bir deneyde test edilen değişikliği görmeyen ve sonuçları karşılaştırmak için kullanılan gruptur. A/B testinde kontrol grubu sitenin ya da uygulamanın mevcut hâlini görür, deney grubu ise yeni sürümü. İki grup rastgele ve aynı dönemde oluşturulduğu için aradaki fark değişikliğe bağlanabilir.

Bu yazı kontrol grubunun ne olduğunu, neden testle aynı anda çalışması gerektiğini, ne kadar büyük olması gerektiğini, holdout grubundan farkını ve bozulduğunu nasıl anlayacağını anlatıyor. Örneklem hesabı ve sonuç okuma ayrı yazıların konusu, ilgili yerlerde onlara link var.

Kontrol grubu nedir?

Kontrol grubu, değişikliğin olmadığı durumu temsil eden karşılaştırma grubudur. Kavram klinik araştırmalardan gelir. ABD Ulusal Kanser Enstitüsü'nün sözlüğüne göre klinik bir araştırmada kontrol grubu, incelenen yeni tedaviyi almayan gruptur ve yeni tedavinin işe yarayıp yaramadığını görmek için onu alan grupla karşılaştırılır. İngiltere Hazine Bakanlığı'nın değerlendirme rehberi de aynı fikri politika değerlendirmesi için kullanır: rastgele atamayla kurulan karşılaştırma grubu, müdahale olmasaydı ne olacağını gösterir.

Online deneylerde mantık aynıdır. Ronny Kohavi ve arkadaşlarının kontrollü web deneyleri rehberinde kullanıcılar iki sürümden birine rastgele atanır: genellikle mevcut sürüm olan kontrol ve değerlendirilen yeni sürüm. Kontrol grubunun görevi, deney grubunda ölçülen sonucun neyle kıyaslanacağını göstermektir. Kontrol grubu olmadan bir artış gördüğünde, o artışın değişiklikten mi yoksa başka bir şeyden mi geldiğini bilemezsin.

Kontrol grubu ile deney grubu arasındaki fark nedir?

Kontrol grubu ile deney grubu arasındaki tek fark test edilen değişikliktir. Deney grubu (İngilizcede treatment ya da experimental group) değişikliği görür, kontrol grubu görmez. Geri kalan her şeyin iki grupta aynı olması gerekir: aynı dönem, aynı trafik kaynakları, aynı fiyatlar, aynı kampanyalar.

Bu koşulun ne kadar hassas olduğunu Microsoft'un deney ekibinin tuzaklar makalesindeki bir örnek gösteriyor. MSN ana sayfasında başlıkların yerleşimini test eden bir deneyde iki grup aynı başlıkları yalnızca farklı sırayla görecekti, ama başlıklardan biri yedi saat boyunca farklı kaldı.

O yedi saat analize dahilken deney grubu kontrolden anlamlı biçimde iyi görünüyordu. Yedi saat çıkarıldığında fark kalmadı. Kontrol grubu ile deney grubu birden fazla noktada ayrılırsa ölçtüğün şey artık test ettiğin değişiklik değildir.

A/B testinde kontrol ve varyant

A/B testinde A genellikle kontrol, B ise varyanttır. Kohavi ve arkadaşları kontrolü diğer varyantlardan ayrı tutar: mevcut sürümü temsil eden ve bütün yeni sürümlerin kendisiyle karşılaştırıldığı özel bir varyanttır.

Kontrolün bir görevi daha vardır. Testte bir hata çıkarsa deney durdurulur ve bütün kullanıcılar kontrol sürümüne döner. Bu yüzden kontrol sürümü bir "güvenli liman" gibi çalışır.

Birden fazla varyantın test edildiği A/B/n testlerinde hepsi aynı kontrol grubuyla karşılaştırılır. Kontrol grubu her zaman sitenin bugünkü hâli olmak zorunda değildir, ama çoğu testte öyledir. Testin genel kurgusunu, hipotezi ve metrik seçimini A/B testi rehberinde bulabilirsin.

Rastgele ve eşzamanlı atama

Kontrol grubu neden aynı anda çalışmalı? Çünkü testin sonucunu etkileyebilecek dış etkenler ancak iki grup aynı dönemde ölçülürse ikisine eşit dağılır. Microsoft'un deney ekibinin örneklem oranı uyuşmazlığı (SRM) makalesi bunu açıkça yazıyor: mevsimsellik, başka özelliklerin yayına alınması ve rakiplerin hamleleri gibi dış etkenler kontrol ve deney grubuna eşit dağılır. Kontrol grubunu geçen aydan, deney grubunu bu aydan alırsan bu etkenler yalnızca bir tarafı etkiler.

Önce-sonra karşılaştırması bu yüzden zayıf bir kanıttır. İngiltere Hazine Bakanlığı'nın rehberine göre karşılaştırma grubu olmayan önce-sonra tasarımları, müdahale olmasaydı ne olacağını zayıf biçimde tahmin eder, çünkü "sonra" verisindeki değişimi pek çok etken açıklayabilir. Bir yeniden tasarımın ardından dönüşüm oranı yükseldiğinde, aynı hafta başlayan bir kampanya ya da sezon etkisi de bu yükselişi açıklayabilir. Bu farkın ayrıntılı anlatımı A/B rehberinde, önce-sonra karşılaştırması bölümünde var.

Rastgele atama da en az eşzamanlılık kadar önemlidir. Kohavi ve arkadaşlarının ifadesiyle kilit kelime "rastgele"dir: kullanıcıların hangi gruba düşeceğini hiçbir etken belirlememelidir. Atamayı sen seçersen, mesela sadık müşterileri yeni sürüme, geri kalanını kontrole koyarsan, iki grup baştan farklı olur ve ölçtüğün fark bu farkı yansıtır.

Kalıcı atama ve atama birimi

Bir kullanıcı testin başında hangi gruba atandıysa test boyunca orada kalmalıdır. Kohavi, Tang ve Xu'nun kitabının ilk bölümü bunu kalıcı atama olarak tanımlar: kullanıcı birden fazla ziyarette aynı varyantı görür. Atama her ziyarette yeniden yapılırsa aynı kişi iki sürümü de görür ve kontrol grubu kontrol olmaktan çıkar.

Atama birimini de baştan seç. Ziyaretçi, oturum açmış kullanıcı ya da hesap düzeyinde atama yapılabilir. Ölçtüğün sonuç kişi düzeyindeyse atama da kişi düzeyinde olmalıdır. Aynı şirketteki çalışanların aynı ürünü kullandığı işletmeden işletmeye (B2B) ürünlerinde atama çoğu zaman hesap düzeyinde yapılır, çünkü aynı hesaptaki kişilerin farklı sürümler görmesi hem kafa karıştırır hem de gruplar arasında sızıntıya yol açar.

Kontrol grubunun büyüklüğü

Kontrol grubunun büyüklüğü, testin ne kadar süreceğini doğrudan belirler. Trafiği eşit bölmek en hızlı sonucu verir, ama bazı durumlarda ekipler kontrolü ya da varyantı küçük tutmak ister.

Kontrol grubu ne kadar büyük olmalı?

İki gruplu bir testte kontrol grubu deney grubuyla aynı büyüklükte olmalıdır. Kohavi ve arkadaşları 2009 tarihli rehberde, testin gücünü en yükseğe çıkarmak ve süresini en aza indirmek için kullanıcıların %50'sinin her varyantı görmesini öneriyor. Aynı rehber, trafiğin %99'unu bir gruba, %1'ini diğerine veren bir testin 50/50 bölünmüş bir teste göre yaklaşık 25 kat uzun sürmesi gerektiğini yazıyor.

Süre çarpanı yaklaşık 1 ÷ (4 × p × (1 − p)) kuralıyla hesaplanır, burada p küçük grubun payıdır. Aşağıdaki tablo aynı kuralı sık kullanılan bölmelere uyguluyor ve diğer bütün koşulların sabit kaldığını varsayıyor.

  • Bölme (büyük / küçük grup): 50/50

    Küçük grubun payı
    %50
    50/50'ye göre test süresi
    1 kat
  • Bölme (büyük / küçük grup): 60/40

    Küçük grubun payı
    %40
    50/50'ye göre test süresi
    Yaklaşık 1,04 kat
  • Bölme (büyük / küçük grup): 70/30

    Küçük grubun payı
    %30
    50/50'ye göre test süresi
    Yaklaşık 1,19 kat
  • Bölme (büyük / küçük grup): 80/20

    Küçük grubun payı
    %20
    50/50'ye göre test süresi
    Yaklaşık 1,56 kat
  • Bölme (büyük / küçük grup): 90/10

    Küçük grubun payı
    %10
    50/50'ye göre test süresi
    Yaklaşık 2,78 kat
  • Bölme (büyük / küçük grup): 95/5

    Küçük grubun payı
    %5
    50/50'ye göre test süresi
    Yaklaşık 5,26 kat
  • Bölme (büyük / küçük grup): 99/1

    Küçük grubun payı
    %1
    50/50'ye göre test süresi
    Yaklaşık 25 kat
Süre çarpanı 1 ÷ (4 × p × (1 − p)) kuralıyla hesaplandı, diğer koşullar sabit varsayıldı.

Tablodaki eğri 80/20'den sonra hızla dikleşiyor. 60/40 neredeyse hiç zaman kaybettirmez, 90/10 ise testi yaklaşık üç kat uzatır. GrowthBook'un güç hesabı belgesi bu yüzden eşit olmayan gruplarda güç hesabının küçük grubun büyüklüğüyle yapılmasını öneriyor. Kaç ziyaretçiye ihtiyaç olduğunu örneklem büyüklüğü rehberinde ve örneklem büyüklüğü hesaplayıcısında hesaplayabilirsin.

Küçük bir grupla başlamanın meşru bir nedeni de vardır: kademeli açılış. Kohavi ve arkadaşları, riskli bir değişikliği %0,1 ile başlatıp sırasıyla %0,5, %2,5, %10 ve %50'ye çıkarmayı örnek veriyor. Burada amaç ölçüm değil, bir hata varsa onu az kullanıcı etkilenmişken yakalamaktır.

Microsoft ekibinin tuzaklar makalesi bir uyarı da ekliyor: bölme oranının değiştiği dönemlerin verisini tek bir havuzda birleştirmek yanıltıcı sonuç verebilir. Asıl karşılaştırmayı oran sabitlendikten sonraki dönemle yap.

Büyük ortak kontrol grubunun riski

Birden fazla varyantı tek bir büyük kontrol grubuyla karşılaştırmak cazip görünür. Kohavi ve arkadaşlarının 2009 rehberi, yalnızca her varyantın kontrolle karşılaştırılması isteniyorsa kontrol grubunu büyütmenin gücü artırabileceğini yazıyordu. Aynı yazarlar 2022'deki "A/B Testing Intuition Busters" makalesinde daha temkinli bir sonuca varıyor ve büyük, ortak bir kontrol grubu kullanmayı önermiyor.

Gerekçeleri üç tane. Çerezlerin silinmesi ya da değişmesi, küçük varyantlardaki kullanıcıların daha büyük bir kısmının başka bir sürümü de görmesine yol açıyor. Dağılım çarpık olduğunda eşit olmayan bölmede t-testi hedeflenen hata oranını koruyamıyor.

Makaledeki simülasyonda %10 ile %90 bölünmüş bir A/A testinde tek yöndeki yanlış alarm oranı, hedeflenen %2,5 yerine %5,42 çıktı. Kazanç ise küçük: iki ile dört varyant arasında, en uygun ortak kontrol büyüklüğünün varyansı azaltma etkisi %10'un altında kalıyor.

Holdout grubu ve kampanyalarda kontrol grubu

Kontrol grubu tek bir testin süresi boyunca yaşar. Bazı sorular ise tek bir testin cevaplayamayacağı kadar uzun vadelidir. Holdout grubu bu boşluğu doldurur.

Kontrol grubu ile holdout grubu arasındaki fark nedir?

Holdout grubu, tek bir testin değil, uzun bir dönem boyunca yayına alınan bütün değişikliklerin kontrol grubudur. Airbnb, Amazon, Booking.com, Google, LinkedIn, Microsoft ve Netflix'ten deney ekiplerinin birlikte yazdığı ortak makale holdout'u, güncellemeleri almayan rastgele seçilmiş kullanıcılardan oluşan uzun süreli bir grup olarak tanımlıyor. Bu grup, herkese açılan özellikler karşısında kontrol işlevi görür.

Holdout'a neden ihtiyaç duyulduğunu Spotify'ın deney platformu Confidence'ın sözlüğü iyi özetliyor: her biri bir metriği %1 artıran on deney toplamda %10 artış garanti etmez. Holdout, bu özelliklerin birlikte ve uzun vadede ne yaptığını ölçer.

Araçların belgelerinde önerilen holdout büyüklükleri birbirinden farklı. Statsig'in holdout belgesi tipik olarak %1 ile %2 arası bir grup ve üç ile altı aylık bir süre öneriyor. GrowthBook'ta varsayılan değer %5, Optimizely tipik olarak %5'e kadar, Amplitude %1 ile %10 arası, Spotify ise tipik olarak %1 ile %5 arası diyor. Bunlar aracın kendi önerileri, evrensel bir kural yok.

Holdout'un bir maliyeti de var. Ortak makale, uzun süre güncellenmeyen bir kod kolunu sürdürmenin genellikle yüksek mühendislik maliyeti getirdiğini yazıyor. GrowthBook'un belgesi de holdout'taki kullanıcıların iyileştirmeleri kaçırdığını hatırlatıyor. Grup büyüdükçe diğer testlere kalan trafik azalır ve onların süresi uzar.

Kampanyalarda kontrol grubu ve artımsal etki

Kontrol grubu yalnızca site ve uygulama testlerinde kullanılmaz. Reklam, e-mail ve push kampanyalarında da bir kampanyanın artımsal etkisini (incrementality), yani kampanya olmasaydı gerçekleşmeyecek sonucu ölçmek için kontrol grubu kurulur.

Google Ads'in Conversion Lift belgesi bunu reklamı gören deney grubu ile reklamı görmeyen kontrol grubunun karşılaştırması olarak tanımlıyor ve artımsal dönüşümü deney grubunun dönüşümünden kontrol grubunun dönüşümü çıkarılarak hesaplıyor. Aynı belge, kontrol grubunda dönüşümü düşük olan markalarda çok büyük göreli artışların kolayca ortaya çıkabileceği uyarısını da yapıyor. Meta'nın lift çalışması belgesi de reklamı görecek rastgele bir deney grubu ve reklamı görmeyecek bir kontrol grubu oluşturuyor. Braze'in global kontrol grubu ise kullanıcıların bir kısmını hiçbir kampanya almayacak şekilde ayırıyor ve mesajlaşma kampanyalarının toplam etkisini zaman içinde ölçmeye izin veriyor.

Kontrol grubunu bozan sorunlar

Kontrol grubunun bozulduğu nasıl anlaşılır? En güvenilir işaretler grupların beklenen oranda dolup dolmadığı, aynı deneyimi gören iki grubun aynı sonucu verip vermediği ve gruplar arasında bir etkileşim olup olmadığıdır. Bu üç kontrol, sonuç ne kadar iyi görünürse görünsün yapılmalıdır.

Örneklem oranı uyuşmazlığı (SRM)

Örneklem oranı uyuşmazlığı (sample ratio mismatch, SRM), gruplardaki kullanıcı sayısının planlanan orandan farklı çıkmasıdır. Microsoft ekibinin SRM makalesine göre SRM çoğu durumda deney sonuçlarını tamamen geçersiz kılar.

Makaledeki örnekte 821.588'e karşı 815.482 kullanıcı, yani 50,2/49,8 oranı küçük görünse de 50/50 beklentisinden şansla açıklanamayacak kadar uzaktır. Bunun şansla olma olasılığı 500 binde birden düşüktür.

Makaleye göre Microsoft'taki deneylerin yaklaşık %6'sında SRM görülmüş. Bu oran yalnızca Microsoft'un deneylerine ait.

Aynı makaledeki bir MSN örneği SRM'nin sonucu nasıl tersine çevirebileceğini gösteriyor. Deney grubundaki en aktif kullanıcılar bir bot tespit algoritması tarafından bot sanılıp analizden çıkarılmıştı. Bu düzeltildiğinde sonuç tersine döndü ve doğru karar özelliği yayına almak oldu.

SRM'yi tespit etmek için ki-kare testi kullanılır. GrowthBook sonuç ekranında bu testi kullanır ve p değeri 0,001'in altındaysa uyarı gösterir.

Optimizely ise bir dengesizliğin sonuçları hemen geçersiz kılmadığını yazıyor. İki kaynak bu konuda farklı düşündüğü için en güvenli yol, dengesizliğin nedenini bulmadan sonuca dayanarak karar vermemektir.

A/A testi

A/A testi, iki grubun da kontrol deneyimini gördüğü bir testtir. Kohavi ve arkadaşlarının tarifiyle test sistemi her zamanki gibi çalışır ve kullanıcıları iki gruba atar, ama iki gruba da tamamen aynı deneyimi gösterir. %95 güven düzeyinde, aslında fark olmayan bu iki grup arasında anlamlı fark bulunma oranı yaklaşık %5 olmalıdır.

Bundan çok daha sık fark çıkıyorsa atamada ya da ölçümde bir sorun vardır. Microsoft ekibinin tuzaklar makalesi, veri kaydını kontrol eden testlerin kullanıcıların yanlış gruba atanmasını yakalayamayacağını, A/A testinin ise bunu yakalayabileceğini yazıyor. Anlamlılık ve yanlış alarm kavramlarının ayrıntısı istatistiksel anlamlılık rehberinde var.

Sızıntı ve ağ etkisi

Kontrol grubu, deney grubundaki kullanıcılardan etkilenmemelidir. Ortak makale bu durumu ağ etkileşimi olarak tanımlıyor: bir kullanıcının davranışı başka bir kullanıcınınkinden etkilenir ve kontrol grubu deney grubunun yaptıklarından etkilenir. Makaleye göre böyle bir durumda kontrol grubu yalnızca adı kontrol olan bir gruba dönüşür ve etkileşim göz ardı edilirse etki tahmini yanlı olur.

Bu risk özellikle kullanıcıların birbirini etkilediği sosyal ağlarda ve pazar yerlerinde ortaya çıkar. Makalede Lyft'in bu sorunu bölgeler ya da zaman aralıkları düzeyinde rastgele atama yaparak azalttığı, karşılığında tahminin daha oynak hâle geldiği anlatılıyor.

Testi başlatmadan önce kontrol grubu için şunları netleştir:

  • Atama birimi: Ziyaretçi, kullanıcı ya da hesap. Ölçülen sonuçla aynı düzeyde olmalı.
  • Bölme oranı: İki gruplu testte 50/50. Başka bir oran seçiyorsan test süresine etkisini hesapla.
  • Dönem: İki grup aynı tarihlerde, aynı kampanyalar altında çalışmalı.
  • Tek fark: Test edilen değişiklik dışında iki grubun gördüğü her şey aynı olmalı.
  • Kontroller: Test boyunca SRM'yi izle, yeni bir test aracı ya da kurulumda önce A/A testi yap.

Bu kontrollerden geçen bir test, sonucu okumaya hazırdır. Farkın şansla açıklanıp açıklanamayacağını kendi verinle denemek için A/B test anlamlılık hesaplayıcısını kullanabilirsin.

Ali Demirbaş

Yazar

Ali Demirbaş

Mobile App Growth Lead, Aksigorta

Ali Demirbaş, Aksigorta'da Mobil Uygulama Büyüme Lideri olarak çalışıyor. Büyüme, yaşam döngüsü pazarlaması ve bu çalışmaların arkasındaki metrikler üzerine yazıyor.

İlgili araçlar

Sırada okunacaklar

Yaptığım işler seninkilerle kesişiyorsa konuşalım.

Growth, CRM, ölçümleme ya da buradaki projelerden biri hakkında yazabilirsin. Bir soru, bir itiraz ya da sadece merhaba; hepsi olur.