前面Jeff 专门讨论了A/B测试里两个常见统计问题——样本量计算显著性计算,这篇我们来看下A/B 测试背后的科学原理。

因果推断

因果推断是什么?维基百科是这么介绍的:


Causal inference is the process of drawing a conclusion about a causal connection based on the conditions of the occurrence of an effect.

https://en.wikipedia.org/wiki/Causal_inference

用中文翻译就是:因果推断是指在一种现象已经发生的情况下推出因果关系结论的过程。比如说全球气候变暖,需要分析是什么因素导致的,各个因素对全球气候变暖影响有多大。

Read More →

前面我们已经介绍了在开始一个A/B实验之前,计算实验所需样本量的方法。这篇文章Jeff 将介绍下,实验做完后,如何判断实验结果是否显著。

判断实验结果是否显著,一般来说有两种方法,一种是根据经验,你了解实验所关注指标一般的波动范围,而实验组该指标明显超出了一般波动范围,因而你判断实验得到了显著的结果。

显而易见,根据经验判断不够严谨,所以Jeff推荐使用第二种方法,即通过统计学的公式计算p 值是否小于设定的显著性水平α,从而判断实验结果是否显著的方法。

类似前面计算实验所需样本量,本文也仅讨论比例类指标A/B实验结果显著性判断问题,如果是均值类指标的A/B实验结果显著性判断不在本文讨论的范畴。

p 值计算的公式

要计算p值,我们需要先计算Z分数,可以使用统计学里两总体比例假设检验的Z分数计算公式,公式如下:

A/B实验显著性计算之Z分数

而p值和Z分数是可以相互推导的,得到检验统计量Z分数的值,p值就可以通过查统计教材对照表或者用已有工具内置的函数计算(可参考下面Excel部分的计算)。

Read More →

本文暂不介绍实验所需样本量公式的由来,而是先给出样本量计算常用的几个公式,以及在Excel、R、Python等工具中实现实验样本量计算的方法。

A/B 测试一般是比较实验组和对照组在某些指标上是否存在差异,当然更多时候是看实验组相比对照组某个指标表现是否更好。

这样的对比在统计学上叫做两样本假设检验,即实验组和对照组为两样本,假设检验的原假设Ho:实验组和对照组无显著差异;备择假设H1:实验组和对照组存在显著差异。

显然,如果实验选取的样本很小,实验结果可信度就不高,因为很可能抽取的样本不能代表真实的水平。而在实际中,因为各种成本的考量,实验样本量也不可能无限大。那么,一般至少需要多少样本才能得到可信的结论呢?

实验所需样本量的一般公式

统计学里有最小样本量计算的公式,公式如下:

样本量计算公式

其中n是每组所需样本量,因为A/B测试一般至少2组,所以实验所需样本量为2n;α和β分别称为第一类错误概率和第二类错误概率,一般分别取0.05和0.2;Z为正态分布的分位数函数;Δ为两组数值的差异,如点击率1%到1.5%,那么Δ就是0.5%;σ为标准差,是数值波动性的衡量,σ越大表示数值波动越厉害。

从这个公式可以知道,在其他条件不变的情况下,如果实验两组数值差异越大或者数值的波动性越小,所需要的样本量就越小。

比例类数值所需样本量的计算

实际A/B测试中,我们关注的较多的一类是比例类的数值,如点击率、转化率、留存率等。

这类比例类数值的特点是,对于某一个用户(样本中的每一个样本点)其结果只有两种,“成功”或“未成功”;对于整体来说,其数值为结果是“成功”的用户数所占比例。如转化率,对于某个用户只有成功转化或未成功转化。

比例类数值的假设检验在统计学中叫做两样本比例假设检验。其最小样本量计算的公式为:

Read More →

一、幸存者偏差

描述

关注于眼前那些经历了某些过程而幸存下来的人或物,却忽视了不在视线范围内的未幸存下来的人或物。

举例

二战中美国军方想加强飞机的防护,从而降低被敌军击落的几率。根据返航回来的飞机,可以看到弹孔主要分布于机翼和飞机尾部,而驾驶舱、发动机和油箱的弹孔则非常稀少。因为机翼和飞机尾部弹孔更多,军方认为应该加强这两个部位的防护。

Read More →

《人类简史》这本书近几年挺热的,之前一直想读却没能开始。好在近2个月Jeff 的阅读习惯逐渐培养,又赶上2019新年开始,于是决定从这本书开始今年的阅读旅程。

一、该书的基本信息

豆瓣链接:《人类简史》

阅读耗时:16小时

评分:4颗星(总分5颗星)

导读:腾讯视频节目《一本好书》 第4期:王自健趣味解读《人类简史》,人类这样主宰地球

二、该书的基本内容

这本书讲述了人类从远古采集社会历经认知革命、农业革命、科学革命和工业革命直到现代的过程。

很多人说读完这本书的反应是颠覆了一些认知,因为里边很多观点跟我们从小学习到觉得理所当然的完全不同。比如说,我们觉得因为人类大脑足够发达能够思考,手脚足够灵活能制作和使用工具,所以最终人类能够统治和主宰地球。

但作者并不这么认为,相反,人类大脑很发达对应就需要脑容量很大,从而使得脑袋很大,这样会导致直立的人类容易背痛、脖颈僵硬。另外,不止是人类能制作和使用工具,其他人种比如尼安德特人也可以,而且他们身材更加魁梧,打猎技巧高明,但最终还是没留存下来。

