数据分析概述
背景
数据分析是机器学习的基础,甚至对于工程或者项目管理来说,以量化数据为基础的方法论也是必要的。比如服务稳定性需要关注各种线上指标、性能指标等,这些指标需要实时的量化展示出来,以发现目前系统的问题。甚至对于UI设计、商业策略来说,数据分析中的AB-Test也是非常有效的分析工具。所以说,数据是一切工作的基础。
指标量化体系是数据分析工作中很重要的部分。但是对于数据分析师来说,不只是建立好指标系统、会用Excel、会使用SQL查询就可以了,更重要的是要理解数据背后的原因,要解决what、when、who、why、how的问题。
分析流程
目标确定
首先需要确定真实的目标是什么?把目标量化出来,遵循smart原则。比如DAU增长比例、 DAU和用户留存的关系。
数据收集
利用目前已经有的数据,或者构造实验产生新的数据。
数据清理
对搜集来的数据做数据清理,包括填充缺失值、去除异常值、数据类型转换,数据转换等。
数据分析
描述性统计
- 集中趋势:众数,平均数,中位数
- 变异性:分位数,异常值,方差,最大最小值
- 归一化:标准方差,最大最小归一,方差归一
- 正态分布:KL-散度:kl-diliverity
数据可视化:tableau
- 散点图、直方图、折线图、饼状图等
- tableau、python、pandas、excel等工具
假设检验
通常假设检验用来验证一种猜测,首先提出一种假设,然后计算接受或者说拒绝这个假设的概率。一旦这个概率大于p-value就说明这个假设可以被拒绝。
- P-value:错误拒绝零假设成立或者更极端情况的概率。直观上理解是错误拒绝零假设的概率。
- T检验:常用来验证总体平均值是否满足某个假设(单批样本,配对样本,独立双批样本)。一般来说,假设样本符合正态分布,根据样本平均值计算出来的T值符合T分布(类似于正态分布),T值和比T值更坏得到的p-value(错误拒绝零假设的概率)和0.05进行比较就可以接受或者拒绝零假设。可以被用来验证两个算法或者方案对于用户的影响到底哪个好。
下面是三种T检验的使用情况:不同的情况有不同的计算T值的方法- 单样本:验证单批样本的平均值是否等于某个估计常量。零假设是等于
- 配对样本:验证配对双批样本的差值平均值是否等于某个估计常量。(要求配对样本数等同)。零假设是等于
- 独立双样本:验证两批样本的平均数差值是否等于某个估计常量(不限制样本数和方差)。零假设是等于
- 卡方校验:假设两个事物之间没有关系,进而求得卡方值和P值,小于0.05时候拒绝原假设。
- 由四象限计算出来的卡方值符合自由度为(row - 1)(col - 1)的卡方分布(零假设为事物没有相关性),进而可以查表得到P值(错误拒绝零假设的概率),接受或者拒绝假设(小于0.05时候拒绝零假设)。
相关性分析
- 卡方验证:验证两个事物(a,非a,b,非b四个象限)之间的相关性。是否有相关性。卡方校验不仅可用于事物的相关性,也可以用来分析ABTest前后的结果是统计误差还是真的有效果。
- 协方差矩阵(连续型变量)、混淆矩阵、kl-散度、余弦距离、信息熵、PCA、树模型等机器学习的方法。
抽样分析(从大样本中抽取小样本)
- 大数定律:从总体数据中随机抽样n个样本,n越大样本的平均数越等于总体的平均数
- 中心极限定律:从总体数据中随机抽样n个样本(不管总体数据是什么分布),进行m次试验。实验得到的m个值(样本的平均数)呈正态分布
- 率的置信空间:假设p为抽样样本的xx比率,Z值为查表得到0.05双向置信的值,此处为1.96。因为抽样样本可能和原始样本存在偏差,根据抽样样本的比率我们可以估计原始样本比率的置信空间:
其中。
- 平均数置信空间
平均数置信空间 = , 其中 = 样本标准差 / n^(1/2)
数据建模
数据建模主要是使用机器学习模型或者统计学模型来利用数据,并达到数据分析的目标。
假设检验
提出假设,根据假设得到的概率和P值概率比较,判断是否要接受或者拒绝原假设。
AB-Test
- 随机对照分组
将用户随机的分为组,使得各个组之间的所有条件基本是相同的。然后在上面使用不同的策略,进行比较结果验证策略的有效性 - 使用卡方校验或者T校验验证前后两次实验是否是统计误差还是真的有效果。
- 因果分析
某些情况下不适合使用AB-Test,比如存在已久的系统再做AB-Test代价较高、医疗中不能使用两种策略分别应用在两个病人身上等。这时候需要从逻辑上分析导致结果的主要因素,就是因果分析。
。
机器学习模型
预测、回归、聚类、启发式算法等
数据生产
有了数据模型,需要将数据模型部署到线上,并产生新的数据。
结果分析
针对数据模型的结果数据进行分析,并验证结果的合理性。是否有偏差?新策略是否真的起到效果?这里也可以应用假设检验的方法比较新策略和旧策略的结果。
对结果的合理性有了分析之后,一般为了改进效果,可能还需要根据当前的结果优化策略,并开始议论新的数据分析。
总结
对于数据分析师来说,最重要的是业务的理解。只有对业务有了深刻的理解,才能敏锐的发现目前的问题,才会有灵感巧妙解决问题。而培养业务理解能力最重要的是多用自己的产品、多分析一些case、多理解自己的用户,向PM靠齐。