月度归档:2012 年七月

Google Website Optimizer报告解读

google-website-optimizer  前段时间用博客的几个测试页面尝试了下使用Google Website Optimizer做A/B测试,经过这段时间收集了一些测试数据,感谢大家帮忙点击。其实之前一直想介绍Google的这个网站对比实验优化工具,完全免费而且操作简单,并且在不久的将来独立的Google Website Optimizer就会消失,这块功能会被整合到Google Analytics里面,相信很多GA的用户已经在Content模块中发现了新增的Experiments这个功能,这个就是从Google Website Optimizer衍生而来,功能和使用上面应该会有些调整和变化。

  对于Google Website Optimizer的使用其实并没有那么复杂,使用实验的创建向导结合网页的提示和帮助,普通的用户创建自己的实验完全没有问题,只是网站的千差万别可能有很多的细节方面需要注意,或者需要想一些办法让实验过程和监控结果更加有效。所以这里不介绍GWO工具使用本身,我比较感兴趣的其实是实验输出的结果报表,里面涉及对结果的区间预估,测试方案胜出的概率,提升幅度等,这些指标都用统计学的方法计算得到,相比直接比较两组观察值,比较结果更加科学,更具说服力。

  首先看下GWO输出的报告,这里用的是A/B测试,如果使用Multivariate Testing(MVT)报告会有细微的差异,但指标及统计逻辑应该是相同的:

GWO-Report

  我用GWO实现了一个最简单的A/B测试,一个原始版本和一个测试版本,输出的报告主要是比较实验过程中设定的转化率。上方的折线图显示的是原始版本和实验版本的转化率趋势,截至目前的转化情况显示在下方表格的最右侧(Conv./Visitors),从指标名称看,GWO衡量转化率用的是转化的用户数,应该使用Cookie来唯一识别用户(这里仅是在博客新建了几个简单测试页面,所以数据量较小,而转化率相比正常网站都明显偏高)。

  所以,这里重点研究了下图中表格红框内的3个指标,看它们是如何计算得到的。

估算转化率

  从图中红框1中可以看到Est. conv. rate,GWO报表对目前得到的转化率做了正负区间的预估,进而可以得到目前该版本转化率可能的置信区间(详见前一篇文章——参数估计与置信区间),这里用当前的转化率估计该版本的总体转化率p,进而可以计算得到总体标准差σ= sqrt(p(1-p)/n),比如这里原始版本的总体标准差约为0.0540,而测试版本的标准差约为0.0647,根据Zα/2×σ计算得到的上表中正负的7.6%和9.1%,所以我们就可以猜出GWO用的Zα/2大概为1.4,这个数值我在测试期间接连验证过几次,基本非常稳定,根据Z值表,这个置信区间大概的置信度在84%,也不知道为什么GWO要选择这么个置信度。

  红框1的上方我们可以看到GWO根据测试的效果将测试版本分成了三类,分别用绿色表示胜出的测试版本,黄色表示不确定的测试版本,红色表示落败的测试版本。Google仅给出了简单的说明,建议我们可以选择使用显示为绿色的版本,因为它们有很大的可能性(也只是可能)优于原始版本,而显示红色版本建议可以停止测试。具体到指标需要达到怎样的水平才会显示绿色或红色,我没有去验证,有使用经验的或者感兴趣的同学可以去观察下试试。

胜过原始版本的几率

  之前在T检验和卡方检验这篇文章介绍过可以使用卡方检验的方法来比较二项分布数据间的概率是否存在显著差异,但卡方检验只能检验差异的显著性,没法直接说明某组样本的概率有多少的几率超过另外一个样本,所以在GWO的报告里面没有使用卡方检验,而使用了单尾Z检验。当样本数量超过30的时候,我们一般会使用Z检验来替代T检验比较两组独立或配对样本间的均值差异,因为这里只是为了证明一组样本概率明显超过另外一组样本的可能性,所以使用了单尾检验。计算Z统计量的公式如下:

Z-Test

  根据表格的数据,原始方案和测试方案的转化率均值p分别为78.9%和78.0%,根据公式S2=p(1-p)分别计算两组样本的方差为0.1665和0.1716,而两组样本数n分别为57和41,进而计算得到Z=0.1068,查Z值表可得Z=0.10的概率为46.02%,Z=0.11的概率为45.62%,表中显示的Chance to Beat Orig.=45.9%,介于两者之间,使用的应该是类似的统计方法得到的值,偏差是因为中间精度处理引起的。

观察到的改进

  图中红框3的Observed improvement,这个指标需要结合红框1的转化率置信区间来看,结合条形图可以比较清晰地得出结果,看下我用Excel画的展现估算转化率的类似条形图:

