Permalink
Browse files

updated docs to include link to blog post

  • Loading branch information...
1 parent 191d165 commit 2ef63e15b9cda024fad26df7cb9552e01b2d0261 @bmuller committed Nov 12, 2011
Showing with 3 additions and 3 deletions.
  1. +1 −1 README.rdoc
  2. +2 −2 whybandit.rdoc
View
@@ -1,6 +1,6 @@
= bandit
-Bandit is a multi-armed bandit optimization framework for Rails. It provides an alternative to A/B testing in Rails. For background and a comparison with A/B testing, see the whybandit.rdoc document.
+Bandit is a multi-armed bandit optimization framework for Rails. It provides an alternative to A/B testing in Rails. For background and a comparison with A/B testing, see the whybandit.rdoc document or the blog post here[http://findingscience.com/rails/vanity/statistics/testing/2011/11/12/bandit:-a-b-testing-alternative-for-rails.html].
= Installation
First, add the following to your Gemfile in your Rails 3 app:
View
@@ -1,7 +1,7 @@
= Bandit vs A/B Testing
In a typical A/B test, two alternatives are compared to see which produces the most "conversions" (that is, desired results). For instance, if you have a website with a big "Sign Up" button that you want visitors to click, you may wish to choose different background colors. Under typical A/B testing guildlines, you would pick a number (say, *N*) of users for a test and show half of them one color and half of them another color. After users are shown the button, you record the number of clicks that result from viewing each color. Once *N* users view one of the two alternatives, a statistical test (generally categorical, like a Chi-Square Test or a G-Test) is run to determine whether or not the number of clicks (aka, "conversions") for one color were higher than the number of clicks for the other color. This test determines whether the difference you observed was likely due simply to chance or whether the difference you saw was more likely due to an actual difference in the rate of conversion.
-This method of testing is popular, but is fraught with issues (practical and statistical). Bandit provides an implementation of an alternative method of testing that solves many of these issues.
+This method of testing is popular, but is fraught with issues (practical and statistical). Bandit provides an implementation of an alternative method of testing for Rails that solves many of these issues.
== Issues with A/B Testing
There are a number of issues with A/B testing (some of which have been described in more detail here[http://untyped.com/untyping/2011/02/11/stop-ab-testing-and-make-out-like-a-bandit]):
@@ -11,7 +11,7 @@ There are a number of issues with A/B testing (some of which have been described
1. With A/B Testing, you need to have a fixed sample size to make the test valid (otherwise, you run the risk of repeated significance testing errors, as described in more detail here[http://www.evanmiller.org/how-not-to-run-an-ab-test.html]).
1. Due to the fixed sample size requirement, you may have to wait a while before you get any results from your test (especially if the expected improvement is marginal, in which case your sample size would need to be larger). This problem can be compounded if you don't get much traffic.
1. Designers and developers don't want to (and shouldn't have to) understand statistical concepts like power[http://en.wikipedia.org/wiki/Statistical_power], p-values[http://en.wikipedia.org/wiki/P-value], or confidence[http://en.wikipedia.org/wiki/Confidence_intervals] when creating and evaluating tests.
-1. There are no guidelines for what you should do when A performs just as well as B.
+1. There are no good answers for what you should do when A performs just as well as B. Was the sample size just too small (implying you should try again with a large sample)? Go with A? Go with B? Does it matter? The reality is it may matter - but you won't know.
== The Bandit Method
The ultimate goal of A/B testing is to increase conversions. The problem can be described terms that differ greatly from the multitude of questions A/B testing brings (i.e., "Is A better than B?" followed by "Is B better than C?" followed by "Is C better than D?" _ad_ _infinitum_). Instead, imagine you have a multitude of possible alternatives, and you want to make a decent choice between alternatives you know perform well and alternatives you haven't tried very often each time a user requests a page. With each page load, pick the best alternative most of the time and an alternative that hasn't been displayed much some of the time. After each display, monitor the conversions and update what you consider the "better" alternatives to be. This is the basic method of a solution to what is called the multi-armed bandit problem.

0 comments on commit 2ef63e1

Please sign in to comment.