作者的观点是,人类之所以可以战胜远古时期各种巨型动物和其他人种而独霸全球,在于人类学会了使用火,更重要的是人类有高级语言,可以相互沟通交流;人类能创造虚构故事,从而可以形成信任,进而具备大规模协作组织的能力

三、阅读后的收获

坦白说,我读完这本书时并没有认知颠覆的感觉。这可能是当时并不是抱持特定目的去读这本书的,当然更重要的是,对人类之所以能够主宰全球的原因,之前也缺乏了解和深入思考。所以作者在书中表达他的观点时,自然很容易就接受了。

总的来说,这本书让我较系统地了解了人类发展史,也获得了一些新知。获得的新知包括智人迁徙、宗教信仰、殖民以及濒危物种等话题。

历史上,智人从欧亚非大陆迁徙到大洋洲、美洲等都造成了当地很多大型动物惨遭灭绝。这个可能是人类迁徙来后,因为生产生活引起了当地生态环境急剧变化,一些大型动物难以适应如此快速的变化所致。

关于宗教信仰

宗教信仰从崇拜所属及多少,可大致分为泛神论、多神论、二元论论、一神论、自然法则论。远古时期的宗教信仰多属于泛神论,除了有动物的神还有非生物的神,比如石神、水神;多神论如印度教,信奉很多神,如创造之神梵天、毁灭之神湿婆、维护之神毗湿奴;二元论比如摩尼教,认为存在善神和恶神;一神论比如犹太教、基督教、伊斯兰教,分别信奉唯一的真神耶和华、耶和华(或雅威)、安拉;自然法则论如佛教,核心人物释迦牟尼是人不是神,相信世间所有神、人、动物、植物都受到自然法则的约束。

关于殖民

欧洲各国向外殖民扩张时期,成立了一些特许公司,上市发行股票,通过股票募集的资金来支持向外扩张所需雇佣兵、船只、炮弹等费用。然后等到占领了当地,就开始倾销商品,或者控制当地政府提高税费,从而掠夺当地财富。

关于物种灭绝

由于人类的过度开发,越来越多的动植物在减少甚至濒临灭绝。一些我们常在电视看到的动物,也所剩不多了。比如,地球上的黑猩猩只剩25万只,狼只剩20万只,长颈鹿不足8万只。

四、一点反思

  1. 之后要尽量避免不具目的的阅读;
  2. 在保持不太慢阅读速度的同时,更要保证阅读的质量,阅读过程中可尝试质疑、联想,争取跟已有认知产生更多联结,从而激发更多思考。

App Store Connect是Apple提供给开发者用来管理app信息、提交app审核、查看app数据等统一的平台。我们可以通过网页版使用Apple ID登陆访问,Apple也提供了移动端app可直接在手机端使用,不过目前移动端app功能还比较简单,通过网页版使用相比更方便些。近期Jefferson正好使用过App Store Connect,就来简单介绍下其功能吧。

一、功能模块

App Store Connect包含7大功能模块,但因为权限问题,你账号下可能只能看到其中部分功能模块,所有这些功能模块都以大icon形式显示在首页。下面简单介绍下这些大功能模块: Read More →

一、背景

在很多公司,每到年底或年初,领导层就会给产品制定新的一年里要达到的DAU目标,而负责产品DAU增长的同学需要算好要达到这个DAU,需要做出哪些努力和得到怎样的支持,比如需要多大新增量,对应多少预算支持;需要怎样的留存水平,做些什么样的事情去提高留存。预算下拨通常年初就会确定下来,为了让预算下拨的数额能足以支持产品达成DAU目标所需的新增,也不与实际所需的预算相差过大,我们就需要一种方法来估算下产品达成目标DAU所需新增量。

本文介绍一种基于新用户数和次日留存率来预估DAU的方法,整个操作直接在Excel就可以完成,同时可以根据已经过去的那些天的数据,不断更新接下来所需的新增和次留率,最终使年底达到目标DAU。

二、基本思路

在已经过去的时间里,选取一天作为基准日,比如选取2018.1.25作为基准日。要预估年底的DAU,这里将年底2018.12.31称作目标日,可以这样考虑:目标日的DAU由两部分构成,一部分是基准日之后每天的新增用户在目标日的留存,这里称为新用户留存;另一部分就是基准日当天及基准日之前的用户在目标日的留存,这里称为老用户留存。 Read More →

Python 的sklearn库包含许多可用于机器学习的工具,本文以经典的泰坦尼克号问题为例,来说明在Python中使用sklearn做机器学习的一般流程。由于本人对机器学习了解还不深,对于本文内容如有任何建议或意见,欢迎提出!闲话少说,咱们立即进入主题。

1. 读取并查看数据

泰坦尼克号问题,Kaggle上提供了较为详细的数据说明和下载地址,本文这里不再赘述。有需要了解的同学请移步这里

首先,我们导入需要用到的库文件,为之后工作做准备:

 # 导入后续需要用到的库文件
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pylab as plt
from sklearn.preprocessing import StandardScaler
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report 

然后读取数据并查看:

# 读取数据并查看
data = pd.read_csv("train.csv")

data.head()

可以看到数据长这样的: Read More →

一、间歇性404问题的解决

上周开始,手机就频繁收到报警通知,一会儿提示博客异常HTTP返回状态码为404,一会儿又提示恢复正常HTTP返回状态码为200,简直烦不胜烦。

当时工作很忙而且判断这个问题并不容易解决,索性就没花时间去研究,等到这周双休再拿出大块时间来研究解决下。今天早上起来后,Jefferson终于准备看下这个问题。

1. 重现404问题,根据log排查原因

Read More →