GWO-est-conv-rate

  这里我用了两条辅助的虚线,如果第一个是原始版本,那么测试版本所有与原始版本转化率预估区间的差异都会用颜色展现,而观察到的改进就是着色区间的转化率差异。比如图中第二个条形的红色区间展现的相应值为-4.2%,而第三个应该是-1.6%+0.6%=-1.0%,即左侧的负值区间加上右侧的正值区间,第四个为2.9%。这样GWO报表中所有指标的计算都可以明确了 :)

  其实,大部分时候我们使用工具来完成分析或测试的过程,也不一定非要了解所有指标最底层的计算逻辑,我们只要知道这些指标的含义及作用,在分析具体问题时合理地使用这些指标就可以。而有些时候我们只能统计得到一些基础数据,所以如何使用这些基础数据得到一些有价值有说服力的分析结论就需要用到一些合适的统计学方法,这也是这篇文章去解读GWO输出报表的原因。

参数估计与置信区间

confidence-level 

  我们总是希望能够从一些样本数据中去探究数据总体的表现特征,在网站数据分析中也是如此,我们试图从最近几天的数据表现来推测目前网站的整体形势是怎么样的,有没有变好或者变差的信号,但当前几天的数据无法完全代表总体,所以这里只能使用“估计”。同时,网站的数据始终存在波动,将最近时间段的数据作为抽样样本很可能数据正好处于较低或者较高水平,所以我们用样本得到的估计值不可能是无偏差的,我们同时需要去评估这个估计值可能的变化区间。 

  参数估计(Parameter Estimation)是指用样本的统计量去估计总体参数的方法,包括点估计和区间估计。 

点估计

  点估计(Point Estimation)是用抽样得到的样本统计指标作为总体某个未知参数特征值的估计,是一种统计推断方法。 

  一般对总体参数的估计会包括两类:一种是用样本均值去估计总体均值,对应到网站数据中的数值型指标,比如网站每天的UV,我们可以用近一周的日均UV去估计目前网站每天唯一访客数量的大体情况;另外一种是用样本概率去估计总体概率,对应到网站数据中的比率型指标,比如网站的目标转化率,我们可以用近3天的转化率去预估网站当天目标转化的水平;同时我们会计算样本的标准差来说明样本均值或者概率的波动幅度的大小,从而估计总体数据的波动情况。 

  点估计还包括了使用最小二乘法对线性回归做曲线参数的拟合,以及最大似然估计的方法计算样本集分布的概率密度函数的参数。 

区间估计

  区间估计(Interval Estimation)是依据抽取的样本,根据一定的正确度与精确度的要求,估算总体的未知参数可能的取值区间。区间估计一般是在一个既定的置信水平下计算得到总体均值或者总体概率的置信区间(Confidence Interval),一般会根据样本的个数和标准差估算得到总体的标准误差,根据点估计中用样本均值或样本概率估计总体均值或总体概率,进而得出一个取值的上下临界点。 

  我们可以将样本标准差记作S,如果我们抽样获取的有n个样本,那么总体的标准差σ就可以用样本标准差估算得到: 

std_dev-to-std_err 

  从这个公式中我们可以看到大数定理的作用,当样本个数n越大时,总体指标差σ越小,样本估计值越接近总体的真实值。Excel的图表里面也提供了添加“误差线”的功能: 

Excel-error-bars 

  有了总体的标准差σ,我们就可以使用区间估计的方法计算总体参数在一定置信水平下的置信区间,置信区间(Confidence Interval)给出了一个总体参数的真实值在一定的概率下会落在怎么样的取值区间,而总体参数落在这个区间的可信程度的这个概率就是置信水平(Confidence Level)。当抽取的样本数量足够大时(一般n>30),根据“中心极限定理”,我们可以认为样本均值近似地服从正态分布。 

  根据Z统计量的计算公式: 

Z-Score 

  假如在1-α的置信水平下,则总体均值μ的置信区间为: 

Confidence-Interval 

  这里样本均值和标准差都可以根据抽样的结果计算得到,所以在既定置信水平的条件下,我们只要查Z值表(Z-Score)得到相应的Z值就可以计算得到总体均值的置信区间。对于置信水平或者叫置信度的选择,在统计学中一般认为95%的置信度的结果具有统计学意义,但其实在互联网领域数据的分析中不需要这么高的置信度,我们有时也会选择80%或者90%的置信度,相应的Z值见下表: 

置信水平1-α 对应Z值Zα/2
95% 1.96
90% 1.65
80% 1.28

  对于总体概率的估计,在具备足够样本数量的条件下,我们用样本概率p预估总体概率,而总体概率的标准差则是sqrt(p(1-p)/n),同样可以计算得到置信区间。 

  其实这篇文章的内容大部分都可以在统计学书籍或者网上Wiki里面找到,当然写到博客里面不是为了做科普,这里的每篇“数据分析方法”类目下的文章都是跟相应的网站数据分析的应用文章结合,这篇也不例外,如果你对相关内容感兴趣,请关注后续发布的文章,或者订阅我的博客吧。