Menu

Simulator Mengintip Uji A/B

Dua ribu uji di mana A dan B adalah halaman yang sama, dijalankan pada traffic-mu. Lihat berapa banyak yang akan dinyatakan menang oleh orang yang mengintip setiap hari, dan berapa banyak dari uji yang sama yang menipu orang yang menunggu tanggal selesai.

Oleh Nethanel Bar, Co-founder & CEO

Terakhir diperbarui

Siap benar-benar belajar coding?

Coddy mengajarimu dengan menulis kode sungguhan di browser: pelajaran interaktif, umpan balik instan, dan bantuan AI saat kamu buntu.

Kebiasaan paling mahal dalam uji A/B, disimulasikan dengan angkamu

Begini kebiasaannya. Kamu memulai sebuah uji, dan setiap pagi kamu membuka dashboard. Bar-nya merayap naik, turun sedikit, naik lagi, lalu suatu Selasa melewati 95%. Kamu mengumumkannya, merilis pemenangnya, lalu lanjut. Masalahnya, p-value itu berkelana. Pada uji yang kedua variannya identik, p-value tetap melewati 0,05 di beberapa hari karena kebetulan; nanti ia kembali naik. Berhenti di persilangan pertama berarti kamu menangkapnya saat sedang lewat, dan tingkat kepercayaan yang kamu kira kamu punya pun hilang.

Besarnya efek ini mengejutkan banyak orang. Pada kepercayaan 95%, uji yang dibaca sekali di akhir menipumu kira-kira satu dari dua puluh kali, dan itulah kesepakatan yang kamu tanda tangani. Baca uji yang sama setiap hari selama empat minggu lalu berhenti di hari hijau pertama, dan simulator biasanya menunjukkan pemenang palsu di seperempat atau lebih uji yang tidak mengubah apa pun. Tulisan asli Evan Miller menyebut angkanya lebih dari 20% untuk orang yang mengintip setiap hari; Optimizely membangun ulang mesin statistiknya pada 2015 karena tingkat positif palsu pelanggannya sudah melewati angka itu. Mengecek seminggu sekali alih-alih setiap hari kira-kira memangkas kerusakannya setengah, tapi tidak menghilangkannya.

Simulasi di sini jujur tentang apa dirinya: setiap uji menarik konversi pada rate sebenarnya untuk kedua kelompok, menjalankan uji z dua proporsi biasa di setiap pengecekan pada semua data yang terkumpul sejauh ini, lalu mencatat di mana orang yang mengintip akan berhenti. Setiap jalur di grafik adalah satu uji; setiap titik adalah satu pagi ketika seseorang akan mengumumkan hasil. Atur kenaikan sebenarnya ke +10% untuk melihat separuh cerita lainnya, ketika orang yang mengintip menangkap efek nyata lebih awal tapi dengan kenaikan yang dilebih-lebihkan, dan akan "menang" sama bersemangatnya seandainya efeknya nol.

Yang ditunjukkan simulasi ini

  • P-value adalah random walk. Di bawah hipotesis nol, nilainya terdistribusi seragam pada satu pengecekan mana pun, artinya pada pagi mana pun ada peluang 5% nilainya berada di bawah 0,05. Selama dua puluh delapan pagi, peluang-peluang itu menumpuk.
  • Tingkat positif palsu bergantung pada berapa kali kamu mengecek, bukan pada berapa lama uji berjalan. Uji empat minggu yang dibaca seminggu sekali lebih jarang tertipu daripada uji dua minggu yang dibaca setiap hari.
  • Berhenti lebih awal membesar-besarkan kenaikan. Saat orang yang mengintip berhenti di hari keberuntungan, kenaikan yang teramati hari itu pasti luar biasa besar. Pemenang yang dirilis lalu "memudar" setelah peluncuran sering kali berasal dari sini.
  • Solusinya adalah disiplin atau jenis uji yang berbeda. Disiplin: tetapkan ukuran sampel dan tanggal selesai sejak awal, lalu baca sekali. Uji yang berbeda: metode sekuensial, seperti always-valid p-value yang dipakai Optimizely, Statsig, dan Eppo, memang dibuat untuk dibaca terus-menerus, dengan biaya ukuran sampel yang lebih besar.
  • Dashboard Bayesian tidak kebal. Probabilitas menjadi yang terbaik yang dicek setiap hari lalu ditindaklanjuti pada sebuah ambang punya masalah yang sama, hanya dengan kostum berbeda.

