{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# One option model" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from prayas import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The experiment consists of multiple variants and in each variant the visitor has only one option to choose. A detailed explanation of the methodology is available in *[Bayesian A/B Testing for Business Decisions](https://arxiv.org/abs/2003.02769)* by Shafi Kamalbasha and Manuel J. A. Eugster (2020)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setup the model and define the four variants:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "m = OneOptionModel([\"Discount 20\", \"Discount 10\", \n", " \"Discount 40\", \"Discount 50\"],\n", " baseline = \"Discount 20\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The full model specification is:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "One option model\n", "Variants : Discount 20, Discount 10, Discount 40, Discount 50\n", "Baseline : Discount 20\n", "Measures : conversion\n", "Primary measure : conversion\n", "Maximum loss threshold: 5 \n" ] } ], "source": [ "print(m)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the result of the experiment:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "m.set_result(successes=[139, 147, 149, 134], \n", " trials=[15144, 15176, 14553, 14948])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Investigate the result:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "m.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot shows the posteriors for the conversion rate based on the underlying one option model. The decision for this experiment is:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VariantMeasureProbabilityToBeBestProbabilityToBeatBaselineUpliftFromBaselinePotentialLossFromBaselineMaxUpliftMaxPotentialLoss
0Discount 40conversion0.58330.827711.3802191.17826214.1948032.375415
\n", "
" ], "text/plain": [ " Variant Measure ProbabilityToBeBest ProbabilityToBeatBaseline \\\n", "0 Discount 40 conversion 0.5833 0.8277 \n", "\n", " UpliftFromBaseline PotentialLossFromBaseline MaxUplift MaxPotentialLoss \n", "0 11.380219 1.178262 14.194803 2.375415 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m.decision()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this experiment, the variant 'Discount 40' has the hightest probability to be the best with 58%. It is 82% better than the baseline with an uplift of 11%. If we go with 'Discount 40', there is still a change that is not better the baseline and the potential loss is about 1%.\n", "\n", "The decision is based on the defined *primary* measure and *maximum acceptable loss*. The default values are `conversion` as the primary measure and `5%` as the maximum acceptable loss. To change the default values, change the parameters of the model in the setup step:\n", "\n", "* `m.primary_measure = \"...\"`\n", "* `m.loss_threshold = \"...\"`\n", "\n", "These two parameters are not part of the decision function but part of the model. This should highlight the fact that the parameters should be defined during the experiment design and setup stage and are not parameters to play around in the analysis stage.\n", "\n", "Get more details into the experiment and the decision: " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VariantMeasureProbabilityToBeBestProbabilityToBeatBaselineUpliftFromBaselinePotentialLossFromBaselineMaxUpliftMaxPotentialLoss
0Discount 40conversion0.587000.8247511.6056631.16093514.2145642.482101
1Discount 10conversion0.252550.672105.4515552.6179658.0138337.605213
2Discount 20conversion0.096850.000000.0000000.0000002.42885611.302390
3Discount 50conversion0.063600.41985-2.3136666.024267-2.37126213.028885
\n", "
" ], "text/plain": [ " Variant Measure ProbabilityToBeBest ProbabilityToBeatBaseline \\\n", "0 Discount 40 conversion 0.58700 0.82475 \n", "1 Discount 10 conversion 0.25255 0.67210 \n", "2 Discount 20 conversion 0.09685 0.00000 \n", "3 Discount 50 conversion 0.06360 0.41985 \n", "\n", " UpliftFromBaseline PotentialLossFromBaseline MaxUplift MaxPotentialLoss \n", "0 11.605663 1.160935 14.214564 2.482101 \n", "1 5.451555 2.617965 8.013833 7.605213 \n", "2 0.000000 0.000000 2.428856 11.302390 \n", "3 -2.313666 6.024267 -2.371262 13.028885 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m.score_baseline()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data frame consists of a row for each variant and measure combination. It provides:\n", "\n", "1. The probability to be the best variant and the probability to beat the baseline\n", "2. The estimated uplift and potential loss in percentage from the baseline if this variant is put into production\n", "3. The estimated uplift and potential loss in percentage from the best variant if this variant is put into production" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The package also provides a function to compute a pairwise scoring between all pairs of variants (and measures):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LeftRightMeasureLeftMeasureRightMeasureUpliftProbabilityUpliftProbabilityLossLossLeftMeasureMaxLossScore
0Discount 40Discount 50conversion0.0102380.00896414.1392420.868400.131600.8667170.0101501227.851782
1Discount 40Discount 20conversion0.0102380.00917911.4275080.823950.176051.1893040.010117941.569550
2Discount 10Discount 50conversion0.0096860.0089648.0549270.748100.251901.9150190.009501602.589061
3Discount 40Discount 10conversion0.0102380.0096865.6307620.679050.320952.4569910.009987382.356875
4Discount 10Discount 20conversion0.0096860.0091795.4877450.679500.320502.5640850.009438372.892259
5Discount 20Discount 50conversion0.0091790.0089642.4336300.581950.418053.7523840.008834141.625121
\n", "
" ], "text/plain": [ " Left Right Measure LeftMeasure RightMeasure Uplift \\\n", "0 Discount 40 Discount 50 conversion 0.010238 0.008964 14.139242 \n", "1 Discount 40 Discount 20 conversion 0.010238 0.009179 11.427508 \n", "2 Discount 10 Discount 50 conversion 0.009686 0.008964 8.054927 \n", "3 Discount 40 Discount 10 conversion 0.010238 0.009686 5.630762 \n", "4 Discount 10 Discount 20 conversion 0.009686 0.009179 5.487745 \n", "5 Discount 20 Discount 50 conversion 0.009179 0.008964 2.433630 \n", "\n", " ProbabilityUplift ProbabilityLoss Loss LeftMeasureMaxLoss \\\n", "0 0.86840 0.13160 0.866717 0.010150 \n", "1 0.82395 0.17605 1.189304 0.010117 \n", "2 0.74810 0.25190 1.915019 0.009501 \n", "3 0.67905 0.32095 2.456991 0.009987 \n", "4 0.67950 0.32050 2.564085 0.009438 \n", "5 0.58195 0.41805 3.752384 0.008834 \n", "\n", " Score \n", "0 1227.851782 \n", "1 941.569550 \n", "2 602.589061 \n", "3 382.356875 \n", "4 372.892259 \n", "5 141.625121 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m.score_pairwise()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data frame returns a row for each pair of variants and measure combination. It provides the information on:\n", "\n", "1. On average we can expect `LeftMeasure` and `RightMeasure` per trial (depending on the measure this is average conversion, average revenue, average gain, etc.)\n", "2. The probability `ProbabilityUplift` that the left variant is better than the right variant with an uplift of `Uplift`%\n", "3. The risk of going with the left variant is a maximum drop of `Loss`% with a probability of `ProbabilityLoss`, resulting in an average of `LeftMeasureMaxLoss` per trial.\n", "4. A score based on `Uplift * ProbabilityUplift`\n", "\n", "For example, the first row tells us that for 'Discount 40' we can expect a 1% and for 'Discount 50' a 0.9% conversion rate per visitor. There is 87% probability that 'Discount 40' is 14.2% better than 'Discount 50'. The risk of going with 'Discount 40' is a maximum drop of 83.4% with a probability of 12.9%, resulting in an averge loss of 0.01 conversions per trial." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }