• A/B测试实例


    说了那么多假设检验的理论,现在来让我们上手操作一下。

    这里我自己编造了一个A/B测试的例子:

    某公司原来的购买转化率是30%,现在想通过把其网页上的”购买“按钮加大一倍,使购买转化率提升到33%。

    可以看到这里的对比指标是转化率,因此这里适用两独立样本比率检验。

    原假设:对照组的购买转化率与试验组的购买转化率无显著差异

    备择假设:对照组的购买转化率与试验组的购买转化率有显著差异

    在测试之前,我们需要先确定样本量。假设我想要达到的功效为80%,显著性水平为5%,通过statsmodels计算样本量的步骤如下:

    首先计算出我们想要达到的效应量,即购买转化率提升到33%对应的效应量是多少,然后再通过效应量,功效,显著性水平计算出每组所需的样本量。

    from statsmodels.stats.proportion import proportion_effectsize
    from statsmodels.stats.power import zt_ind_solve_power
    
    effect_size=proportion_effectsize(prop1=0.3, prop2=0.33, method='normal')
    sample_size=zt_ind_solve_power(effect_size=effect_size, nobs1=None, alpha=0.05, power=0.8, ratio=1.0, alternative='two-sided')

    这里解释一下,zt_ind_solve_power函数里的参数ratio=1表示试验组和对照组的样本量相同,alternative='two-sided'表示是双尾检验。

    计算结果是:每组样本大约需要3762个观测值。

    接下去进行A/B测试。假设两种方案各有5000个用户参与测试,原方案有1545个用户完成转化,优化方案有1670个用户完成转化。用statsmodels计算p值:

    from statsmodels.stats.proportion import proportions_ztest
    z_score, p_value=proportions_ztest(count=[1545,1670], nobs=[5000,5000], value=None, alternative='two-sided')

    proportions_ztest函数里的count表示对照组和试验组完成转化的人数,nobs表示各组样本的观测人数。

    计算出的p值是:0.007。p<=α,结果是显著的。

    计算置信区间:

    p1=1545/5000
    p2=1670/5000
    n1=n2=5000
    p=(n1*p1+n2*p2)/(n1+n2)
    
    from scipy.stats import norm
    z_critical=norm.ppf(0.975)  #计算临界值
    
    margin=z_critical*(p*(1-p)*(1/n1+1/n2))**0.5  #计算边际误差
    
    lower=p-margin #置信区间下限
    upper=p+margin #置信区间上限

    置信区间是(0.3, 0.34)。

    可以看到,试验组的购买转化率与对照组的购买转化率之间有显著差异。

    接下去完成假设检验报告:

    1, 描述统计

    对照组样本:5000个用户,其中有1545人完成转化。p1=0.309。

    试验组样本:5000个用户,其中有1670人完成转化。p2=0.334。

    2, 推断统计

    (1)假设检验

    原假设:试验组的购买转化率p2-对照组的购买转化率p1=0

    备择假设:试验组的购买转化率p2-对照组的购买转化率p1≠0

    检验类型:两独立样本比率检验

    样本量:对照组5000,试验组5000

    抽样分布类型:p1-p2近似正态分布

    检验方向:双尾

    显著性水平α:0.05

    检验统计量的值:-2.68

    p值:0.007

    结论:p<=α,拒绝原假设,试验组的购买转化率与对照组的购买转化率之间有显著差异。

    (2)置信区间

    置信度:0.95

    置信度对应的检验统计量的值:-1.96, 1.96

    置信区间:(0.3, 0.34)

    3,效应量

    效应量的类型:Cohen's h

    效应量的值:0.086

    对效应量的解释:效应量低于0.2,属于小效应量,虽然试验组的购买转化率与对照组的购买转化率之间的差异具有显著性,但差异不大。

    最终结论:试验组的购买转化率与对照组的购买转化率之间有显著差异,虽然差异不大,但达到优化目标。

  • 相关阅读:
    JVM内存管理概述与android内存泄露分析
    android中activity.this跟getApplicationContext的区别
    Android广播机制概述
    android中shape属性大全
    android studio视频教学
    四十六、android中的Bitmap
    访问限制:由于对必需的库 C:/Program Files/Java/jre6/lib/rt.jar 具有一定限制,因此无法访问类型。。
    优质博客内容链接
    java日期格式大全 format SimpleDateFormat
    java中equals与==的区别
  • 原文地址:https://www.cnblogs.com/HuZihu/p/12054281.html
Copyright © 2020-2023  润新知