《数据分析师养成宝典》
第0章
写在前面的话
0.1 大数据分析案例
裸数据->业务数据化->指标设计->数据建模->分析报告
Eg:全国官员信息表和官员社会关系表(裸数据),再对他们的行为进行监控(业务数据化),如可以监控官员及其社会关系的存取款、信用卡消费、股票基金、信托投资、出入境记录(指标设计)等,并建立分析系统(建立模型),从而发现官员贪腐的蛛丝马迹(分析报告)。
数据分析指的是将数据转化为价值的一个完整过程。(定义:数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程)
数据分析与统计分析:数据分析(统计加机器学习)获得数据的价值,执行完后还需用数据监测是否达到既定目标,达到的话关键因素是什么,若未达到,问题出在哪;统计分析(纯统计)获得数据的信息,做完即结束,没有反馈。
数据分析与数据挖掘:数据挖掘是指从大量不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、有用的信息和知识的过程。挖掘的结果是数据分析报告的素材。
数据分析是一种系统化分析问题的方式,商业智能则是一种产品/服务。
数据分析的内容:描述性分析、优化业务和战略规划。
PV:page view页面浏览量
UV:unique visitor 访问页面的不同IP地址人数。
数据分析师需要对参与的项目承担进度、质量和成本的控制。
数据分析的过程:业务理解->指标设计->数据建模->分析报告
数据分析的最关键一步是特征工程,决定着数据的价值。
数据分析的第一步不是分析数据,而是梳理业务目标(Y和X是否定义清晰)。
第1章
正确的思维观(将数据转化为价值的能力)
1.1
数据思维
CEO:首席执行官
CFO:首席财务官
BD:商务拓展
数据分析思维的两个方面:分析问题的思想和处理问题时的态度。
1.2
统计思维
1.2.1
统计学
从思维科学角度看统计思维可归类为描述、概括和分析。
1.2.2 描述:对事物或对象的直接描写,是对事物的客观印象。(确定指标,得到数据的细节)
(1)水平的度量(数据的“位置”)
1) 均值:观测值的重心 mean()
2) 中位数:观测值的中心 median()
3) 众数:观测值的重点 which(table(x)==max(table(x)))
4) 分位数:quantile()
5) 最大值:max()
6) 最小值:min()
7) 描述统计量:summary()
(2)差异的度量(数据的“尺度”)
1)方差:var() s^2=1/(n-1)…
2)标准差:sd()方差开根号
3)变异系数:CV=100sd()/mean()变异系数是对数据相对离散程度的测度;消除了数据水平高低和计量单位的影响;用于对不同组别数据离散程度的比较。
4)样本矫正平方和:CSS<-sum((x-mean(x))^2)
5)样本未矫正平方和:USS<-sum(x^2),USS
6)极差:range=max(x)-min(x)
7)标准误差:SE.mean<-sd(x)/n^0.5
8)异常(离群)值
(3)频数
1)离散值数据
2)定性或分类数据
3)连续值数据分组
1.2.3 概括:在描述的基础上抽象出来的概念(得到数据的结构)。
1)偏度系数:skewness(),SK
2)峰度系数:kurtosis(),K
多维数据的特征分析:
3)样本协方差矩阵:cov()
4)数据的中心化:scale(x,center=T)
5)数据的中心化和标准化:scale(x,center=T,scale=T)
1.2.4 分析:发现隐藏在数据中的“模式”和“规则”(得到想要的结论,以目标为前提,以结果为导向)
1.3 逻辑思维
1.3.1 上取/下钻思维(宏观和微观)
1.3.2 求同/求异思维
1.3.3 抽离/联合思维
1.3.4 离开/接近思维
1.3.5 层次思维
第2章 理解数据
2.1 数据是什么
2.2 数据所依存的背景
2.3 数据维度
1)结构化程度
2)数据的加工程度
裸数据、专家数据(裸数据经过特征工程得到)、信息、价值
3)数据的抽象程度
2.4 数据敏感
数据敏感度是一个人对数据的主观感觉,能帮助你从众多数据中挑选出自己想要的数据,甄别出不一样的数据点。
统计学工具:控制图与控制线
2.5 数据质量
质量数据分析的6个阶段:
1)只依靠经验,不考虑数据
2)单看数字
3)整合数据,使用图表解释数据
4)加入统计调查的数据,采用描述性的统计量来刻画数据
5)通过具体取样数据
6)利用统计推断,使用置信区间等统计方法来量化质量的好坏
2.6 理解数据要注意的问题
2.6.1 不要对完美数据的盲目执着
2.6.2 小样本数据也能做数据分析
观察性研究:“消失的弹孔”(给引擎加上装甲)
实验性研究:研发运动鞋的新材料(给孩子一只脚上穿旧材料,一只脚上穿新材料,完全随机区组设计),来测试新材料是否比旧材料耐磨损
第3章 理解业务
3.1 全局了解-业务模型
3.2 动态了解-流程模型
3.3 静态了解-数据模型
3.4 动静结合-关键业务分析
3.5 数据业务化
参加数据建模比赛:kaggle
1)数据业务定义
数据可以助力核心业务发展:业务问题->数据可分析问题
2)数据分析与建模
3)数据业务实施
第4章 理解用户
4.1 由粗到细,从宏观到微观
4.2 由少到多,收集不同层次的需求
4.3 数据分析师对理解用户需求的思考
4.3.1 如何用需求分析明确产品目标
4.3.2 数据分析师理解用户需求应该具备的基本素养
(1)自我驱动力及主观能动性
(2)发现并解决问题的能力
(3) 沟通和理解能力
(4)学习能力
(5)有追求,并且有坚持
4.3.3 如何根据用户行为去驱动产品
第5章 数据准备
数据准备的任务就是把裸数据转化为专家数据。
挖掘建模:分类、聚类、关联规则、时序模式、智能推荐。
数据挖掘建模过程:定义挖掘目标、数据取样、数据探索、数据预处理、挖掘建模、模型评价。
5.1 数据探索
主要任务是检验原始数据中是否存在“脏”数据:
1)缺失值
2)异常值
3)不一致值
4)重复数据
5)含特殊符号的数据
5.1.1 缺失值分析与处理
1)“用最接近的数据来替换它”
2)针对数值型数据,可以使用该列平均值(可能的话先使用众数或中位数)来进行替换
3)合理推断(回归关系等)
(1)缺失值表示
NA(缺失状态),NULL(未知状态)
(2)识别缺失值NA
> data(sleep,package="VIM")#R语言读取VIM包中的sleep数据
> dim(sleep) #查看它的样本数和变量数
[1] 20 3
> sum(complete.cases(sleep)) #查看完整样本个数
[1] 20
> head(is.na(sleep)) #查看前6个样本空值情况
**extra group ID*
[1,] FALSE FALSE FALSE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE
[4,] FALSE FALSE FALSE
[5,] FALSE FALSE FALSE
[6,] FALSE FALSE FALSE*
> sum(is.na(sleep)[1:15,])#查看前15个样本的缺失值个数
[1] 0
> library(VIM) #打开程序包VIM,首先需要安装该程序包
>aggr(sleep)#可视化缺失值情况
左图显示各变量缺失数据比例,右图显示各种缺失模式和对应的样本数目,显示Non和Dream经常同时出现缺失值。
(3)缺失数据分布分析
判断缺失数据分布是否随机,R语言中是利用mice包中的md.pattern函数。
记住常用的程序包和常用函数,调用安装包和函数。
> library(mice)
> md.pattern(sleep)
(4) 缺失数据处理
1)当缺失数据较少时直接删除相应样本
2)对缺失数据进行插补(变量众数、中位数、平均值或多重插补法)
3)使用对缺失数据不敏感的分析方法,例如决策树
缺失值处理流程是首先判断其模式是否随机,然后找出缺失原因,最后对缺失值进行处理。
> library(mice)
> imp=mice(sleep,seed=1234)#mice函数生成多个完整数据集存在imp中
> fit=with(imp,lm(Dream~Span+Gest))#对imp进行线性回归
> pooled=pool(fit)#用pool函数对回归结果进行汇总
> summary(pooled)
5.1.2 异常值分析与处理
异常值(离群点),是指测量数据中的随机错误或偏差,包括错误值或偏离均值的孤立点值。
(1)箱线图检验离群点
(2)使用局部异常因子法(LOF法)检测异常值
也可通过散点图矩阵显示异常值。
(3)用聚类方法检测异常值
基于密度的聚类DBSCAN:如果对象在稠密区域紧密相连,则被分到一类,那些不会被分到任何一类的对象就是异常值。
K-means:将数据分为k组,再把它们分配到最近的聚类中心,然后计算每个对象到聚类中心的距离(或相似性),再选择最大的距离作为异常值。