A/B Testing in Python
Moe Lotfy, PhD
Principal Data Science Manager
Simpson's Paradox: a statistical phenomenon where certain trends between variables emerge, disappear or reverse when the population is divided into segments.
print(simp_imbalanced.groupby('Variant').mean())
Variant Conversion
A 0.80
B 0.64
print(simp_imbalanced.groupby(['Variant','Device']).mean())
Variant Device Conversion
A Phone 0.875
Tablet 0.500
B Phone 0.900
Tablet 0.575
simp_imbalanced.groupby(['Variant','Device'])\
['Device'].count()
Variant Device
A Phone 40
Tablet 10
B Phone 10
Tablet 40
simp_balanced.groupby(['Variant','Device'])\
['Device'].count()
Variant Device
A Phone 40
Tablet 10
B Phone 40
Tablet 10
print(simp_balanced.groupby('Variant').mean())
Variant Conversion
A 0.70
B 0.52
print(simp_balanced.groupby(['Variant','Device']).mean())
Variant Device Conversion
A Phone 0.750
Tablet 0.500
B Phone 0.575
Tablet 0.300
# Plot Lift in CTR vs test days
novelty.plot('date', 'CTR_lift')
plt.ylim([0, 0.09])
plt.title('Lift in CTR vs Test Duration')
plt.show()
A/B Testing in Python