Я использую пакет googleAnalyticsR в R, чтобы получить статистику посещений веб-сайта и рассчитать коэффициент конверсии. Пока проблем нет.
Однако я застрял, пытаясь вычислить требуемый размер популяции и продолжительность теста, используя пакет под названием pwr, который я изменил на основе некоторых рекомендаций, которые я нашел от другого пользователя в сети. Код ниже.
average_daily_traffic <- 10.63 #cvr$all_users/30
control <- 0.30721 #cvr$cvr_perc
uplift <- 0.01
sample_size_calculator <- function(control, uplift){
variant <- (uplift + 1) * control
baseline <- ES.h(control, variant)
sample_size_output <- pwr.p.test(h = baseline,
n = ,
sig.level = 0.05,
power = 0.8)
if(variant >= 0)
{return(sample_size_output)}
else
{paste("N/A")}
}
duration_calculator <- function(sample_size_output, average_daily_traffic){
days_required <- c((sample_size_output)*2)/(average_daily_traffic)
if(days_required >= 0)
{paste0("It will take approximately ", round(days_required, digits = 0), " days or ", round(round(days_required, digits = 0)/365, digits = 0) ," years for this test to reach significance, based on average traffic in the last 30 days")}
else
{paste("N/A")}
}
sample_size_calculator <- sample_size_calculator(control, uplift)
sample_size_output <- sample_size_calculator$n
sample_size_output
duration_calculator(sample_size_output, average_daily_traffic)
Рекомендация, которую я видел в Интернете, заключалась в создании 2 функций. Один называется «sample_size_calculator», а другой - «days_calculator», причем оба довольно понятны. Для меня, по крайней мере, ясно, какова предполагаемая функция обоих.
Мой вывод таков:
[1] "It will take approximately 33394 days or 91 years for this test to reach significance, based on average traffic in the last 30 days"
Это показалось мне довольно реалистичным c пока я не попытался проверить свои результаты с помощью нескольких других онлайн-инструментов, включая VWO , Unbounce и AB Tasty , все из которых предполагают, что я ~ 0,5 х от того, где я должен быть с точки зрения количества дней, необходимых для выполнения теста. Я ценю, что некоторые из расхождений между вышеупомянутыми калькуляторами будут связаны с тем, как каждая из формул обрабатывает округление, но меня больше интересует, почему и где я ошибся в своих вычислениях, например, чтобы недооценить продолжительность теста наполовину.
Я мог бы просто умножить результирующее число на два и go, чтобы лечь спать, но я стремлюсь понять свою ошибку или даже выучить более статистически и синтаксически элегантный способ кодирования этого.
Заранее спасибо.