本文对正在成长的初、中级数据分析人员相当友好,也特别适合产品经理、数据运营等相关岗位。字数较长,可以先马后看。
本号会持续更新体系化的数据分析技能、思维文章,文章内容来源都是数据禅心团队超十年累积的经验。
这些经验已经被集结成书,也已经被制作成付费课程。
但在这个号,大家可以免费学习,请关注“数据禅心DataZen”不要迷路。
如果看完能学以致用,即使不点赞收藏,就是对码字老师最大的支持啦~
本文转载自曾津老师知乎账号“恒河沙'DataZen”。
曾津:
首位CDAIII 数据科学家
资深数据产品经理
商业分析总监
从事数据分析相关的工作超10年,
数据分析实战-方法工具与可视化》作者
本文为大家介绍如何用数据很规范的描述现状。本文为《数据分析七武器》系列文章中的第1篇。接下来会有连续2篇文章,请随时关注~
本文约7000字,阅读时长20分钟左右。码字不易,需要您的鼓励,点赞、收藏和喜欢~~
《数据分析七武器》旨在为初级数据分析师及相应转行为数据分析师的其他岗位的同学提供一个数据分析工具箱,我称之为数据分析七武器。我将分三篇文章为大家介绍这七种方法。
数据分析七武器
方向1 现状分析——做到胸中有丘壑
我们通过分析指标的表现,能够了解目前业务现状如何,以及发生了什么问题。现状分析看似简单,但是实则大有门道。许多数据分析师对业务进行数据现状分析时往往只是在做简简单单的“看图说话”——只是就着图表去描述数据的起起落落。这是远远不够的。对于一个专业的数据分析师而言,做现状分析的时候是有一整套方法论体系的。
对应分析工具:
一个受过良好训练的数据分析师在针对业务做现状分析的时候常用的手段有两种:一是探索性数据分析(EDA);二是趋势分析。
武器1 探索性数据分析(EDA)在数据分析师的日常工作中,对数据指标进行描述恐怕是每天绕不开的工作。这种工作看似没有技术含量,毕竟看图说话”并不难“。但是如何能够利用统计学理论更加规范地去描述数据呢?这里面就大有门道了。这就类似跑步这种运动,谁都会认为自己会跑步,但是真正地能用标准的起跑动作、跑步姿势进行跑步的人却非常少。
在统计学中,对数据进行概括性描述的过程,被称为探索性数据分析( Exploratory data analysis, EDA)。探索性数据分析是上个世纪六十年代,美国统计学家John Tukey提出的。他认为:“探索性数据分析是基于对数据集的分析以概括数据集的主要数据特征、且常常伴随可视化方法进行解读的一种方法。在这一过程中,是否使用模型都可以,更加重要的是探究数据能够在模型和假设检验任务之外能告诉我们什么信息”。
探索数据分析一般按照如下步骤进行:
我们来通过一个案例了解一下:
案例一 探索性数据分析
HighTrip是一个在线旅游住宿预订APP。该APP主营两个品类:商务精品酒店产品和青年旅店产品。2017年8月至9月初两类产品的收入数据如图所示.
HighTrip公司旗下商务精品酒店和青年旅店的营收情况
横轴代表时间,纵轴代表两款产品的收入。那么针对这张简单的数据图表,我们应该如何描述其中的信息呢?
让我们先思考十秒钟。
一个比较规范的描述方式是这样的:
从量级上看,商务精品酒店收入和青年旅店收入均值在8月至9月上旬相对稳定,略呈现下降趋势。商务精品酒店品日收入均值为41.6万;青年旅店品天收入均值为25.1万。商务精品酒店为公司带来的收入远高于青年旅店。
从波动上看,商务精品酒店收入波动略大于青年旅店收入波动。商务酒店日收入 标准差为6.6万,青年旅店日收入标准差为2.8万。下图中可以看到,两种品类的波动呈现周期性特征。平时高,周末低。
从两组数据指标的关系来看,两者相关系数是0.953,二者之间呈现强烈的同向变动关系。
HighTrip公司旗下商务精品酒店和青年旅店的营收情况的探索性分析
此时我们已经获得了关于这两组数据在量级、波动水平和相关性上的数字特征。我们还需要对其中比较有意思的信息进行原因探究。首先,为什么数据会呈现略微下降趋势?这可能与暑期结束有关。暑期是家长和孩子们出行的高峰,所以对酒店的预订会较多。而临近开学的时候大家需要“收收心”,出行变少从而使得酒店预订趋势略降。这个趋势针对两种品类的产品都是存在的。第二,为什么数据呈现周末低平时高的波动表现?这是因为大家一般会提前预订酒店(尤其是商旅用户)。一般会平时预订,周末入住。而预定产品的收入确认时间是预定支付时确认。第三,为什么青年旅店收入标准差会小于商务酒店收入标准差呢?这是因为两种品类所针对的用户群体不一样。商务精品酒店的用户群体一般是商旅用户,满足的出行需求一般是公务出行。公务出行在工作日预定酒店出行的场景更多。而青年旅店品类的用户中很大一部分是大学生。大学生出行和预定时间相对灵活一些,所以平时和周末的差异会相对较小。
以上的案例中,我们用了”量级>波动>相关>原因“的顺序说的。量级、波动、和相关都有各自的指标进行描述。
1.描述量级:集中趋势描述量级和集中趋势有三大指标:均值、中位数和众数,如下:
(1)均值
集中趋势中最重要的指标就是均值(mean),均值反应了事物的平均水平。均值并不仅仅是一个数据指标,而是一类数据指标的概称。常见的均值有四种:算术平均值、加权平均值、几何平均值、调和平均值。其中算数平均数和加权平均数相对更常用。而算数平均数和加权平均数是应用较多的两种均值。
算数平均数:
算数平均数是指在一组数据中所有数据之和再除以这组数据的个数。
加权平均数:
加权平均数会考虑不同情况的重要程度或者出现概率,来计算数据的量级水平。
w是权重
均值有一个非常大的缺点就是容易受到极端值的影响。这就是我们常常提到的“XX被平均了”。我们经常能看到“被平均”的笑话,比如:
我和姚明的平均身高是2米以上
我、比尔盖茨、马云三个人的平均身价超过百亿元
还有前些年说我们大家的工资被平均了。
这些都说明,算数平均数指标容易受到极端值的影响。如果观测到的数据指标中存在一些极端值或者异常值,我们就不能简简单单地使用算数平均数代表指标总体的量级水平了。此时我们就需要用到后文中会介绍的中位数和众数指标了。
几何平均数一般用来计算平均增速或者平均变化率。调和平均数是一个指标中每个数字的倒数的算术平均数的倒数。这两种均值应用较少,我们在这里就不做过多的赘述了。
(2)中位数
所谓中位数,就是指将一组数字从小到大排列,排在中间位置的那个数。在一组数字中,一半的数字比这个数字小,一半的数字比这个数字大。
中位数的优点是不受极端值的影响。如果某数据指标容易出现异常值或者极端值的话,使用中位数测量会比使用均值测量更好一些。
比如有5个人,身高分别是175cm、165cm、165 cm 、180cm、226cm(姚明) 。如果计算均值,五个人的平均身高为182cm。这个结果显然是不合理的。在5个人中有3个人都是身高不足180cm的。但如果用中位数来衡量这5个人整体的身高水平的话,这5个人身高的中位数为175cm,显然能够更好地代表 这一组数据的平均水平。
在我们日常的工作中,很多指标是存在极端值的。在这样的情况下如果仅仅关注均值,将很难使得真实情况展现在我们面前。
(3)众数(mode)
变量中的众数就是指出现次数最多的值。一个变量可以有多个众数。众数相对于中位数和均值而言,用得比较少。
众数指标的缺点就是众数没有利用所有的信息。但是众数也有一些优点。一是众数和中位数一样,也不受极端值的影响。二是众数还有一个特殊的用途,就是众数可以去衡量离散变量的集中趋势,而均值和中位数都不能描述离散变量的集中趋势。
2.描述波动描述波动是指通过离中趋势(divergence tendency)数字特征表示数据指标的波动水平。
对于数据指标,我们希望其表现相对稳定的。如果一个数据指标的波动较大,则我们很难理解这个指标背后的规律,无法预测其变化趋势,也将会承担更多的风险。在金融行业中,收益指标的波动甚至常常直接被视作风险。
我们用来表示离中趋势的数字特征通常有极差、标准差、方差和变异系数四种。
(1)极差(range)
极差实际上是一组数字的最大的变动范围。可以用如下公式表示:
极差=最大值-最小值
极差计算简单,但在现实生活中用的比较少。原因是极差这个指标非常容易受到异常值的影响。
一个替代的指标是四分位极差 。当最小的25%的数据与最大的25%的数据都被去掉后,极差所剩的部分称为四分位极差( interquartile range, IQR ),简称四分位差。
(2)标准差
标准差是用得相对比较多的衡量离散趋势的指标,其公式为:
其中 σ代表标准差,μ代表均值, Xi代表指标中的每一个值,N代表指标中数字的个数。许多初入门的分析师一看到数学公式就头大,标准差的公式又是一个数据分析师必须要掌握的公式,那么这个公式应该死记硬背记忆吗?不应该!学习数据分析相关的统计学知识、记忆统计学公式的正确方式,应该是先去理解理论和公式背后的含义再去记忆。
那么我们接下来介绍如何理解记忆标准差公式。
关于标准差指标为什么可以代表一组数据的波动情况的理解
高中数学老师在黑板上写下的距离公式
我们标准差公式的上半部分是不是跟距离公式有些像呢?因此,标准差公式实际上表达的是某种距离。标准差公式下面除以N代表平均。那么这个公式就代表一组数字到其均值的平均距离。
那么一组数据到其均值的平均距离为什么能够体现这组数字的波动呢?我们可以基于图示的方式去形象地理解这个问题。如下图中所示,两个坐标轴中两组数据的均值相等,但左侧坐标轴中黄色的数据点所连成的曲线波动明显小于右侧坐标轴中黄色数据点所连接成的曲线。在下图中,红色的、垂直于均值的虚线的长度就是每个数据点到均值的距离。我们可以看到在左侧坐标轴中数据点到均值的距离(虚线的长度)普遍短于右侧坐标轴中数据点到均值的距离。与此同时,从我们的感官上来讲,左侧的数据波动小于右侧的数据波动。
用点到均值所在直线的平均距离来衡量波动
因此,每个数据点到这组数据均值的平均距离(标准差)越大,波动越大。
以上,就是我们基于理解去记忆标准差公式的过程。我们在学习统计学知识和公式的时候,切忌死记硬背。我们应该综合利用类比、演绎、图示等多种方法去理解公式和理论。
总体标准差和样本标准差
我们刚才介绍的标准差公式
是在总体样本情况下的标准差公式。但是在数据分析师的实际工作中,我们常常不会用全量的指标数据去对观察波动,而仅仅会基于一部分数据去计算其标准差衡量波动(抽样场景)。
比如我们计算DAU标准差时,我们通常计算的是某一段时间内每日DAU的标准差,而不会将所有日期范围内的每日DAU都从数据库中抽取出来去计算标准差。我们会利用抽样计算的标准差(某一段时间的)去估算总体标准差。
抽样标准差的公式如下所示:
这个公式从形式上来讲和总体标准差公式很像,但还是略有差别。因为,抽样标准差并不是真正的总体标准差,而仅仅是对总体标准差的估算。
方差是标准差的平方,同样用来表示一组数据指标的波动。其公式如下:
总体方差:
抽样方差:
方差在实际中应用得相对较少,原因是方差在量纲上和均值不能直接比较。
(3) 变异系数
当需要比较两组数据波动时,如果两组数据的测量尺度相差太大,或者说数据量纲不同,直接使用标准差来进行比较是不合适的。
在若干年前,我经历了一次减肥的过程(当时的我体重为95公斤)。当时采用了节食、运动等多种方式。而自己也常常抵受不住诱惑大吃大喝导致偶尔的体重反弹。所以我每个月的体重波动都在2.5kg左右(抽样标准差)。而我的一位90后女性同事Amy当时也在减肥,但是她的体重基数只有46~49kg,而她每个月的体重波动在1kg左右(抽样标准差)。此时能说明我体重的波动就一定比她大嘛?并不能,因为我体重基数较大,我体重增加和降低都相对会更容易;而这位女同事的体重基数较小,体重变化也会更小。
在两组数据量级不一样而又需要比较二者波动的时候,我们就不能直接比较其标准差或者抽样标准差。我们应当消除测量尺度和量纲的影响,再进行比较。此时我们会采用变异系数指标来对不同量级的数据指标的波动进行衡量。变异系数的公式如下:
3.相关我们回忆一下前文中HighTrip两类酒店预订品类探索性数据分析的练习中,我们计算出商务精品酒店的日均收入标准差是6.6万,大于青年旅店的收入标准差2.8万。从严格意义上来讲,我们此时还不能说商务精品酒店收入波动一定比青年旅店的收入波动大!因为商务精品酒店的收入均值为41.6万,其量级是大于青年旅店的收入均值的。此时我们应该比较二者的变异系数。经过计算,商务精品酒店收入的变异系数为0.16,青年旅店的变异系数为0.11,商务精品酒店收入的变异系数大于青年旅店的变异系数。至此,我们才能很放心地认为,商务精品酒店收入波动大于青年旅店收入波动。
我们最常用的衡量两组数字相关性的指标是皮尔森相关系数。皮尔森相关系数的公式如下:
如果两组数字的相关系数为1,说明两组数字呈现完全相同的变化趋势(同升同降)。如果两组数字的相关系数为-1,说明两组数字呈现完全相反的变化趋势。如相关系数为0。说明两组数字之间不存在线性相关的关系。
在利用皮尔森相关系数度量相关性的时候,我们有两点需要注意:
一是皮尔森相关系数是一种衡量两组数据的线性关系的指标。如果是非线性关系,皮尔森相关系数的衡量效果可能不是特别好。此时我们需要找其他的相关系数进行衡量。衡量不同类别数据的相关系数有数十种,如斯皮尔曼秩相关系数、点二列相关系数等等。大家如果有兴趣可以进行深入的探究。
二是相关不等于因果。我们知道了两个因素或者维度相关性高,并不一定能推断其中一个因素是导致另一因素发生变化的原因。他们可能只是量级上的同升同降关系。比如以下的案例:
常吃海参的人群平均智商真的更高
冰棍销量越高,游泳死亡人数越多
很明显,这两个案例中表现的相关关系并不是因果关系:
常吃海参的组智商更高,这可能是因为一般只有有钱人家能经常吃到海参;普遍来看,有钱人家的受试者能够接受更加良好的教育,见更多的世面,所以他们在智商测验上也许表现得更好。
另外,冰棍销量和游泳溺亡人数的数字呈现正向相关的关系是因为:一般天气越热冰棍的销量就越好,与此同时天气越热大家越愿意去游泳,游泳的人越多,溺亡的人就越多 。
通过以上两个案例,我们可以看出,不能仅仅因为两个因素之间有相关性,就判定它们之间存在因果关系。
数据分析师要判断变量之间是否存在因果关系,需要借助许多其他信息。一方面,数据分析师要基于对业务的理解来判断是否存在因果关系。只有数据中体现出来的相关关系从业务角度来讲是合理的,数据分析师才能说两个变量之间有一定的因果关系。这也是分析师的工作为什么不能脱离业务的原因。另一方面,从方法和工具上来讲,要界定两组变量的因果关系,数据分析师还需要利用A/B测试、因果推断的方法做进一步的研究。
另外,我们还可以通过线性回归算法判断相关性:
线性回归分析是用来确定两个或多个变量之间存在的定量线性关系的方法。线性回归算法是一种已经有近200年历史的算法,可以帮助我们获得一个变量和另外一个或者多个变量的量化关系。
比如,我们可以通过线性回归分析验证如下的量化关系:
武器2 趋势分析l 期末考试前同学多复习1小时,考试成绩就会提高2.5分
l 离地铁站距离每近500米,房屋均价就会高500元
l 针对某一只股票,在某一个时期内每多投1000元,在之后的3月就多亏324元。
趋势分析,就是指描述数据指标的在时间序列上的变化方向和规律。通常我们有两种方式来对数据指标进行趋势分析:一种是利用线性回归的方式进行趋势分析;另一种是利用时间序列的方法来进行趋势分析。
1 通过线性回归来判断趋势简单的场景下,我们可以通过线性回归算法来判断数据的变化方向。那么,具体应该如何操作呢?
我们可以对日期时间进行编号,并以之为自变量,以指标在每个时间点上的数值作为因变量。此时拟合的线性关系就是因变量随着时间的推移而发生的变化首先,我们对日期进行编号,生成自变量。
例如我们认为T日代表当日,我们要计算i天前到昨天的因变量变化趋势,我们就可以将这个命题转化为计算T-i到T-1日(昨天)的数据指标变动趋势。我们基于日期生成一组变量。我们令T-i为起始时间,值等于1,T-i 1为2,……T-1为i-1。我们令这一组变量为自变量。然后,我们拟合出自变量(时间)对于指标变动的线性函数关系:
此时系数 β1的意义为随着时间的流逝,指标y平均变动数量。如果 β1为正,就意味着在这段时间内,随着时间的流逝,我们的指标y是呈现正向变动趋势的,也就是增长趋势。反之如果 β1为负,说明随时间流逝,指标y呈现负向变动趋势.
案例2 Panda公司购买率数据趋势分析
Panda公司是一家经营动漫周边、模型手办等商品的垂类电商公司。Panda公司的产品经理Noah在2020年9月下旬开始针对产品购买率上线了一系列UI优化。从panda公司的购买率曲线看好像有所增长,但是由于波动较大,不是特别能确定是否有增长趋势,如图所示。
于是Noah求助数据分析师Jason进行判断。Jason以自10月15日开始的第几天的天数为自变量,转化率为因变量,拟合出购买率随时间变动的线性函数关系。并且绘制趋势线如图所示。
Jason发现,拟合曲线斜率为正(0.0028),也就是说,从第一天(10月15日)开始,购买转化率以每天0.28%的增幅在缓慢增加。这说明在这段时期内,随着产品的优化和时间的推移,购买率是呈现缓慢增加趋势的。
我们可以通过excel完成回归
(1)选择折线-右键-【添加趋势线】
(2)右侧出现【设置趋势线格式】模块。在模块中的【趋势线选项】中选择【线性】。在下方勾选【显示趋势】和【显示R平方值】
(3)或者直接使用Excel公式求得截距和系数,具体公式可参考linest(y,x)。
2 通过时间序列来进行趋势分析:另外,我们也可以通过时间序列分析的方式发现数据指标的趋势线特征。时间序列相关内容将在以后发表,学习内容较深,大家也可以先关注。
预告文章1:容易上手的时间序列分析1:基本流程及ARIMA(需要有数科python基础);
预告文章2:容易上手的时间序列分析2:Prophet模型(需要有数科python基础)
本号会持续更新体系化的数据分析技能、思维文章,文章内容来源都是数据禅心团队超十年累积的经验。
这些经验已经被集结成书,也已经被制作成付费课程。
但在这个号,大家可以免费学习,请关注“数据禅心DataZen”不要迷路。
如果看完能学以致用,即使不点赞收藏,就是对码字老师最大的支持啦~
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved