Saya seorang pengembang perangkat lunak yang bekerja pada sistem pengujian A / B. Saya tidak memiliki latar belakang statistik yang solid tetapi telah mengambil pengetahuan selama beberapa bulan terakhir.
Skenario pengujian tipikal melibatkan membandingkan dua URL di situs web. Pengunjung mengunjungi LANDING_URL
dan kemudian secara acak diteruskan ke salah satu URL_CONTROL
atau URL_EXPERIMENTAL
. Pengunjung merupakan sampel, dan kondisi kemenangan dicapai ketika pengunjung melakukan beberapa tindakan yang diinginkan di situs tersebut. Ini merupakan konversi dan tingkat konversi adalah tingkat konversi (biasanya dinyatakan sebagai persentase). Tingkat konversi khas untuk URL yang diberikan adalah sesuatu di ranah 0,01% hingga 0,08%. Kami menjalankan tes untuk menentukan bagaimana perbandingan URL baru dengan URL lama. Jika URL_EXPERIMENTAL
ditampilkan untuk mengungguli URL_CONTROL
, kami ganti URL_CONTROL
dengan URL_EXPERIMENTAL
.
Kami telah mengembangkan sistem menggunakan teknik pengujian hipotesis sederhana. Saya menggunakan jawaban untuk pertanyaan CrossValidated lain di sini untuk mengembangkan sistem ini.
Tes diatur sebagai berikut:
- Tingkat konversi perkiraan
CRE_CONTROL
dariURL_CONTROL
dihitung dengan menggunakan data historis. - Tingkat konversi yang diinginkan Target
CRE_EXPERIMENTAL
dariURL_EXPERIMENTAL
adalah set. - Tingkat signifikansi 0,95 biasanya digunakan.
- Kekuatan 0,8 biasanya digunakan.
Bersama-sama, semua nilai ini digunakan untuk menghitung ukuran sampel yang diinginkan. Saya menggunakan fungsi R power.prop.test
untuk mendapatkan ukuran sampel ini.
Tes akan berjalan sampai semua sampel dikumpulkan. Pada titik ini, interval kepercayaan untuk CR_CONTROL
dan CR_EXPERIMENTAL
dihitung. Jika mereka tidak tumpang tindih, maka pemenang dapat dinyatakan dengan tingkat signifikansi 0,95 dan kekuatan 0,8.
Pengguna tes kami memiliki dua masalah utama, meskipun:
1. Jika, pada titik tertentu selama pengujian, cukup sampel dikumpulkan untuk menunjukkan pemenang yang jelas, tidak bisakah tes dihentikan?
2. Jika tidak ada pemenang yang dinyatakan pada akhir tes, dapatkah kami menjalankan tes lebih lama untuk melihat apakah kami dapat mengumpulkan sampel yang cukup untuk menemukan pemenang?
Perlu dicatat bahwa banyak alat komersial di luar sana yang memungkinkan penggunanya melakukan apa yang diinginkan pengguna kami. Saya telah membaca bahwa ada banyak kekeliruan dengan hal di atas, tetapi saya juga menemukan ide tentang penghentian aturan dan ingin mengeksplorasi kemungkinan menggunakan aturan semacam itu dalam sistem kami sendiri.
Berikut adalah dua pendekatan yang ingin kami pertimbangkan:
1. Menggunakan power.prop.test
, bandingkan tingkat konversi terukur saat ini dengan jumlah sampel saat ini dan lihat apakah cukup sampel telah dikumpulkan untuk menyatakan pemenang.
Contoh: Tes telah diatur untuk melihat apakah perilaku berikut ada di sistem kami:
CRE_CONTROL
: 0,1CRE_EXPERIMENTAL
: 0.1 * 1.3- Dengan parameter ini, ukuran sampel
N
adalah 1774.
Namun, seiring dengan kemajuan tes dan mencapai 325 sampel, CRM_CONTROL
(tingkat konversi yang diukur untuk kontrol) adalah 0,08 dan CRM_EXPERIMENTAL
0,15. power.prop.test
dijalankan pada tingkat konversi ini dan N
ditemukan menjadi 325. Tepatnya jumlah sampel yang diperlukan untuk menyatakan CRM_EXPERIMENTAL
sebagai pemenang! Pada titik ini adalah harapan kami bahwa tes dapat berakhir. Demikian pula, jika tes mencapai 1.774 sampel tetapi tidak ada pemenang yang ditemukan, tetapi kemudian mencapai 2.192 sampel yang cukup untuk menunjukkan bahwa CRM_CONTROL
0,1 danCRM_EXPERIMENTAL
0,128 adalah hasil di mana pemenang dapat dinyatakan.
Dalam pertanyaan terkait, pengguna menyarankan bahwa tes semacam itu kurang kredibel karena mendorong pemberhentian awal yang memiliki sampel lebih sedikit dan juga rentan terhadap bias estimasi. dan peningkatan jumlah kesalahan Tipe I dan Tipe II. Apakah ada cara untuk membuat aturan penghentian ini berfungsi? Ini adalah pendekatan yang kami sukai karena ini berarti lebih sedikit waktu pemrograman bagi kami. Mungkin aturan penghentian ini bisa berfungsi dengan menawarkan semacam skor numerik atau skor yang mengukur kredibilitas tes jika harus dihentikan lebih awal?
2. Menggunakan analisis sekuensial atau SPRT .
Metode pengujian ini dirancang tepat untuk situasi di mana kita berada: bagaimana pengguna kami dapat memulai tes dan mengakhirinya sedemikian rupa sehingga mereka tidak membuang waktu berlebih dalam pengujian? Baik menjalankan tes terlalu lama, atau harus memulai tes dengan parameter yang berbeda.
Dari dua metode di atas, saya menyukai SPRT karena matematika sedikit lebih mudah bagi saya untuk dipahami dan karena sepertinya lebih mudah diprogram. Namun, saya tidak mengerti bagaimana cara menggunakan fungsi kemungkinan dalam konteks ini. Jika seseorang dapat membuat contoh bagaimana menghitung rasio kemungkinan, jumlah kumulatif rasio kemungkinan, dan melanjutkan melalui contoh yang menggambarkan situasi ketika seseorang akan terus memantau, ketika seseorang akan menerima hipotesis nol dan hipotesis alternatif, itu akan membantu kami menentukan apakah SPRT adalah cara yang tepat untuk pergi.
Jawaban:
Ini adalah masalah yang menarik dan teknik yang terkait sudah banyak aplikasi. Mereka sering disebut strategi "pemantauan sementara" atau "desain eksperimental berurutan" (artikel wikipedia, yang Anda tautkan, sayangnya sedikit jarang), tetapi ada beberapa cara untuk melakukannya. Saya pikir @ user27564 keliru dalam mengatakan bahwa analisis ini harus Bayesian - pasti ada pendekatan yang sering digunakan untuk pemantauan sementara juga.
Logika yang serupa memungkinkan Anda menemukan "poin yang tak terhindarkan" untuk tes lain di mana:
Ini mungkin akan mudah bagi Anda untuk menerapkan - menghitung kriteria berhenti offline dan kemudian cukup tancapkan ke kode situs Anda - tetapi Anda sering dapat melakukan lebih baik jika Anda ingin menghentikan percobaan tidak hanya ketika hasilnya tidak bisa dihindari , tetapi ketika itu juga sangat tidak mungkin berubah.
Ada sejumlah pendekatan lain juga. Metode berurutan kelompok dirancang untuk situasi di mana Anda mungkin tidak dapat memperoleh sejumlah mata pelajaran dan mata pelajaran mengalir dengan laju yang bervariasi. Tergantung pada lalu lintas situs Anda, Anda mungkin atau mungkin tidak ingin melihat ini.
Ada cukup banyak paket R yang beredar di CRAN, jika itu yang Anda gunakan untuk analisis Anda. Tempat yang baik untuk memulai mungkin sebenarnya adalah Clinical Trials Task View , karena banyak pekerjaan ini keluar dari bidang itu.
[*] Hanya beberapa saran ramah: berhati-hatilah ketika melihat nilai signifikansi yang dihitung dari sejumlah besar titik data. Ketika Anda mengumpulkan semakin banyak data, pada akhirnya Anda akan menemukan hasil yang signifikan, tetapi efeknya mungkin sepele. Misalnya, jika Anda bertanya kepada seluruh planet apakah mereka lebih suka A atau B, sangat tidak mungkin bahwa Anda akan melihat perpecahan 50:50, tetapi mungkin tidak ada gunanya memperlengkapi kembali produk Anda jika perpecahan adalah 50.001: 49.999. Terus periksa ukuran efek (yaitu, perbedaan dalam tingkat konversi) juga!
sumber
Anda dapat berhenti lebih awal, tetapi jika Anda melakukannya, nilai-p Anda tidak mudah ditafsirkan. Jika Anda tidak peduli dengan interpretasi nilai-p Anda, maka cara menjawab dua pertanyaan pertama Anda adalah 'tidak' tidak masalah (terlalu banyak). Klien Anda tampaknya pragmatis, jadi interpretasi sebenarnya dari nilai-p mungkin bukan poin yang baik bagi Anda.
Saya tidak bisa berbicara dengan pendekatan kedua yang Anda usulkan.
Namun, pendekatan pertama tidak di tanah yang kokoh. Perkiraan normal distribusi binomial tidak valid untuk proporsi yang rendah (yang merupakan metode yang digunakan power.prop.test, juga metode yang digunakan oleh Cohen dalam buku klasiknya tentang kekuasaan). Selain itu, sejauh yang saya ketahui, tidak ada solusi analisis daya bentuk tertutup untuk tes proporsi dua sampel (lih. Bagaimana seseorang dapat melakukan analisis daya binomial dua kelompok tanpa menggunakan perkiraan normal? ). Namun ada metode yang lebih baik untuk memperkirakan interval kepercayaan proporsi (lih. Paket binom). Anda dapat menggunakan interval kepercayaan yang tidak tumpang tindih sebagai solusi parsial ... tetapi ini tidak sama dengan memperkirakan nilai-p dan karenanya tidak menyediakan rute menuju kekuasaan secara langsung. Saya harap seseorang memiliki solusi bentuk tertutup yang bagus yang akan mereka bagikan kepada kita semua. Jika saya menemukan satu, saya akan memperbarui pertanyaan yang dirujuk di atas. Semoga berhasil.
Sunting: Sementara saya memikirkannya, izinkan saya benar-benar pragmatis di sini sejenak. Klien Anda ingin agar eksperimen ini berakhir ketika mereka yakin bahwa situs eksperimen berfungsi lebih baik daripada situs kontrol. Setelah Anda mendapatkan sampel yang layak, jika Anda tidak siap untuk mengambil keputusan, mulailah menyesuaikan rasio tugas acak Anda dengan pihak mana pun yang 'menang'. Jika itu hanya blip, regresi menuju mean akan masuk, Anda akan menjadi kurang yakin dan mengurangi rasio. Ketika Anda cukup yakin, sebut itu berhenti dan nyatakan pemenang. Pendekatan optimal mungkin akan melibatkan pembaruan Bayesian, tapi saya tidak cukup tahu tentang topik itu dari atas kepala saya untuk mengarahkan Anda. Namun saya dapat meyakinkan Anda bahwa meskipun kadang-kadang tampak kontra intuitif, matematika itu sendiri tidak terlalu sulit.
sumber
Pertanyaan yang Anda miliki adalah pertanyaan umum yang muncul dalam tes statistik. Ada dua 'rasa' statistik di luar sana, frequentist dan bayesian. Jawaban yang sering muncul untuk kedua pertanyaan Anda itu mudah:
Setelah Anda menetapkan pengaturan Anda, Anda tidak dapat melihat bahkan pada data (analisis buta). Dari sudut pandang frequentist, tidak ada jalan lain, tidak ada trik curang! (EDIT: Tentu saja, ada upaya untuk melakukannya, dan mereka juga akan berfungsi jika digunakan dengan benar, tetapi kebanyakan dari mereka diketahui menyebabkan bias.)
Tetapi ada sudut pandang bayesian, yang sangat berbeda. Pendekatan bayesian membutuhkan kontras dengan input tambahan yang sering, distribusi probabilitas a-priori. Kita bisa menyebutnya juga pengetahuan atau prasangka sebelumnya. Dengan ini, kita dapat menggunakan data / pengukuran untuk memperbarui pengetahuan kita ke probabilitas a-posteriori. Intinya adalah, kita bisa menggunakan data dan bahkan lebih, kita bisa menggunakan data di setiap titik menengah dari pengukuran. Dalam setiap pembaruan, posterior terakhir adalah prioritas baru kami dan kami dapat memperbaruinya dengan pengukuran baru sesuai dengan pengetahuan kami yang terbaru. Tidak ada masalah menghentikan sama sekali!
Saya menemukan ceramah yang membahas masalah serupa yang Anda miliki dan saya jelaskan di atas: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf
Tetapi di samping ini, apakah Anda benar-benar yakin perlu ini sama sekali? Tampaknya Anda memiliki beberapa sistem yang berjalan memutuskan di mana menautkan permintaan. Untuk ini, Anda tidak perlu membuktikan bahwa keputusan Anda benar dalam arti statistik dengan uji hipotesis. Pernahkah Anda membeli kokas, karena Anda bisa mengecualikan pepsi 'benar' sekarang dengan probabilitas 95%? Sudah cukup untuk mengambil satu yang lebih baik, tidak termasuk hipotesis. Itu akan menjadi algoritma sepele: Hitung ketidakpastian tingkat A, hitung ketidakpastian B. Ambil perbedaan dari kedua tingkat dan bagi itu b ketidakpastian ketidakpastian perbedaan. Hasilnya adalah sesuatu seperti signifikansi perbedaan sigma. Kemudian ambil semua tautan di mana ada lebih dari dua atau tiga perbedaan sigma. Kekurangan,
sumber
mungkin beberapa metode bisa digunakan di sana seperti
ini akan menyesuaikan cutoff P berdasarkan hasil dan akan membantu Anda berhenti mengumpulkan data dan menghemat sumber daya dan waktu.
mungkin karya lain bisa ditambahkan di sini.
sumber