Cara memakai simulator

  1. Masukkan conversion rate dan pengunjung harianmu

    Simulasi menarik konversi pada rate nyatamu, jadi naik turunnya p-value sesuai dengan noise yang benar-benar akan kamu lihat.

  2. Atur rencana durasi dan seberapa sering kamu mengecek

    Setiap hari, setiap tiga hari, atau seminggu sekali. Selisih antara rate orang yang mengintip dan rate yang jujur adalah harga dari kebiasaan itu.

  3. Biarkan kenaikan sebenarnya tetap tidak ada

    Dengan begitu setiap uji menjadi uji A/A: pemenang apa pun pasti alarm palsu. Setelah itu ganti ke +10% atau +30% untuk melihat orang yang mengintip menghadapi efek nyata.

  4. Baca dua angka besarnya

    Rate orang yang mengintip adalah seberapa sering pengecek harian mengumumkan pemenang. Rate tanggal selesai seharusnya dekat dengan alpha yang kamu pilih; kalau iya, uji yang jujur melakukan apa yang dijanjikannya.

  5. Jalankan lagi

    Setiap putaran menarik uji acak baru. Rate-nya bergeser sedikit; selisihnya tidak.

Tingkat positif palsu umum pada uji A/A

Pada kepercayaan 95%, satu kali pembacaan jujur di akhir tertipu sekitar 5% dari waktu. Angka kasar dari simulasi dan literatur untuk orang yang mengintip dan berhenti di pengecekan signifikan pertama.

Seberapa sering kamu mengecekPengecekan dalam 4 mingguPemenang palsu
Sekali, di akhir1sekitar 5%
Seminggu sekali4sekitar 10 sampai 13%
Setiap 3 hari9 sampai 10sekitar 15 sampai 20%
Setiap hari28sekitar 25 sampai 30%
Setiap hari selama 12 minggu84lebih dari 35%

Tiga kebiasaan, disimulasikan

Pengecek harian

Konversi 5%, 1.000 pengunjung per hari, 28 hari, dicek setiap pagi. Di putaran kami: orang yang mengintip mengumumkan pemenang di sekitar 28% dari 2.000 uji A/A; dengan membaca sekali di akhir, 4,5%.

Enam kali lipat tingkat alarm palsu, untuk uji yang terasa hati-hati karena ada orang yang memantaunya setiap hari. Separuh "pemenang" itu memenangkan B dan separuhnya memenangkan A, karena memang tidak ada yang bisa ditemukan.

Pengecek mingguan

Traffic sama, durasi sama, dicek seminggu sekali. Di putaran kami: sekitar 12% untuk orang yang mengintip, dibandingkan 5% di akhir.

Mengecek empat kali alih-alih dua puluh delapan kali sangat membantu, tapi tetap membuat rate yang dijanjikan lebih dari dua kali lipat. Tidak ada jumlah pengecekan selain satu yang menepati janji itu.

Kenaikan nyata +10%

Atur kenaikan sebenarnya B ke +10% pada traffic yang sama. Uji jujur selama 28 hari punya power terbatas untuk kenaikan sekecil itu pada traffic ini; orang yang mengintip lebih sering berhenti lebih awal, di hari-hari keberuntungan.

Inilah kasus yang menggoda: orang yang mengintip tampaknya menemukan hasil lebih cepat. Tapi hari-hari ia berhenti adalah hari ketika kenaikan terlihat paling besar, jadi estimasi yang dirilis membengkak, dan kebiasaan yang sama akan menemukan "pemenang" walau kenaikannya diatur ke nol.

