一分钟搞定A/B测试数据的可视化

AB测试被广泛应用于互联网公司的优化迭代, 每年数万个AB实验被Google、Amazon、Facebook、字节跳动,阿里等主流互联网公司应用于线上进行UI内容优化、算法优化等等。

在学生进行求职时,往往很多情况下,会收到关于AB测试的48小时测试作业。所谓48小时的作业的作业,就是公司会在规定时间内发送一份csv或者excel形式的数据表格,要求学生在48小时做完后提交作业。提交内容包括,分析的code,和总结分析和建议的ppt。

这类作业对求职的学生要求是非常高的,对其是对时间的把握。48小时把一个分析最透彻并提出建议不是一件容易的事。

我培训的好多应届求职同学,都把大量的时间花在整理数据上或者作图上,导致后面分析的部分来不急做。

今天我们就来看看如何快速计算和可视化AB测试的结果。

我们先看下AB测试的原数据

故名思议,AB测试,就是分成2组,图中第二列,test就分成了test group 和 control group 2组。

举个例子,上面图表,test组看了红色页面的网站,control组看了蓝色页面的网站。

做这个实验的最终目的是,是想知道,看了红色网站的用户,购买率高,还是看了蓝色网站用户的购买率高。

其中,是否购买为图中的第三列conversion,1代表购买,0代表没有购买。

我们分析的时候,通常要看conversion rate,也就是 #该组购买人/#该组总人数,同时我们还会关注样本量即该组总人数。

所以从可视化来看应该是如下:

如果我们还需要单维度的细分分析,比如看看设备终端对购买率有没有什么影响,

我们需要这样作图。

同学要问了,这类图应该用什么工作来华呢?

我们现在先用Excel来看看这类题目该怎么解答。

(很多应届同学没有用过pivot table,这里花一些篇幅介绍一下pivot table)

1)用 pivot table

选insert -> Pivot table -> okay

  1. 每组的人数

将test 列已到columns,将conversion移到values,并点击values下方的i选择count,这样可以得出样本量。

  1. 每组的购买的人

将test 列已到columns,将conversion移到values,并点击values下方的i选择sum,这样可以得购买的人。

  1. 每组的购买率

5) 作图

如果我们把设备终端,国家也用上述方法做的话,

大致算了一下,一个维度大致花5分钟从做表到图,

如果20个维度呢?

5*20分钟 = 100分钟

万一你发现有80%的数据,没有什么进一步分析意义。

是不是觉得这个时间是浪费了?

我们现在介绍一个快速方法,就是用少于5分钟的时间,把每个维度都分析一遍,并作图。

import numpy as np
import pandas as pd
import seaborn as sns
import warnings
sns.set_style("whitegrid")
import matplotlib.pyplot as plt

df = pd.read_csv('./df.csv') 

for i in ['test','source','device','browser_language','ads_channel','browser','sex','age','country']:
    fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(18, 6))
    sns.countplot(x=i, hue='test', data=df, ax=ax[0])
    sns.barplot(x=i, y='conversion', hue='test', data=df, ci=None, ax=ax[1])
    ax[0].set_title('Count Plot of '+ i, fontsize=16)
    ax[1].set_title('Conversion Rate of ' + i, fontsize=16)
    plt.tight_layout()

是不是5分钟都不需要?我们那就能把所有维度展示出来?

这样我们就能把更多的时间花在分析上,充分的利用48小时了。

完。

你可能感兴趣的:(一分钟搞定A/B测试数据的可视化)