4.2.1 描述型统计量的九值、三图、一表

4.2.1 描述型统计量的九值、三图、一表

笔者将描述型统计量概括为“九值+三图+一表”。

●九值:包括均值、中位数、众数、极值、去重计数、标准差、变异系数、皮尔逊相关系数和标准回归系数。

●三图:包括频率分布直方图、散点图和箱式图。

●一表:数据透视表。

1.九个描述型统计量

●均值:也称平均值,指的是所有数字相加后除以数字个数,是最常见的描述型统计量,但当存在极端值时,容易导致严重误判,一般写作mean。

●中位数:按顺序排列的一组数据中居中间位置的数,代表样本、种群或概率分布的数值。中位数可将数值集合划分为相等的上下两部分,使用场景与平均值接近,但比平均值更可靠,一般写作median。

●众数:样本数据中出现次数最多的数字就是众数,一般在样本数值经常重复的样本集合中作为观察指标,使用频率明显低于均值和中位数,一般写作mode。

●极值(极大值和极小值):和中位数的获取方法接近,对样本数据进行排序,序列两边的值即为极大值和极小值,使用场景较多,一般在估算样本范围时使用,一般分别写作max和min。

●去重计数:计算方法为对样本进行去重(真实数据中经常出现重复数据),去重后的数值个数即去重计数,一般写作distinct count。

●标准差:衡量数据离散度的数值,计算方法为样本中的每个原始数值与均值作差,再取平方后相加,然后取均值,最后开根号。标准差越大说明样本数据的离散度越大,反之说明样本离散度越小。标准差的大小和原始数值的大小有关,所以只看标准差是难以得到数据离散程度信息的,一般写作std。

●变异系数:标准差除以均值,得到的无量纲的数值就是变异系数,具有和均值、中位数相同的使用频率。由于变异系数是无量纲的,所以可以直接通过变异系数衡量样本离散程度,一般写作CV。

●皮尔逊相关系数:上述7个数值都是对单维度样本数据的描述,皮尔逊相关系数是对两个维度的样本集的相关性的度量。如果某一组数据有涨幅,另一组数据跟着也有涨幅,那么皮尔逊相关系数较大。值得一提的是,相关系数并不只有皮尔逊一种,还有斯皮尔曼相关系数和肯德尔相关系数,它们有各自适合使用的场景。相关系数在-1到1之间,绝对值越大,则说明两个变量越具有相关性,一般写作corr。

●标准回归系数:在原因假设的溯源过程中,我们经常会使用多元线性回归的方法进行分析。而标准回归系数即将自变量和因变量都做中心标准化以后,使用多元线性回归得到每一个自变量的回归系数,因为自变量经过了标准化处理,所以称为标准回归系数,一般使用统计软件得到。标准回归系数可以分析出哪些因素是具有强作用的、哪些因素是具有弱作用的,一般写作coef。

对于以上常用的描述型统计量,大家实际上并不陌生,因为大多数信息是从小学就开始接触的统计概念,比如均值、中位数、众数和极值等。但了解概念和能正确使用是两回事。接下来,笔者将分别介绍以上描述型统计量的用法。

第一个应该介绍的描述型统计量非“均值”莫属,在大多数程序语言里一般用mean或者average表示。这个数值无疑是使用场景最多的描述型统计量,比如,A/B测试实验中往往会比较实验组和对照组的均值大小,市场调研中经常说“本月黄瓜的菜价均值为3.94元”(新闻报道中使用其他描述型统计量的情况很少见)。均值的计算方法十分简单,比如三个女性的身高分别是150厘米、160厘米和170厘米,如果将这三个女性的身高视为一个整体,我们可以说她们的身高均值为160厘米。

你看,均值可以让我们快速知道这三个女性身高的大致情况,但如果仅仅使用均值作为描述型统计量有一个巨大的“隐患”,因为均值太容易受到极端值的影响。举例来说,北京某互联网公司研发工程师的平均月工资为4.6万元,看到这个数字恐怕大多数研发工程师都十分惊讶,明明自己的月工资只有2万元左右,为什么公司平均月工资为4.6万元?这是因为极少数高薪研发工程师将均值拉高了,这种现象十分常见。

如果一定希望使用均值数进行计算,并且希望摒弃上述极端情况,我们可以使用均值的变体——截尾平均值。“截尾平均值”是一种截掉数组头部和尾部数据再取平均的做法,比如奥运会跳水比赛中经常听到“去掉一个最高分,再去掉一个最低分,该选手的平均得分为94.33分”的描述,这种得分就是“截尾平均值”。

如果希望真实地表现数据情况,其实有更多描述型统计量可供选择,比如中位数、众数和极值。上述例子中,三个女性的身高的中位数同样为160厘米,极值分别是150厘米和170厘米。通过这种方式我们对数据的认识会更加清晰。

策略产品经理在实际工作中接触到的待分析数据量级通常是百级或千级(比如,不同时间段文章的阅读量分布情况等),一般来说对于这个数量级的数组,我们需要同时观察均值、中位数、众数、极值(极小值和极大值)、去重计数、标准差。

与均值相比,中位数的优点是能更真实地反映一个样本集合的数据情况,比如设计内容型产品的OKR指标时,如果指标是提升日活跃用户(DAU)的平均点击次数,那么对于平均点击次数的最佳优化方式其实是鼓励高频用户多产生点击行为(相比而言,让高频用户变得更高频的难度,比让不活跃的用户活跃起来简单很多,因为高频用户对产品价值是认可的,所以他们对策略产品经理所做输入的信息接收度更好)。如果目标设定为提升DAU的中位数点击次数,则最佳的优化方式是鼓励低频用户而非高频用户,因为高频用户的比例极低,只鼓励高频用户无法带来全体用户规模的数据增长。

在上述的场景中,一个健康的业务指标应该设定为提升中位数点击次数,因为一级指标毋庸置疑是用户留存,而对于点击次数已经很高的高频用户流失概率低,点击次数较低的长尾低频用户流失概率高,所以提升高频用户的点击次数对于留存率提升是不显著的。

但在不同业务场景和业务节奏下的业务指标设定是不同的,对于付费产品而言,往往是千分之几的重度付费用户“撑起了”现金流的大部分。对于付费业务指标,其可以设定为“平均付费金额”,此时通过提升重度付费用户的体验吸引他们再次付费,这对现金流的提升更有效。这里的假设主要是基于业务判断大多数用户没有付费习惯和付费能力(比如无法让18岁以下的人合法地使用网银支付),这种情况下设置指标为平均值是更合理的。

去重计数是一个重要的描述型统计量,且不复杂。比如在大多数用户产品中数据分布是遵从幂律分布的,大多数的行为数据由少数用户贡献。比如我们计算平台整体的点击行为数据,一个很重要的统计量是计算点击人数(UV),去重个数往往能消除PV数据的“马太效应”,毕竟UV和PV是同等重要的两个统计量。

下面我们来介绍关于测量样本数据离散程度的描述型统计量——标准差和变异系数,着重介绍的是变异系数(又称标准差率),因为变异系数是一个无量纲的统计量,比较适合多个样本变异程度的比较。一般来说,变异系数大于30%时属于强变异,变异系数大于100%时属于严重变异,变异系数越大则说明数据的离散程度越大。变异系数经常和均值、中位数一起出现,是最为常用的描述型统计量之一。

变异系数与标准差相比,变异系数优点是不需要参照数据的平均值。举例来说,A班学生期末考试成绩的均值为60,标准差为30;而B班学生期末考试成绩的均值为100,标准差为40,我们不能仅凭A班的标准差更小就认为A班学生成绩的离散程度更小(因为A班和B班的均值不同)。此时,我们应该使用变异系数比较,A班的变异系数为0.5,而B班的变异系数为0.4,发现A班的变异系数更高,所以A班学生期末考试成绩更加离散。但变异系数同样存在着缺陷,当平均值接近0的时候,微小的扰动也会对变异系数产生巨大影响,因此造成精确度不足。

接下来,笔者介绍一种在溯源流程中经常使用的描述型统计量——相关系数。相关系数是一种度量两组样本数据相关性的统计量,数值范围为-1到1。如果两组数据的相关系数等于1,则说明两组数据是线性重合的,并且呈正相关;如果两组数据的相关系数等于0,则说明完全不存在线性关系;如果两组数据的相关系数等于-1,则说明两组数据是线性重合,并且呈负相关。

相关系数使用之前一般需要先做散点图,在图上观察是否有以下两种情况。

●是否线性相关:两组数据有可能是非线性相关的(比如二次方程),此时使用相关系数是无法得到相应的结果的。

●是否存在异常点:如果在图中有一些异常点,则需要将异常点从数据集中“抠”掉,因为如果不做数据预处理,以上异常点将大大影响相关系数的最终值。

这两种特殊情况对于相关系数的判断至关重要,如果数据接近线性关系并且处理掉了少数异常点,则可以使用相关系数作为两组样本数据的描述型统计量。

在一种名为“主成分分析”的数据分析方法中,相关系数和标准差是对高维样本数据进行降维的主要参考指标。想象这样一个场景:某市有7个降水监测站,由于资金问题需要裁掉其中的1到2个监测站,那么如何根据过去20年的各监测站的数据进行数据分析?如何选择需要裁撤的监测站?

笔者的解决方案如下。

●找到7个监测站中相关系数重合度最高的两个监测站,裁掉其中成本较高的那个监测站。

●找到7个监测站中每个监测站多年的降水量结果,裁掉其中变异系数最低的那个监测站。

为什么这么做?第一个理由,如果存在两个监测站的数据高度相似(相关系数过大),在数据无误的情况下只能说明两个监测站的地理距离过近,用其中一个监测站的数据可以近似代表另一个监测站的数据,所以其中的一个监测站可以被裁掉。

第二个理由,如果某个监测站在历史上的近n年的降水量结果数值很稳定(变异系数较低),则我们可以认为接下来的监测数据和之前的数据差异不会很大,即使裁撤该监测站,仍然可以使用历史数据来估计数值。只有那些数值差异较大的监测站是有存在价值的,因为我们无法预测该监测站未来监测的数据的走向。

从这个例子可以看出,相关系数可以用来衡量不同样本数据的线性相关性。如果两组数据存在线性相关,如同上文提到的关于“信息量”的定义,已知其中一个监测站的数据,而另一个监测站的数据由于与前一个监测站数据存在高度线性相关,所以另一组数据的不确定性降低了,也就失去了所谓的“信息”。相关系数是与不同样本数据比较得到的。

另外,从每一组数据自身的描述型统计量看,较低的离散程度同样使得该监测站的不确定性降低了,但同时也损失了相应的“信息”。这个例子本质上是一个“信息处理”问题,换句话说是“用什么样的方法可以尽量节约成本并保证‘信息量’最大化”的问题,而这恰恰是需要描述型统计量大展拳脚的地方。

第3章介绍的主观评测也可以套用上述思想,比如对于某所学校的作文进行主观评分,不同的老师会以各自不同的视角进行独立打分,如何利用最少的老师来批改同等数量的作文呢?还是可以从两个视角分别看待:第一个视角是老师与老师之间(也可以选取除了相关系数之外的描述型统计量),第二个视角是老师历史打分的数据情况。其实很多数据分析问题的本质都是相似的,只不过我们选取了不同的描述型统计量进行信息抽取而已。

最后一个常用的描述型统计量是标准回归系数,主要解决溯源流程中的预测问题。比如我们积累了足够多的数据以后,希望能通过现有数据预测未来数据走向,此时多元线性回归是一种常用的统计手段。一般需要先做相关系数的分析再做多元线性回归的分析,给出因变量与自变量的线性回归方程。对于策略产品经理来说,我们往往在做项目收益预估时会用到(比如对于历史延续项目在制定OKR和KPI时,如何有理有据地预测收益)标准回归系数。

2.三个常用的图形

在做数据分析时,统计图的作用是“一图胜千言”的,本节主要介绍以下三种统计图。

●频率分布直方图:用来分析单维度数据。如果是离散型随机变量(可以枚举的数据),则直接将统计计数绘制成图;如果是连续型随机变量(不可以枚举的数值),一般需要先进行数据分桶,再进行频率计算,一般写作barplot。

●散点图:常用来分析二维数据相关性的图,几乎所有的数据分析之前都需要绘制散点图,一般写作scatter。

●箱式图:一种统计学家钟爱的图,将中位数、四分之一分位数、极值等数值绘制在一张图上(笔者一般只看数值,很少使用箱式图),一般写作boxplot。

频率分布直方图(经常和频数分布直方图一起使用)是一种常见的条形图,横轴是数据分桶,纵轴是频率(或频数)。比如现在有10个学生的身高,分别是160、170、165、164、163、150、167、176、180、190(单位都是厘米),将这些数据绘制为频数分布直方图,如图4-2所示。

图4-2 身高频数分布直方图

使用Python中的Pandas包可以将数据的频数分布直方图直接绘制出来。从图4-2中可以看到上述10个数字中位于160厘米(包含160厘米)和170厘米(不包含170厘米)之间的人最多,有5个学生。通过绘制直方图,可以比较清晰地看到各个范围的绝对数量。如果数据较大,我们可以将频数转换为频率(每个频数除以总和,得到0至1之间的数值)。

实际工作中,无论是频数还是频率直方图都经常使用,频率直方图只观察各个数据分桶的频率可能会掩盖分母较小导致不精准的问题,而频数直方图可能会掩盖不同数据占比的关系(频率分布图可以转换为饼形图)。频率或频数直方图一般可能会出现几种数据分布情况。

●正态分布:正态分布的图形表现为中间高两边低,一般属于多种独立变量共同影响得到的数据,如图4-3a)所示。比如一个健康人口的年龄分布图(横轴为年龄标签,纵轴为人数)应该是标准正态分布。

●幂律分布:自然界中的幂律分布实际上比正态分布更为常见,如图4-3 b)所示。大多数游戏产品的付费金额由少数玩家贡献,大多数点击行为也由少数用户贡献,只不过中心化的程度有所不同(比如有可能是10%的内容贡献了90%的点击行为,也有可能是20%的内容贡献了80%的点击行为)。所谓“二八原则”,不能简单地理解为20%和80%的关系。

图4-3 使用Python绘制的正态分布和幂律分布

频数分布直方图在涉及不同业务的业务场景时是不同的,比如学生成绩大多集中在60分至95分之间,而招聘市场的薪资分布情况不一定完全遵循幂律分布,因为这些数据的影响因素并非完全独立(因为根据中心极限定理可知,若影响因素之间完全独立则是正态分布)或因素间完全强相关(影响因素之间强相关则是幂律分布,由于规模效应的存在使得强者更容易获得资源,从而变得更强)。如果影响因子之间的相关性介于中间状态,就会呈现出中间形态的数据分布。策略产品经理要在实际工作中经常分析和总结。

接下来介绍散点图。散点图是一种观察两种变量相关性的常用方法,一般在计算相关系数之前需要先观察散点图,通过散点图寻找以下两个特征。

●是否具有线性关系:通过将两组数据以(x,y)的形式绘制成散点图(如图4-4所示),可以看到数据关系是否接近线性,如果接近线性关系,则可以使用线性相关系数进行度量;如果不接近线性关系,则应该采取其他方式拟合二者的相关性,比如多项式拟合、幂律拟合等。

●是否存在异常点:一般来说,通过绘制散点图的方法可以寻找数据中的异常点(也称离群点)。如果存在特殊的异常点,在做数据分析时一般需要考虑该异常点是否可以去除,是数据错误导致还是真实数据的极端表现。根据业务需求判断该异常点是否可以被忽略掉,再对其他的“合群数据”进行统计分析。

图4-4 散点图示例

最后介绍箱式图(如图4-5所示),箱式图是描述数据分布的统计图,是表述最小值、第一四分位数、中位数、第三四分位数与最大值的一种方法。它可以用于粗略地看数据是否具有对称性、分布的分散程度等信息,特别适用于对几个样本的比较。在箱式图中,最上方和最下方的线段分别表示数据的最大值和最小值,其中箱式图的上方和下方的线段分别表示第三四分位数和第一四分位数,中间的粗线段表示数据的中位数。

另外,箱式图中最上方和最下方的星号和圆圈分别表示样本数据中的极端值。其中,大于3倍四分位数的极端值用实心圆表示。箱式图是一个重要的探索性数据分析工具,一般用来观察数据是呈正态分布、左偏分布、右偏分布,还是其他类型的分布。

图4-5 箱式图示例

但在实际工作中,如果只需要观察一组样本数据的描述型统计量,一般中位数、平均值、变异系数、极大值和极小值已经足够。箱式图一般用于两组及以上样本数据的描述型统计量的可视化。通过箱式图对比不同组别的数据比观察表格中的均值等描述型统计量更为直观。

3.数据透视表

数据透视表是数据分析中最常用的工具之一。将数据明细进行分类汇总后就可得到数据透视表。我们可以使用不同的离散标签(可以枚举的数据,比如日期、性别等)作为表格的横轴或纵轴,数据部分是描述型统计量。表4-1所示为某学校学生信息数据。

表4-1 某学校的学生信息

在使用数据透视表时,我们可以对表4-1中的数据做进一步分析,首先要知道上述数据中哪些是离散型数据,哪些是连续型数据。离散型数据有姓名、性别和区域,因为这些数据是可以枚举的;连续型数据是身高,因为身高数据是大于零的连续值,无法遍历枚举(比如我们无法枚举165cm和166cm之间到底有多少个数字)。在数据透视表中,通常需要将离散型数据置于行、列字段,将连续型数据置于“计算字段”。比如将性别置于“行字段”,将身高的平均值置于“计算字段”,经过处理后的表4-1可转为表4-2。

表4-2 基于学生信息表的数据透视表A

如果将行字段置为“区域”,将列字段置为“性别”(和上例中发生了调换),将计算字段置为“身高的平均值”,将得到表4-3。

表4-3 基于学生信息表的数据透视表B

我们看到数据透视表可以对二维数据进行深层次的加工,并使用描述型统计量进行描述。这种将不同维度的数据进行对比的思想和前文提到的数据分析方法论中的“对比—分析—溯源”的流程是一致的。通过数据透视表来完成“对比—分析”的流程是比较常用的手段,如果还能通过寻找不同维度的差异,利用原因假设进行溯源,就完成了一个完整的数据分析流程。

上一章 封面 书架 下一章