A/B testing

Statistical Thinking in Python (Part 2)

Justin Bois

Lecturer at the California Institute of Technology

Is your redesign effective?

ch4-1.002.png

Statistical Thinking in Python (Part 2)

Is your redesign effective?

ch4-1.003.png

Statistical Thinking in Python (Part 2)

Null hypothesis

  • The click-through rate is not affected by the redesign
Statistical Thinking in Python (Part 2)

Permutation test of clicks through

import numpy as np
# clickthrough_A, clickthrough_B: arr. of 1s and 0s

def diff_frac(data_A, data_B): frac_A = np.sum(data_A) / len(data_A) frac_B = np.sum(data_B) / len(data_B) return frac_B - frac_A
diff_frac_obs = diff_frac(clickthrough_A, clickthrough_B)
Statistical Thinking in Python (Part 2)

Permutation test of clicks through

perm_replicates = np.empty(10000)
for i in range(10000):
     perm_replicates[i] = permutation_replicate(
                clickthrough_A, clickthrough_B, diff_frac)

p_value = np.sum(perm_replicates >= diff_frac_obs) / 10000
p_value
0.016
Statistical Thinking in Python (Part 2)

A/B test

  • Used by organizations to see if a strategy change gives a better result
Statistical Thinking in Python (Part 2)

Null hypothesis of an A/B test

  • The test statistic is impervious to the change
Statistical Thinking in Python (Part 2)

Let's practice!

Statistical Thinking in Python (Part 2)

Preparing Video For Download...