Kesalahan saat mengintip

  • Berhenti di pagi signifikan pertama. Inilah inti seluruh halaman ini. Tingkat kepercayaan hanya berarti sesuai yang tertulis kalau kamu membaca hasilnya sekali.
  • Memperpanjang uji yang "hampir berhasil". Memutuskan menjalankan lebih lama karena hasilnya nyaris signifikan adalah mengintip secara terbalik, dan menaikkan tingkat positif palsu dengan cara yang sama.
  • Mengecek setiap hari "hanya untuk memastikan tidak ada yang rusak". Memantau bug itu boleh; memantau p-value tidak. Lihat pembagian traffic dan tingkat error, bukan kenaikannya, sampai tanggal selesai.
  • Percaya bahwa dashboard Bayesian membuat mengintip jadi aman. Bertindak berdasarkan ambang probabilitas yang kamu cek setiap hari punya penggelembungan yang sama.
  • Melaporkan kenaikan dari hari kamu berhenti. Kalau terpaksa berhenti lebih awal, laporkan intervalnya, dan anggap kenaikan sebenarnya lebih kecil dari estimasi titiknya.

FAQ seputar mengintip hasil uji

Apa itu peeking problem dalam uji A/B?

Membaca uji dengan horizon tetap berulang kali lalu berhenti saat pertama kali hasilnya tampak signifikan. Karena p-value naik turun selama data masuk, setiap pengecekan adalah kesempatan baru untuk melewati ambang karena keberuntungan. Uji yang dibaca setiap hari selama sebulan pada kepercayaan 95% menghasilkan pemenang palsu kira-kira seperempat dari waktu ketika tidak ada yang berubah, bukan 5% seperti yang dijanjikan tingkat kepercayaannya.

Apakah salah melihat uji saya sebelum selesai?

Melihat itu boleh; bertindak adalah masalahnya. Cek bahwa traffic terbagi merata, kedua varian termuat, dan konversi tercatat. Jangan baca kenaikan atau tingkat kepercayaannya, dan jangan biarkan apa yang kamu lihat mengubah tanggal selesai ke arah mana pun.

Bagaimana cara uji A/B kalau saya ingin mengecek terus-menerus?

Pakai metode sekuensial. Always-valid p-value, desain group sequential, dan sejenisnya memang dibuat untuk dibaca kapan saja; bayarannya adalah ukuran sampel yang lebih besar untuk power yang sama. Kebanyakan platform modern menyediakannya. Simulator ini memodelkan uji horizon tetap klasik karena itulah yang dipakai sebagian besar perhitungan spreadsheet dan dashboard, termasuk tab lain di situs ini.

Apakah mengintip tetap berpengaruh kalau saya mengecek seminggu sekali?

Lebih kecil, tapi ya. Empat pengecekan selama empat minggu pada 95% biasanya menggandakan tingkat positif palsu. Satu-satunya jumlah pengecekan yang menjaga rate yang dijanjikan adalah satu.

Kenapa simulator memakai uji A/A?

Karena dengan kelompok yang identik, setiap pemenang pasti alarm palsu, jadi rate yang dilaporkan simulator persis sama dengan tingkat positif palsu dari kebiasaan yang disimulasikan. Menyalakan kenaikan nyata menunjukkan sisi lainnya, ketika orang yang mengintip berhenti lebih awal di hari keberuntungan dan melaporkan efek yang membengkak.

Apakah uji Bayesian menyelesaikan peeking problem?

Tidak dengan sendirinya. Probabilitas Bayesian yang dibaca terus-menerus dan ditindaklanjuti pada ambang tetap juga menggelembungkan keputusan yang salah dengan cara yang sama, seperti yang ditunjukkan Georgi Georgiev dan lainnya. Metode Bayesian dengan aturan keputusan dan prior yang tepat bisa berperilaku baik saat dipantau terus-menerus, tapi label "Bayesian" saja bukan solusinya.

Alat developer lainnya

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai