LIME靠什么打败OFO共享单车?
原创:MarTechApe
即使以硅谷速度衡量,由共享单车起家、以共享滑板车打出一片天地的出行平台 Lime,发展速度仍然是 “非一般的速度”:Lime 由两位华人 —— 孙维耀(Toby Sun)和鲍周佳(Brad Bao)于 2017 年 1 月在美国创立。短短两年半时间不到,已经完成多轮融资,在2019年的 D 轮融资金额高达 3.36 亿美元,使其估值攀至 24 亿美元,稳坐独角兽俱乐部。
随着Lime不断发展壮大,标准化实验分析也越来越重要——如今平台上的骑车用户(车手)比两年前增加了数十万,现在一个错误的业务决策可能影响比之前多出数千名的车手。为了实验分析严谨以及测试灵活,Lime制定了一个实验手册供团队参考。手册不仅包括如何最好地设置和分析测试,同时提出了一套标准的方法供数据科学和分析团队使用。
这篇文章就专门介绍手册中的一部分内容——分为测试前(测试设置)、测试期间和测试后(结果)部分。
测试前(设置)
选取实验设置:在 Lime 确定要使用哪个实验设置时,需要考虑几个关键因素。
1) 我们做什么测试(即我们需要对什么对象进行随机)?
车手测试:影响车手用户体验的测试(如 UI 改变或新促销),以车手用户留存作为KPI 。这些测试通常是在车手上做随机。
部署测试:影响部署策略的测试, 如对滑板车Hotspot的更改(如果允许的情况下),是以行程开始的数量为KPI 指标的部署测试。这些测试通常在滑板车上做随机。
硬件测试:滑板车硬件或固件本身的测试,如滑板车零件的改进,一般在滑板车上做随机。
2) 我们的实验会有网络效应吗?
在我们确定以上测试后,我们接下来需要考虑这种实验是否会产生网络效应,也称为"干扰偏差"。(当实验组中用户的行为改变也影响对照组的行为时,会产生所谓的"网络效应",从而使结果产生偏差。例如,如果我们给实验组的用户提供免费的骑车体验,那么可能会有非常多的用户骑车,以至于影响到对照组将更难找到可用的滑板车,这将使对照组行为不在"正常"水平上。想要了解更多关于网络效应的内容, 查看《脸书、领英、推特的A/B测试为什么难做》。)
如果我们预计没有网络效应,那么我们可以使用 A/B 测试。但是,如果我们预计会有网络效应,则我们会使用Pre-Post 实验或Switchback测试(参见下文中的3b)。
3) 使用哪种测试?
3a) 如果预计没有网络效应,通常选择 A/B 测试。A/B 测试是一种受控测试,其中部分用户为实验组,保持原始版本,部分用户则为对照组,接受新的需要进行测试的版本。接下来需要确定实验组和对照组的大小。以下是在Lime 我们使用的指南:
3b) 当预计有网络效应时,在 Lime 我们使用两个主要测试:
下面的决策树总结了上面提到的方法:
处理重叠测试
在Lime很多的测试在同时运行,这样会由于相互影响而引入偏差。如果不同测试中实验组处理同时影响相同的用户和/或相同的指标,那么我们无法确定每个测试的影响是什么(例如,两个都旨在增加采用Lime 钱包功能的测试)。下表概述了 Lime 针对类似情况的4 个解决方案:
测试期间
检查采样偏差
不论是在Lime 或其他地方运行测试时,我们都需要确保样本中没有固有的偏差,这样通过比较实验组和对照组得出的结论才是可信的。确保没有偏差的最基本方法是运行足够长的时间,以获得足够大的样本,从而减少随机偏差。除此之外:
如果测试是预先分配的(用户在实验前已经被随机安排在实验组或控制组),那么我们可以快速做个A/A 测试,在实验组接受测试版本之前,比较两组的基本指标。一旦我们确认指标,如每个用户行程或每天的应用没有差异,我们就可以排除采样偏差的可能性。
如果测试是实时分配的(用户被实时地随机分配到实验组和控制组), A/A 测试则不太可行。但是一旦测试完成,我们会检查实验组与对照组在暴露前指标之间的相似性(类似于事后的一种 A/A 测试)。
在比较相似性时,我们还可以进行样本比率不匹配检查(即对用户的数量进行一个显著性测试),以确保实验组与对照组中样本数量本身的差异不会引入偏差。
处理窥视问题
窥视问题指的是,实验中,在达到所需的样本大小(n)之前查看测试结果。这会导致类型 1 错误(否定真正的零假设)的概率增加。最常见的处理方式是在开始测试之前计算所需的样本量大小 n,然后仅在达到该样本大小时才做出决定。但是,该解决方案的缺点是:
我们希望通过“偷看”来阻止坏事的发生或有缺陷的实验设计。如何解决这个问题呢?只要我们不暂停实验,正式报告中期结果,我们仍然可以中途去“偷看”一下结果; 我们可以只用它作为一种保障,来防止负面事情发生。
在测试开始前,我们过于依赖Power分析计算(即先验效应),例如,我们高估了我们期望看到或者从业务角度需要看到的结果。如何解决这个问题呢?我们可以降低effect size(如使用 2% 而不是 5%),这将意味着我们需要更高的样本数n , 所以不是一个可持续的方式。
p = . 08 问题很明显,这样得到差异大概是显著的,且方向大概是对的。但是我们需要再多运行一段时间的实验,收集更多的n,以获得5%的阈值。我们总是可以取一个更大的n。但同样,这似乎也不是最佳解决方案。
在 Lime,我们的解决方案是在实验开始前用Power 分析所需的样本量,确定哪一天可以达到这个量并查看结果。我们只在计划当天检查一次最终结果,并且需要 95% 的置信度才能认为结果具有统计学意义。如果我们想要在该时间之前检查结果(或要求这样做),那么我们只能在达到 99.9% 的置信水平,而不是最初的 95%的时候才说结果是统计学显著的 。这样能减少错误地否定零假设的可能性。我们认为这比使用 Bayes Factors(业内的另一种常见解决方案)更适合,因为它的计算更简单,并未我们仍在构建内部实验分析工具过程中。
测试后(结果和推出新功能或新版本)
选取统计测试
对于我们的团队来说,在何时使用哪种统计测试这个问题上保持一致非常重要。以下是我们在 Lime 使用的准则:
对于连续指标(例如,每次旅行的收入),我们比较平均值,通常可以使用双尾 t 检验。如果样本量较小,则我们使用Bootstrap t-检验。
对于比率(例如,WoW 留存),我们还建议进行 t 检验。我们使用 t 检验而不是 z 检验,因为 z 测试需要更多的 statistical power,而且在binary指标时更加高效。
上述两点假定测试指标符合正态分布,但在 Lime,我们经常处理偏斜数据(例如,每个用户的行程是左偏斜的),在这种情况下,我们使用 Wilcoxon Rank-Sum 测试,这就不需要对分布有假设。
对于分类变量,我们建议使用chi-square测试。但是在 Lime 中目前很少使用分类变量指标,因此我们尚未将该指标列入实验分析的pipeline中。
如何准确进行多个比较
在进行多个比较(例如,如果比较多个国家/地区的实验组的指标),随着同时进行测试的假设数量增加,错误地否定真实零假设的概率也将显著增加。有许多不同的方法可以纠正这个问题 - 每种方法在降低假阳性的同时也会增加假阴性 。因此需要根据业务需求,进行权衡。在 Lime,我们使用 Benjamini-Hochberg (BH) 方法来调整 p 值,它不仅易于实现,而且不如 Bonferroni 校正方法(工业中广泛使用的另一种方法)严格,该方法假定每个测试彼此独立。
运用测试结果评估更宏观的影响
人们通常看测试的影响(例如 +5% 的留存率),然后就假设Topline上也有同样的提升; 但是如果测试只涉及到一部分车手(例如,只有新车手或仅巴黎车手),这样的推断就不准确了。例如,在旧金山,Lime 车手结束行程后需要把他们的滑板车锁到自行车架。如果我们对这个锁车流程进行更改,仅在旧金山测试改进后的影响,如果行程增加了 10%,我们能说全球行程也将增加 10%吗?答案是否定的,因为只有旧金山在此测试中接受锁车方式的处理,并没有扩及全球。
准确计算Topline影响也很直观 - 用影响乘以接受实验处理的用户百分比。因此,关键的解决方案是确定此百分比(类似触发点,例如,打开钱包的人占所有打开应用的用户比例),然后创建下面的表,供股东参考全球Topline的影响。
总结
在Lime,通过在工程团队中标准化实验分析方法,我们不仅能够保持分析的一致性,而且还能构建我们的第一个实验分析平台。该平台已经纳入了测量显著性时使用的 BH 校正等原则,很快也会包括其他自动化原则,如 A/A 测试。作为一个团队,我们有更多的主题需要讨论并实现标准化(例如,找出检查网络效果的最佳方法)
想要上手企业级项目,应用标准化实验分析方法,在职场道路上飞驰吗?MarTechApe的《A/B测试企业级实战训练营》以真实商业场景中的复杂A/B测试问题为项目背景,让学员在两个月的时间里,使用百万量级原始数据,搭建完整的A/B测试流程!
在过去开办的三期《训练营》中,我们为顶尖科技公司输送数据能力强、实验经验丰富、统计基础扎实的数据人才。不论你本来是什么背景,都能通过这门课程,打开盛行“测试文化”的互联网高科技公司的大门!
以下为往期学员的战绩榜:
🔥目前,MarTechApe《A/B测试企业级实战训练营》正式火热报名第4期!🔥
每一期训练营,我们只招收20名学生。