With 6000 total impressions and a 50/50 split, the experiment is only able reliably to detect a 74% lift in conversion rate (with power = 80%).
If you want to rigorously determine the impact, decide what effect size you hope to see. Use a power calculator to decide the sample size needed to detect that effect size. Administer the test, waiting to acquire the planned sample size. When analyzing, be sure to compute a p-value and a confidence interval on the treatment effect.
[0] https://www.adventuresinwhy.com/post/ab-testing-random-sampl...
If you want to perform a test of a difference of two proportions, you need to do:
prop.test(c(39, 67), c(total_group_a_impressions, total_group_b_impressions))
I don't have experience with A/B testing, so I'm not sure if this is typically or best handled using this particular statistical test.
Edit: The first parameter should be c(39, 28), meaning the total conversions in each group. I have no excuse beyond being tired.
Edit 2: To clarify, I think he should still use the two-sample form of prop.test, especially since we did not know at the time of his posting that the sample sizes are equal.
What you've tested using that invocation is the
null hypothesis that the underlying probability
of 39/67 is 0.5.
Isn't that equivalent to my interpretation of the test result? "In a world where it makes no difference which design is used, you would get a result as significant as this 22% of the time". If you want to perform a test of a difference of two proportions, you need to do:
prop.test(c(39, 67), c(total_group_a_impressions, total_group_b_impressions))
Do you mean c(39,28)? Because group_a had 39 hits and group_b hat 28. Doing so with the group sizes Bemmu stated (3000/3000) also gives me a p value of 0.22.As long as the group sizes are equal, the test is not very sensitive to the sizes.
Edit: I'd expect them to be nearly the same since the Chi-squared distributions would be parameterized similarly, so if we have similar results, we should see similar test statistics. Maybe my reasoning here is incorrect though!
I neglected to record how many views each version had, but should be at least 3000 since the conversion ratio is about 0.5 - 1%.
As for going with the winner: Yes, if the test result (39/28) is the only information you have and there are only two choices (go with winner / go with loser) then it makes sense to go with the winner.
I am not sure how to interpret that. We would have to dive into the GitHub repo and figure out which test it performs I guess.
So, assuming a uniform prior and updating with 39/3000 and 28/3000 conversions the difference between the two distributions is greater than zero 91% of the time. It's only guaranteed to be above zero at about the 80% credible interval, and since we started with an uninformed prior that'd be about p=.2?
I'm open to correction here.
Here, we want to test whether p(success|cond) differs across conditions, not whether prob(cond|success) is 50%.
This distinction is important because when p(success|cond) for some cond is low, its variance is also very small, but prop.test(39,67) doesn't reflect this. That could be 67 successes out of a small sample (and high chance of success), or out of a huge sample (and low chance of success).
Edit: whoops, I didn't notice other comments point out this issue
> For example if you want to test a tweak that results in 5% more conversions, you need about 3000 sales to detect it! For Candy Japan this would mean waiting for about 10 years for the test to complete.
But they want to do something still to try and improve sales. Seems reasonable even if not scientific.
For example, with such small numbers, there isn't much value in aggregate statistics. It would take a day or two to go through each one individually and see what happened, and you'd probably learn way more about your customers.
And unless I missed it the article doesn't state those numbers.
Intuitively, the numbers you quoted would be more significant the bigger the test and control groups are.
The conversion rate is basically one in a million in both cases.
Using R's prop test, I get a p value of 0.22. (Type "prop.test(39,67)" to calculate it).
I think this means that in a world where it makes no difference which design is used, you would get a result as significant as this 22% of the time.
An alternative is the Adjusted Wald method. You can try it online here:
https://measuringu.com/wald/
Which gives some confidence intervals which also range from "could be better" to "could be worse". Even when you reduce the confidence level from the typical 95% to 90%.
Which calculator was that?