精华内容
下载资源
问答
  • A/B测试与灰度发布

    万次阅读 2015-01-01 10:37:35
    A/B测试与灰度发布的理论 产品是多维度的,设计体验、交互体验、系统质量、运营支持等等, 测试的目的是为了系统最终的交付,一套各方面都足够好的系统,而不是文档上定义的系统,系统是需要不断进化的。 测试的...

    A/B测试与灰度发布的理论

    产品是多维度的,设计体验、交互体验、系统质量、运营支持等等,

    测试的目的是为了系统最终的交付,一套各方面都足够好的系统,而不是文档上定义的系统,系统是需要不断进化的。

    测试的质疑贯穿产品的设计到编码到最终的运营过程,并最终促使产品的改善,周而复始。

    符合互联网思维敏捷的本质。

     

    1、A/B测试与灰度发布相关的一些术语

    1.1 桶测试(Bucket Testing):这个没有什么地方给出明确的定义,但是通常来说是国外用于测试游泳池是否存在漏水行为的一种比较测试。即将一桶水放到泳池中,分别标明内外水位,放置一段时间后,如果外部水位明显下降(超过XXX英寸),则证明水池漏水。这个和软件测试没有什么直接关系,但是他是一种两个方案之间的对比性测试,用于识别缺陷。

    1.2 多变量测试(Multivariate Testing):这个使用市场营销的一个术语,通常用于在多个变量的复杂环境下,对营销方案效果的比较技术。

    1.3 A/B测试(A/B Testing):Wikipedia的定义,“是Web设计(通常指用户体验)中用于区分两种网页设计对收益最大化目标(如点击率)效果支撑程度的一种试验手段”。主要用于比较两种设计的优劣程度。桶测试(Bucket Test)、多变量测试(Multivariate Testing)是A/B测试的变体,因为可能涉及到多种场景的比较。A/B测试还用于市场营销渠道的比较,这和定义是一致的,因为网页就是一种营销渠道。

    1.4 灰度交付:“灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。”

     

    2、A/B测试和灰度发布和传统的测试的不同点

    2.1 可以有多个现成的产品来,实实在在的去测试(桶测试)

    2.2 A/B测试是支持多变量测试的一种方式

    2.3 A/B测试时一套系统,是灰度发布的一种实现方式

    到此为止,测试与运维已经集成到一个过程当中了

     

    3、A/B测试与灰度发布的运用

    3.1 推荐系统之间不同算法的比较,不同变量的比较

    3.2 设计方案中不同方案的比较

    3.3 设计调整,方案调整

    3.4 故障控制

     

    如果你系统需要优化一些你自己无法预测和控制的领域的时候。

    试试A/B测试吧,有利于控制未来的风险
     

    数据是优化系统的重要依据 ,想要在哪方面做优化,就在哪方面积累数据。

    后面再写点A/B测试与灰度发布系统实战

     

    我的微博 黄舒颖-人工智能爱好者

    GITHUB shuyinghuang 

    展开全文
  • 软件测试进阶(一)A/B测试终极指南

    万次阅读 2016-07-06 11:32:56
    然而,A/B测试与SEO不同的是,人们都不太知道如何进行网站分析和可用性分析。他们并不完全明白它是什么或如何更有效的使用它。本文将为你提供有史以来最好的A/B测试教程。什么是A/B测试? A/B测试的核心就是:确定两...

    A/B测试终极指南

          A/B测试不是一个时髦名词。现在很多有经验的营销和设计工作者用它来获得访客行为信息,来提高转换率。然而,A/B测试与SEO不同的是,人们都不太知道如何进行网站分析和可用性分析。他们并不完全明白它是什么或如何更有效的使用它。本文将为你提供有史以来最好的A/B测试教程。

    什么是A/B测试?

          A/B测试的核心就是:确定两个元素或版本(A和B)哪个版本更好,你需要同时实验两个版本。最后,选择最好的版本使用。

          网络上的A/B测试,即你设计的页面有两个版本(A和B),A为现行的设计(称为控制),B是新的设计。比较这两个版本之间你所关心的数据(转化率,业绩,跳出率等)。最后,您选择效果最好的版本。

     

    A/B测试的应用举例

     

          用一个电商App的场景作为例子。电商App集成了我们的SDK之后,就可以在AppAdhocOptimizer控制台创建很多“测试版本”,每个测试版本可以尝试不同的UI设计和文案。客户可以在控制台管理不同测试版本的试验运行状态、流量分配以及查看详细的数据报告,并选择发布效果更好的测试版本。

     

          拿这个例子来说,假如这个App有100万在线用户,通过控制台可以控制这些用户看到不同的测试版本。假如其中50万用户看到左边版本,产生了10万购买;另外50万用户看到右边版本,产生了40万购买。这个试验数据说明右边版本产生的转化率更高,可以通过控制台将这个版本推广到所有100万用户。

    测试哪些东西?

          你要选择什么去测试取决于你的目标。例如,如果你的目标是增加顾客数量,那么您可能测试下列内容:注册表单数量,字段类型要求,隐私政策等。在这种情况下A/B测试的目标是要弄清楚什么阻止了游客注册。需要填写的表单的数量?用户的隐私?还是该网站做了让游客不信任的事情?所有这些问题都可以通过一个个A/B测试获得答案。

          每一个A/B测试内容都是独一无二的,单通常测试一下这些内容:

         行动按钮的措辞,大小,颜色和位置,

         标题或产品说明,

         表单的数量和字段类型,

         网站的布局和风格,

         产品定价和促销活动,

         着陆和产品页面上的图片,

         页面上文字的长度(少Vs多)。

          一旦你决定要测试什么,下一步当然是要选择一个合适的测试工具。如果你想要一个基础的免费工具,可以使用Google Website Optimizer。如果你想要功能更加强大的工具,可以使用Visual Website Optimizer 。其他的一些选择都是可以的,建立试验在所有工具中都很相似,所以我们只需讨论一种即可。

    你可以通过两种方法建立A/B测试:

           在页面测试加载前替换元素

          如果你测试的是页面上的单个元素,如注册按钮,然后需要在测试工具中设置按钮。当测试时,在A/B工具将在页面给用户前随机替换按钮。

    重定向到另一页面

          如果你想通过A/B测试整个页面,比如说,一个绿色的主题和一个红色主题,那么你就需要创建和上传新的页面。例如,如果您的主页是 http://www.example.com/index.html,那么你需要创建另外一个页面 http://www.example.com/index1.html。当测试运行时,您的测试工具将一部分访问者重定向到第二个网址。

         一旦您使用了上面的两种变换方法,下一步是建立您的转换目标。通常,你会得到一个JavaScript代码,您可以复制并粘贴到一个需要游客到达的目标网页。例如,如果您有     一个电子商务网站,你正在测试的“立即购买“按钮的颜色,然后您的转换目标将是购买成功后的“谢谢您“页面。

         在转换事件发生的同时,在A/B测试工具,记录了哪种页面显示给了访问者。经过足够数量的游客,您可以确定哪个页面带来了最多的转化!建立和运行的A/B测试,其实很简单。

    该做什么和不该做什么

         虽然A/B测试是超级简单的概念,但是请记住,以下这些都只是我自己的经验。

    注意事项

         不要分开你的测试情况。始终两个版本同时进行测试。如果您第一星期测试第一版本,第二星期测试第二个版本,你就错了。有可能B版本带来的流量更糟糕,但是带来了更好的业绩,因为两个版本之间的流量始终存在不一样。

          不要结束得太早。有一个概念叫做“统计信心“ ,无论你的测试结果明显的。如果你只有少数转换或游客,它都无法确定最终的结果。大多数A/B测试工具都有报告统计,但如果你是手动测试,你可以使用 在线计算器。

         不要让常客惊讶。如果你正在测试网站的一部分。包括新访客和常客,不要使他们觉得震惊。尤其不要因为哪些可能不会最终实施变化。

         不要让你的直觉推翻了测试结果。在A/B测试的结果往往是令人惊讶的或直观的。在一个绿色为主题的网站,一个明显的红色按钮有可能成为赢家。即使红色按钮不容易吸引注意。您要测试的目标是一个更好的转换率,而不是美学,所以在得到测试借过钱不要拒绝任何尝试。

    需要做的

         知道运行测试多久。结束太早,可能会使你花了时间但是没有得到有意义的结果。结束太晚也不好,因为效果不佳的页面可能影响你的转化和业绩。使用一个计算器,来确定测试多久以后来结束它。

         将相同的页面呈献给同一个访客。您的工具应该有一个记忆访问者已经看到的页面的功能。这样可以防止向同一用户显示一不同的价格或不同的促销优惠。

         让您的A/B测试在整个网站保持一致。如果你正在测试的登录按钮在多个地点出现,然后一个访问者应在所有的地方看到同样的变化。在页面1显示一个样子,在页面2显示两外一个样子,会使试验结果被干扰。

        做很多的A/B测试。让我们面对现实吧:你的第一个A/B测试可能会无效。但是不要绝望。一个A/B测试只能有三个结果:没有结果,不好的结果和好的结果。优化转换率的关键是要做大量的A/B测试,把所有的好的结果拼接起来,最终推动业绩。

    经典A/B测试案例研究

         这里有一些如何进行A/B测试的案例研究。

         Writing Decisions: Headline Tests on the Highrise Sign-Up Page 37Signals

          测试他们的价格页面的标题。最终发现,“30-Day Free Trial on All Accounts“比原来的“Start a Highrise Account.“多产生30 %以上的订单。

     

     

          “You Should Follow Me on Twitter Here”(Dustin Curtis)

          这是一个用来测试召唤用户在Twitter上关注自己的试验。Dustin发现提示文字是“You should follow me on Twitter here”的效果是“I’m on Twitter.”173%

     

          Human Photos Double Conversion Rates

          从两个不同的A/B测试将在网站上增加转换率的人的照片:一个令人令人惊讶的结论,A/B测试两张图片,将真人照片放在网站上会获得一倍的转化。研究说明,我们潜意识被照片吸引了。

          Google Website Optimizer Case Study: Daily Burn, 20%+ Improvement (Tim Ferriss)

          一个将用户选择减少的变化使转化提高了20%,最终的版本在细节和文字上更易吸引目光。

     

         Two Magical Words Increased Conversion Rate by 28% “It’s free”

          这个单词增加了注册按钮点击次数的28%, 测试结果表明,在行动召唤上一些很小的变化会带来令人惊讶的结果。

     

          Changing the Sign-Up Button from Green to Red

          依靠A/B测试, CareLogger把注册按钮从绿色修改为红色增加了34%转换率!

     

          Single page vs. multi-step checkout

        如果你有一个在线商店,很常见的就是支付流程。这个A / B测试发现,多个支付流程比单个支付流程完成的销售更好。

     

          “Mad Libs”style form increases conversion 25-40%

          打败传统的智慧,此A/B测试发现一段风格形式输入字段比传统形式的布局更好。

     

          Complete redesign of product page increased sales by 20%

          一个软件产品的公司重新设计他们的产品页 给它一个现代的外观和增加信任模块。最终结果:他们成功地增加20 %的总销售额。本案例研究证明了设计对销售的影响。

     

          Marketing Experiments response capture case study – triple digit increase in conversions

          通过优化邮件地址获取提高了258 %。重点是消除所有的干扰,并要求游客只需提供电子邮件地址。使用亚马逊礼品卡让他/她的完成个人资料。

    A/B测试工具

          有许多侧重点,价位和功能不同的A/B测试工具,这里是一些:

          Google Website Optimizer 搜索巨头提供的免费A/B测试工具。一个很好的入门级工具,但是没有一些先进的功能。

          A/Bingo and Vanity 基于Ruby on Rails开发的服务器组件。需要编程和代码集成。

          Visual Website Optimizer 一个易于使用的A/B测试工具,包含一些先进的功能,如所见即所得的编辑器,单击地图,访问者分割和标签等。

          Unbounce and Performable 集成着陆页设计的A/B测试工具。

          Vertster, SiteSpect, Webtrends Optimize and Omniture’s Test&Target  企业级测试工具。

          一些深入研究的A/B测试资料

          如果你已经读到这里,那么A / B测试大概已经激起你的兴趣。在这里,有一些非常好的A/B测试资源。

          寻找你下一个A/B测试的灵感   Which Test Won?  一个猜测那种情况会最终胜利的游戏。

          101 A/B Testing Tips  大量的A/B测试技巧和方法。

          ABtests.com 一个可以分享和阅读A/B测试结果的地方。

          A/B Ideafox 搜索引擎的A / B和多变量的案例研究。

    美文美图

     

    展开全文
  • 【统计学】详解 A/B 测试

    万次阅读 2018-08-15 11:22:02
    A / B测试 目录 什么是A/B 测试 A/B测试的工作原理 为什么要进行A/B测试A/B测试过程 A/B测试SEO A/B测试实例   什么是A / B测试A / B测试(也称为分割测试或桶测试)是一种将网页或应用程序的两个...

    A / B测试

    目录

    • 什么是A/B 测试
    • A/B测试的工作原理
    • 为什么要进行A/B测试?
    • A/B测试过程
    • A/B测试SEO
    • A/B测试实例

     

    什么是A / B测试?

    A / B测试(也称为分割测试桶测试)是一种将网页或应用程序的两个版本相互比较以确定哪个版本的性能更好的方法。AB测试本质上是一个实验,其中页面的两个或多个变体随机显示给用户,并且统计分析用于确定哪个变体对于给定的转换目标更好地执行。

    ABæµè¯

    运行直接将变体与当前体验进行比较的AB测试可让您提出有关网站或应用程序更改的重点问题,然后收集有关该更改影响的数据。

    测试可以消除网站优化中的猜测,并实现数据通知决策,将业务对话从“我们思考”转变为“我们知道”。通过衡量更改对指标的影响,您可以确保每次更改都会产生积极的结果。

     

    A / B测试的工作原理

    在A / B测试中,您可以访问网页或应用程序屏幕并对其进行修改以创建同一页面的第二个版本。此更改可以像单个标题或按钮一样简单,也可以是页面的完整重新设计。然后,一半的流量显示页面的原始版本(称为控件),一半显示页面的修改版本(变体)。

    AB-测试-optimizely -2-

    当访问者为控制或变体提供服务时,他们对每种体验的参与度将在分析仪表板中进行测量和收集,并通过统计引擎进行分析。然后,您可以确定更改体验是否对访问者行为产生积极,消极或无影响。

    控制变化-图表-3-

     

    为什么要进行A / B测试 ?

    A / B测试允许个人,团队和公司在收集结果数据时对其用户体验进行仔细更改。这允许他们构建假设,并更好地了解为什么他们的经历中的某些元素会影响用户行为。换句话说,他们可能被证明是错误的 - 他们对特定目标的最佳体验的看法可以通过A / B测试证明是错误的。

    不仅仅是回答一次性问题或解决分歧,AB测试可以持续使用,以不断改善给定的体验,改善单一目标,如转换率随着时间的推移。

    例如,B2B技术公司可能希望从活动登陆页面提高其销售线索质量和数量。为了实现这一目标,团队将尝试对标题,可视图像,表单字段,号召性用语和页面的整体布局进行A / B测试更改。

    一次测试一个变化有助于他们确定哪些变化对访问者的行为产生了影响,哪些变化没有影响访问者的行为。随着时间的推移,他们可以结合实验中多次获胜变化的效果来展示新体验相对于旧体验的可测量的改进。

    A / B测试结果随着时间的推移

    这种引入用户体验变化的方法还允许针对期望的结果优化体验,并且可以使营销活动中的关键步骤更有效。

    通过测试广告文案,营销人员可以了解哪个版本吸引了更多点击次数。通过测试后续登录页面,他们可以了解哪种布局最能将访问者转化为客户。如果每个步骤的元素尽可能有效地工作以获得新客户,则实际上可以减少营销活动的总体支出。

    A / B测试转换漏斗

    产品开发人员和设计人员也可以使用A / B测试来演示新功能或用户体验变化的影响。只要目标明确定义并且您有明确的假设,产品入职,用户参与,模态和产品体验都可以通过A / B测试进行优化。

     

    A / B测试过程

    以下是可用于开始运行测试的A / B测试框架:

    • 收集数据:您的分析通常可以深入了解您可以开始优化的位置。它有助于从您的网站或应用的高流量区域开始,因为这将允许您更快地收集数据。寻找可以改进的低转换率或高丢弃率的页面。

    • 确定目标:您的转化目标是用于确定变体是否比原始版本更成功的指标。目标可以是点击按钮或链接到产品购买和电子邮件注册。

    • 生成假设:一旦确定了目标,就可以开始生成A / B测试想法和假设,以便您认为它们会优于当前版本。获得想法列表后,根据预期影响和实施难度确定优先级。

    • 创建变体:使用您的A / B测试软件(如Optimizely),对您网站的元素或移动应用体验进行所需的更改。这可能是更改按钮的颜色,交换页面上元素的顺序,隐藏导航元素或完全自定义的内容。许多领先的A / B测试工具都有一个可视化编辑器,可以轻松完成这些更改。确保对您的实验进行质量检查,以确保其按预期工作。

    • 运行实验:启动实验并等待访问者参与!此时,您网站或应用的访问者将被随机分配到您的体验控制或变体。测量,计算和比较他们与每种体验的相互作用,以确定每种体验的表现。

    • 分析结果:实验完成后,就可以分析结果了。您的A / B测试软件将显示实验数据,并显示两个版本的页面执行方式之间的差异,以及是否存在统计上显着的差异。

    如果您的变体是赢家,恭喜!看看您是否可以在网站的其他页面上应用实验中的知识,并继续迭代实验以改善结果。如果您的实验产生否定结果或没有结果,请不要担心。将实验用作学习经验并生成可以测试的新假设。

    A / B测试过程

    无论您的实验结果如何,请利用您的经验告知未来的测试,并不断迭代优化您的应用或网站的体验。

     

    A / B测试和SEO

    Google 允许鼓励进行 A / B测试,并表示执行A / B或多变量测试不会对您网站的搜索排名造成内在风险。但是,有可能通过滥用A / B测试工具来隐藏您的搜索排名,例如隐藏真实内容。谷歌已经阐明了一些最佳做法,以确保不会发生这种情况:

    • 没有伪装 - 伪装是向搜索引擎显示与典型访问者不同的内容的做法。伪装可能会导致您的网站降级甚至从搜索结果中删除。为防止隐藏真实内容,请勿滥用访客细分,以根据用户代理或IP地址向Googlebot显示不同的内容。
    • 使用rel =“canonical” - 如果运行包含多个URL的拆分测试,则应使用rel =“canonical”属性将变体指向页面的原始版本。这样做有助于防止Googlebot被同一页面的多个版本混淆。
    • 使用302重定向而不是301s - 如果您运行将原始URL重定向到变体URL的测试,请使用302(临时)重定向与301(永久)重定向。这告诉Google等搜索引擎重定向是临时的,并且他们应该保留原始网址的索引而不是测试网址。
    • 只在必要时运行实验 - 运行测试的时间超过必要时间,特别是如果您将页面的一个变体提供给大部分用户,可以看作是欺骗搜索引擎的尝试。Google建议您在测试结束后立即更新您的网站并删除网站上的所有测试版本,并避免不必要地长时间运行测试。

    有关AB测试和SEO的更多信息,请参阅我们的知识库文章,了解A / B测试如何影响SEO

    一家媒体公司可能希望增加读者人数,增加读者在其网站上花费的时间,并通过社交分享来扩大他们的文章。为了实现这些目标,他们可能会测试以下变化:

    • 电子邮件注册模式
    • 推荐内容
    • 社交分享按钮

    旅游公司可能希望增加在其网站或移动应用程序上完成的成功预订的数量,或者可能希望增加辅助购买的收入。要改进这些指标,他们可能会测试以下变体:

    • 主页搜索模式
    • 搜索结果页面
    • 辅助产品介绍

    电子商务公司可能希望增加已完成的结帐数量,平均订单价值或增加假日销售额。要做到这一点,他们可能会进行A / B测试:

    • 主页促销
    • 导航元素
    • 结帐渠道组件

    一家技术公司可能希望为其销售团队增加高质量潜在客户的数量,增加免费试用用户的数量,或吸引特定类型的买家。他们可能会测试:

     

    A / B测试实例

    这些A / B测试示例显示了世界上最具创新性的公司通过Optimizely进行A / B测试所看到的结果类型:

    Discovery A / B对其视频播放器的组件进行了测试,以便与他们的电视节目“超级粉丝”进行互动。结果?视频互动率增加6%。

     

    ComScore A / B测试了徽标和推荐书,以增加产品登录页面上的社交证明,并增加69%的潜在客户。

     

    Secret Escapes测试了他们的移动注册页面的变化,使转换率翻倍并增加了终身价值。

     

     

    原文:https://www.optimizely.com/optimization-glossary/ab-testing/

     

     

    展开全文
  • 为什么要使用贝叶斯A / B测试代替传统方法 A / B测试是当今技术,市场营销和研究中最有用的统计技术之一。它的价值在于A / B测试可让您确定因果关系,而大多数分析仅揭示相关性(即古老的格言“相关性而非因果关系”...

    为什么要使用贝叶斯A / B测试代替传统方法

    A / B测试是当今技术,市场营销和研究中最有用的统计技术之一。它的价值在于A / B测试可让您确定因果关系,而大多数分析仅揭示相关性(即古老的格言“相关性而非因果关系”)。尽管A / B测试功能强大且流行程度很高,但绝大多数A/B测试都遵循一种基于频率主义统计学派的t测试的单一方法。本文将介绍A/B测试的另一种方法。这种替代方法使用了贝叶斯统计学派,本文将演示这种方法如何比传统的、频繁的方法返回更直观的结果。

    传统的、频繁主义的方法使用假设作为A/B测试的框架。零假设通常是现状,例如A的平均值等于B的平均值,和备择假设测试是否有差异,如均值大意味着的信心置信度,例如5%,选择和实验可以得出两个结论

    1. 我们拒绝原假设并接受具有95%置信度的替代假设,例如A的平均值大于B的平均值,或者
    2. 我们不会以95%的置信度拒绝零假设,即我们无法对A和B的均数差异做出任何结论。

    这种语言不是我们在业务中倾向于使用的语言,对于不太熟悉A / B测试的人来说可能很难理解。特别是第二个结论并没有提供太多的见解;花时间和金钱进行测试后,您只能得出结论:那就是不可能得出任何结论。

    贝叶斯方法侧重于概率。如果检验上述相同的例子,零假设是A的均值等于B的均值,贝叶斯方法计算的是估计的均值差以及一个比另一个大的概率——而不仅仅是均值差是否为0。在我看来,贝叶斯方法优于频率主义方法,因为它能以特定的概率有效地接受和拒绝零假设。这种方法可以提出更有用的建议。两个示例结论(类似于上面频率主义结论)是:

    1. 均值A大于均值B的概率是99%这个例子拒绝了原假设
    2. 也就是说A有65%的概率大于B这个例子没有拒绝原假设

    这种语言提供了一种结论有多可能的感觉,以便决策者有权选择他们自己的风险容忍度,它避免了零假设不能被拒绝和没有得出结论的情况。

    更为有用的是它计算出均值之间的估计差。 总之,这意味着来自贝叶斯测试的可能结论是“平均值A估计比平均值B大0.8个单位,并且平均值A大于平均值B的可能性为83%”。 另外,贝叶斯方法还可以比较A和B的方差,并可以管理异常离群值。

    贝叶斯方法的缺点是,支撑它的数学可能更具挑战性。很好的理解贝叶斯统计和马尔可夫链蒙特卡罗抽样是有帮助的,但不是完全关键。

    以下各节详细介绍了如何使用贝叶斯方法进行A / B测试和R中的代码示例的示例。

    A/B测试数据概述

    为了演示贝叶斯方法,我将使用我在2020年初进行的一系列调查中的数据。调查包括13个问题,涉及受访者对抗击冠状病毒措施的意见(4个问题)、受访者对政府应对冠状病毒的认可(3个问题)和一般家庭活动问题(5个问题)3个主题。完整的问题列表包含在这里。在这个例子中,我们将关注有数字答案的问题,比如“你每天花多少小时和你的家人或室友在一起?”

    调查被设计成包括6个相似但截然不同的调查版本。进行这些略有不同的调查的目的是为了A/B测试它们之间的差异是否会导致统计上不同的结果。每个调查之间的区别要么是问题的顺序,要么是问题的措辞方式是积极的或消极的。一个肯定词和否定词的例子是:

    • 正面:你认为政府建议的社交距离在今天之后还能持续多久?
    • 否定:你认为政府规定的社交距离在今天之后还会持续多久?

    下表显示了不同调查版本的摘要。总共记录了291份调查答复,每个调查版本有45-47份答复。这意味着调查1的结果可以与调查3和调查5进行比较,因为顺序不同,而与调查2的措辞不同。

    贝叶斯分析

    下面的分析主要基于Kruschke 2012年的研究论文《贝叶斯估计取代t检验》和R包“BEST”。代码可以在我的Github上找到。

    与任何贝叶斯估计一样,这种贝叶斯技术利用一组先验,这些先验通过数据中的证据更新来返回一组后验分布。下面的分析使用了t分布和根据Kruschke - 2012的马尔可夫链蒙特卡罗算法,以及对后验分布影响有限的不承诺先验。不承诺先验对后验分布的影响很小,这对本研究很有用,因为没有基线或先验信念,本研究可以轻松比较。这种方法对于管理异常值也很有效,并且只需要针对一个错误的数据点进行调整。

    如果前一段有点复杂,不要担心。您仍然可以执行下面的步骤,得到一个易于解释的输出。要了解更多信息,请阅读Kruschke的论文。

    步骤1:载入包和读取数据

    第一步是安装所需的软件包。 我们将使用使用JAGS包的BEST包。 在运行BEST之前,请先下载JAGS。 下一步安装BEST。 完成所有步骤后,加载软件包。

    还加载数据并进行分析。 我们使用的是Survey_data_v2.csv,在代码中也有包含

    #Load the library used for Bayesian style t Test
    library(rjags)
    source("BEST.R")
    library(plotly)
    
    #Load Data
    DataFile = "survey_data_v2.csv"
    df = read.csv(DataFile, header=T)
    
    #Numerical questions for analysis
    NQ1 = "How.many.hours.a.day.do.you.typically.spend.on.your.job."
    NQ2 = "How.many.hours.a.day.do.you.typically.spend.preparing.meals."
    NQ3 = "How.many.hours.a.week.do.you.spend.on.housework..outside.of.cooking.meals."
    NQ4 = "How.many.hours.a.day.do.you.spend.on.electronics.for.leisure."
    NQ5 = "How.many.hours.a.day.are.you.spending.with.your.family.members.or.roommates."
    NQ6 = "How.many.months.will.it.take.for.the.economy.to.recover."
    
    #Manage for outliers in Question 6 (based on survey instructions)
    mask = df[NQ6] > 60
    df[mask,NQ6] = 60
    

    步骤2:创建用于贝叶斯分析的函数

    接下来,我们要创建一个函数,该函数将允许我们选择要比较的调查版本和要比较的调查问题。 该函数运行马尔可夫链蒙特卡洛采样方法,该方法构造了我们测试的后验分布,即一个均值大于另一个均值的概率以及均值的估计差。

    #Create function to run Bayesian Analysis
    Bayes_ABTest = function(Survey_Number_A, Survey_Number_B, question){
      
      #Filtering between survey responses
      mask_A = df['Survey'] == Survey_Number_A
      mask_B = df['Survey'] == Survey_Number_B
    
      #Create data vectors  
      A = df[mask_A,question]
      B = df[mask_B,question]
    
      # Run the Bayesian analysis:
      mcmcChain = BESTmcmc( A , B ) 
    
      # Plot the results of the Bayesian analysis:
      postInfo = BESTplot( A , B , mcmcChain , pairsPlot=TRUE )
      
      # Show detailed summary info on console:
      show( postInfo ) 
    }
    

    步骤3:运行test

    最后,选择两组数据进行比较。在本例中,我们将使用调查版本1和2,并比较问题2。改变函数变量以测试不同的调查和问题。

    #Run Analysis
    Survey_A = 1
    Survey_B = 2
    Question = NQ2
    
    Bayes_ABTest(Survey_A, Survey_B, Question)
    

    第四步:解释输出

    运行上述代码后,弹出窗口将显示如下输出。主要是100,000个可信的参数值组合的直方图,可以代表后验分布。

    A/B测试最重要的输出是显示均值差异的右中分布。在我们的例子中,它表明平均值A比平均值B大0.214个单位,平均值A比平均值B大的概率为82.9%。这个结果是A/B检验的主要结论。注意,传统的t检验只会返回在95%置信水平下不能拒绝零假设的结果。

    另一个输出显示了解释数据的其他有用信息。右上方两个以y为轴的图显示了测试数据的实际分布情况。其他数字显示后验分布。左边的5个直方图显示了与前面的5个直方图相对应的单个后验。右下角的图表显示了A组和B组之间的比较。

    总结要点

    与传统的频繁访问方法相比,贝叶斯A / B测试方法具有三个主要优点:

    • 一组更直观的结果,例如 平均值A大于平均值B的机会为82.9%。
    • 包括A和B之间差异的大小,例如 平均值A估计比平均值B大0.214个单位。
    • 不受不拒绝原假设的结果的约束。

    这些好处结合在一起,提供了更有用,更直观的建议,使决策者可以更好地了解测试结果并选择自己的风险等级。

    引用

    [1] Kruschke, John K. “Bayesian Estimation Supersedes the t Test.” Journal of Experimental Psychology . Vol. 142, no. 3, 2012, pg. 573–603, accessed 03 January 2021, https://cran.r-project.org/web/packages/BEST/vignettes/BEST.pdf

    [2] Gallo, Amy 2017. A Refresher on A/B Testing , Harvard Business Review, accessed 03 January 2021, https://hbr.org/2017/06/a-refresher-on-ab-testing

    [3] Hussain, Noor Zainab and Sangameswaran, S. 2018, Global advertising expenditure to grow 4.5 percent in 2018: Zenith , Reuters, accessed 03 January 2021, https://www.reuters.com/article/us-advertising-forecast/global-advertising-expenditure-to-grow-4–5-percent-in-2018-zenith-idUSKCN1M30XT

    [4] Lavorini, Vincenzo, Bayesian A/B Testing with Python: the easy guide, Towards Data Science, accessed 03 January 2021,https://towardsdatascience.com/bayesian-a-b-testing-with-python-the-easy-guide-d638f89e0b8a

    [5] Mazareanu, E. 2019, Market research in U.S. — Statistics & Facts , Statista, accessed 03 January 2021, https://www.statista.com/topics/4974/market-research-in-us/.

    [6] NSS 2016. Bayesian Statistics explained to Beginners in Simple English , Analytics Vidhya, accessed 03 January 2021, https://www.analyticsvidhya.com/blog/2016/06/bayesian-statistics-beginners-simple-english/

    作者:Robbie Geoghegan

    本文代码地址:https://github.com/RobbieGeoghegan/bayesian_abtesting

    deephub翻译组

    展开全文
  • AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时...
  • 网站测试中的AB测试(A/B Test)方法

    千次阅读 2015-01-14 17:55:50
    A / B测试,即你设计的页面有两个版本(A和B),A为现行的设计, B是新的设计。比较这两个版本之间你所关心的数据(转化率,业绩,跳出率等) ,最后选择效果最好的版本。 A / B测试不是一个时髦名词。现在很多有经验...
  • A/B测试五大注意事项

    千次阅读 2016-07-14 21:45:07
    随着Growth Hacking在中国的传播和兴起,作为增长黑客必杀技之一的A/B测试,也被越来越多的国内企业所接受和重视。然而,A/B测试看似简单,实则隐藏着许多沟沟坎坎,稍不注意就会导致试验结果偏离科学轨道。那么今天...
  • 蓝绿部署、A/B测试以及灰度发布

    万次阅读 2017-03-02 14:27:26
    A/B测试与蓝绿部署的区别在于,A/B测试目的在于通过科学的实验设计、采样样本代表性、流量分割与小流量测试等方式来获得具有代表性的实验结论,并确信该结论在推广到全部流量可信;蓝绿部署的目的是安全稳定地发布新...
  • 数据分析运营---A/B测试中20个必须知道的问题

    万次阅读 多人点赞 2017-04-29 23:49:08
    在网站和移动产品设计和开发中、以及互联网产品运营中,我们经常...虽然传统解决办法多数情况下也是有效的,但A/B 测试A/B Testing)可能是解决这类问题的一个更好的方法。在软件开发中,产品需求通过多种技术手段来
  • 在项目过程中,我们有很多时候,觉得用户改怎么样?...等等这些问题,实际上,大部分的用户是不知道的,这时候,我们不防先用A/B测试工具实验一把,将用户真实的反应统计下来,这样我们就能一步步离用户近了!
  • 单元测试与集成测试

    万次阅读 多人点赞 2019-09-17 08:25:00
    测试策略和过程,软件测试分为单元测试、集成测试、确认测试和系统测试。 按软件系统工程,测试是软件质量保证的最后的一关。 高质量的程序取决于以下几个方面: 高质量的设计 规范的编码 有效的测试 开发部...
  • 蓝绿部署、A/B测试、金丝雀发布,以及灰度发布、流量切分等,经常被混为一谈,影响沟通效率。 根本原因是这些名词经常出现,人们耳熟能详能够熟练地谈起,对这些术语的理解却没有达成一致。 下面是从Blue-green ...
  • ZZULIOJ.1078: a+b(多实例测试1)

    千次阅读 2018-11-15 20:24:23
    1078: a+b(多实例测试1) 题目描述 计算A+B 输入 输入第1行为一个整数n(1≤n≤10),代表测试的组数。 下面有n组测试数据,每组1行,为2个整数,为A, B。 输出 对每行输入,输出A+B的值,单独占一行。 样例输入 2 1 ...
  • zzuli OJ 1078: a+b(多实例测试1)

    万次阅读 2015-08-30 10:20:43
    下面有n组测试数据,每组1行,为2个整数,为A, B。 Output 对每行输入,输出A+B的值,单独占一行。 Sample Input 21 23 4 Sample Output 37 HINT 此类多实例测试解决方案:
  • zzuli OJ 1079: a+b(多实例测试2)

    万次阅读 2015-08-30 10:21:50
    计算A+B Input 输入数据有多组。  每组一行,为整数A, B。 Output 对每行输入,输出A+B的值,单独占一行。 Sample Input 1 23 4 Sample Output 37 HINT 此类多实例测试解决方案:  ...
  • 单点测试与多点测试

    千次阅读 2019-05-23 17:05:55
    最近在使用PATCodeup写程序玩,发现这两者的OJ方式不同。 PAT是单点测试,即输入一组测试用例即可输出结果, 而Codeup是多点测试,即输入所有测试用例后才会输出所有输出结果。 在这里写两个最简单的a+b求和小程序...
  • 什么是A/B测试?以及如何进行? 很多朋友都问我怎么进行A/B测试,我一般都不直接回答他们的问题,而是首先问一句:“你的日IP是多少?”。当对方的回答是不到一百的时候,我一般都说这个没必要了解。 或许你会...
  • 软件测试与质量保证-软件测试部分练习题 1单选(2分) 软件测试用例主要由输入数据和_________两部分组成。 A.预期输出结果2.00/2.00 B.测试计划 C.以往测试记录分析 D.测试规则 2单选(2分) 与设计测试用例无关的...
  • 【最全】软件测试基础理论选择题(含答案)

    万次阅读 多人点赞 2020-03-05 19:17:40
    A、经过测试没有发现错误说明程序正确 B测试的目标是为了证明程序没有错误 C、成功的测试是发现了迄今尚未发现的错误的测试 D、成功的测试是没有发现错误的测试 【答案】C 3、软件测试中白盒法是通过分析程序的...
  • A/B测试之前需要进行有效的A/A测试。 有可能以前A/A测试出来没有差别的分组,在疫情时期由于用户行为发生变化出现指标有差异的情况,这就需要重新并且尽量快地进行A/A测试。 以上的这些变化都要求能够更快更灵活...
  • 一代 #include<stdio.h> int main() { int a,b;//定义两个变量a,b while(~scanf("%d%d", &a, &...//进行循环语句,若给ab一个值,则输出a+b return 0;//返回值 } 二代 #include&l...
  • 静态测试与动态测试

    万次阅读 2015-09-19 13:16:21
    其被测对象是各种软件相关的有必要进行测试的产物,是对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态测试可以手工进行,充分发挥人的思维的优势,并且不需要特别的条件,...
  • Jmeter接口测试+压力测试

    万次阅读 多人点赞 2017-05-14 14:01:50
    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是...
  • result.summary()

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,584,424
精华内容 633,769
关键字:

a测试与b测试