# 数据分析基础
# 描述统计学
# 数据是什么?
数据是指不同的信息片段,大多数人可能认为数据只是电子表格上的简单数字,但数据的形式多种多样,它在现代的社会中它从文本到视频,再到电子表格,从数据库到图片再到音频,利用数据是现在世界走向成功的新途径。数据几乎可以用来理解和改善生活的每一个方面,从疾病监测到社交网络,它使我们能够与世界各地的人沟通联系,从保险行业到银行,教育,制造业,都可以利用数据做出合理的决策和分析。
# 数据类型
我们每天在路上走过,都有来来往往的车,我经常思考路上有多少车,是工作日的车多些还是周末的车多些?可能每一天的数据不一样,我还会注意汽车的种类,周一遇到的宝马是不是比周六的多?哪个牌子的车最常见?这个牌子的车是在每个地区都最常见的吗? 通过刚才的示例,就引出了两个主要的数据类型:数值数据,例如车的数量;和分类数据例如车的品牌; 数值数据视网膜能够进行数学计算,在上一个示例中,我们可以对汽车的数量进行数据运算;如果我在周一看到10辆车,周二看到11辆车,那么本周到周三未知,我看到了21辆车; 分类数据经常用来标记一个群体活一组条目,例如汽车的品牌;
# 分类定序和分类定类
分类定序数据: 有排名顺序,例如我在街上遇到的车,我会根据外观对其打分,外观更时尚一些的我会给他较高的分数,外表脏乱的我会给他较低的分数,这种评分通常为非常正面和非常负面; 分类定类数据: 没有排序或排名,例如汽车的品牌;
# 数值连续数据和数值离散数据
我们可以将数值的数据视为连续的和离散的; 连续数据可以拆分为更小的单位,并且仍然存在更小的单位。例如汽车的行驶距离,我们可以以千米、米、厘米、毫米为测量单位,但是仍然存在可以与年龄相关的更小单位;连续数据可以包括任何值,包括小数甚至负数; 离散数据仅采用可数值。我每天见到车的数量就是离散数据的一个例子;
# 数据类型小结
类型 | ||
---|---|---|
数值 | 连续 | 离散 |
身高,年龄,收入 | 书中的页数,路上的汽车数量 | |
分类 | 定序 | 定类 |
调查评级 | 性别,汽车品牌 |
要拆分数据类型,主要有两大块:数值和分类 数值可以进一步分为连续
与离散
类型可以进一步分为定序
与定类
# 总结
我们会在生活中使用的不同的数据类型,当我们在现实生活中使用数据时,它可能不是很干净,有时会有错字或者值缺失,在这种情况下,拥有数据方面的专业知识并了解数据类型可以帮助我们清理数据。理解数据类型也可以帮助我们创建可视化来解释数据。
# 分析数值数据
分析数值数据主要有四个方面:
center
集中趋势测量spread
离散程度测量shape
数据的形状outliers
异常值
# 分析分类数据
分析分类数据的方法通常是查看落入每个组独立个体的数量或比例。例如,如果我在看汽车的品牌,我们会关心街上每个品牌有多少量车,或者每个品牌汽车占有的比例如何。
# 集中趋势测量
集中趋势测量的方式有三种:
Mean
均值Median
中位数Mode
众数
# 集中趋势测量-均值
均值在数学中通常称为平均数或预期值,我们将所有值相加,如何除以数据集中所有测量值的个数来计算均值。
# 集中趋势测量-中位数
中位数将我们的数据氛围两部分,一半低于它,一半高于它。如何计算中位数取决于我们有奇数个观察值还是有偶数个观察值。 如果我们有奇数个观察值,中位数直接是中间那个数字。例如,如果我们有7个观察值并按从小到大排列,则中位数是第四个值。如果我们有9个观察值,则中位数是第五个值。 如果我们有偶数个观察值,中位数是中间两个值的平均值。丽日我们有8个观察值并从小到大排列,则计算第四个和第五个值的平均值。 要计算中位数,我们必须首先对值排序。
# 集中趋势测量-众数
众数是指一组数据中出现次数最多的数据值。一个数据集中可能会有多个众数,也可能没有众数。
无众数:如果数据集中的所有值出现的频数相同,则不存在众数;例如:1,1,2,2,3,3,4,4这一组数据集,因为所有观察值发生的次数相同,所以无众数。 多个众数:如果两个或多个数据出现的次数都是最多的,该组数据集则有多个众数;例如:1,1,2,2,2,3,3,3,其中2和3都出现了三次,出现的频率最高,而其他的值值出现了两次,所以该组数据有多个众数。
# 总结
我们利用下面这个表格来理解这三种数据:
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 |
---|---|---|---|---|---|---|
5 | 3 | 10 | 15 | 8 | 10 | 62 |
这个表格分别表示周一至周日我在街边见到汽车的数量。如果要预计我在任意一天会看到多少量车,我们就可能会选择多种不同的方式来回答这一问题。例如,这取决于哪天或者哪周,但可能很多时候这就涉及到数据的均值或平均值。但从上面表格的数据来看,均值并未测量集中趋势的最佳方法,对于该数据集,我们可以看到均值(16。14)似乎不在数据的中间位置,七天中只有一天看到的车辆比均值多,而且最后的数量变成了小数。 如果用中位数来描述刚才的问题,我们首先要将一周的数据排序,然后取中间的数值10来作为任意一天集中趋势数据的描述。 如果用众数来描述这个问题,那么我们要去这一组数据中找到出现频次最高的数,所以这一组数据的众数是10,我们也可以说可能我们一天会看到10辆车。 我们使用平均数还是中位数或者众数来描述数据集,很大程度上取决于我们对数据集的形状以及是否有异常值。
# 表达式
表达式是用来传达数学思想的通用语言,我们可以将表达式当成学术和工业界专业人士用来传达数学思想的通用语言。表达式一直以来勇于表达如何解决问题,符号表达式让难以用语言表达的想法变得更容易传达。
# 随机变量
我有一个在线博客,我经常会在博客上面写一些学习笔记,同时我又在博客上售卖自己的技术课程。这时就有人会问,你的博客每日的访问量是多少?每天课程的购买情况是什么样的呢? 这时候我们就可以用一个表格来描述一下这些数据:
日期 | 访问量 | 授课量 |
---|---|---|
01/01 | 100 | 0 |
01/02 | 821 | 12 |
01/03 | 312 | 7 |
随机变量是某些进程的可能值占位符。如前所述,符号能帮我们简化复杂的意义,我们看到随机变量可以用大写字母表示(X,Y,Z是表示随机变量的常用方法) 我们可能有随机变量X,它是博客的访问量的可能值的占位符。或者随机变量Y,它是网站授课量的可能值的占位符。 大写字母与小写字母随机变量我们常用大写字母表示,每当我们观察到这些随机变量的结果,就用相同字母的小写表示。例如:
日期 | 访问量(X) | 授课量(Y) |
---|---|---|
01/01 | x1 | y1 |
01/02 | x2 | y2 |
01/03 | x3 | y3 |
# 常用的表达式
聚合是一种将多个数字转换为较少数字的方法。求和是一种常见的聚合方式。用于对值求和的符号我们常用Σ来表示。 例如:我们想求网站的访问量,x1=100 x2=821 x3=312,如果我们用传统的表达式对前三个值求和可以写成:x1+x2+x3。 使用新的表达式可以写成:$$\sum_{i=1}^n{x_i}$$i代表起始的位置,3代表结束的位置。 均值我们可以用x-bar来表示x数据集的均值,x̄表示x数据集的均值
# 离散程度测量
离散程度测量用户告诉我们数据之间的分散程度,常见的离散程度测量包括:
- 极差
- 四分位差(IQR)
- 标准差
- 方差
# 五数概括法
五数概括法包括5个值:
- 最小值:数据集中的最小值
- Q1(第一四分位数):排序后第25%处的值
- Q2(中位数):排序后数据第50%处的值
- Q3(第三四分位数):排序后数据第75%处的值
- 最大值:数据集中的最大值
极差: 又称全距,是最大值和最小值之间的差值。 四分位差: Q3和Q1之间的差值
# 标准差
标准差是最常见的数据离散程度度量之一,它的定义为每个观察值与均值之间的平均差异。
# 总结
- 方差与标准差都能用于比较两组不同数据的离散程度。方差/标准差较高的一组数据相比较低的一组数据,其分布更为广泛。但是有可能只有一个(或多个)异常值提高了方差或者标准差,而大多数数据实际上比较集中。
- 在比较两个数据集之间的离散程度时,每个数据集的单位必须相同。
- 当数据与货币或经济有关时,方差/标准差更高则表示风险越高
- 在实践中,标准差比方差更常用,因为它使用原始数据集的单位。
标准差常用于评估金融风险,帮助确定药物在医学研究中的意义,以及测量预测类计算的结果误差。例如预测明天的降雨量或通勤时间。理解特定数据集的离散程度对很多领域都非常重要。
# 形状与异常值
形状 | 均值与中位数 | 应用场景 |
---|---|---|
对称(正态分布) | 均值=中位数 | 身高,体重,误差,降雨量 |
右偏态 | 均值>中位数 | 呼叫中心的电话间隔时间,灯泡多久熄灭 |
左偏态 | 均值<中位数 | 成绩百分比,死亡年龄,资产价格变动 |
均值与中位数的关系是普遍性结论,并不适用于所有情况,具体的关系以数据计算结果为准。
我们了解到异常值是明显偏离我们其余数据点的点,这会极大的影响均值和标准差等度量,而对五数概括法中的第一四分位数、中位数、第二四分卫数的影响较小。我们常用箱线图来识别并标识异常值。
当出现异常值时,我们应该考虑以下几点:
- 注意到它们的存在以及对概括性度量的影响
- 如果是人为失误导致,需要删除或改正
- 了解它们为什么会存在,以及对我们要回答的关于异常值的问题的影响
- 当有异常值时,报告五数概括法的值通常能比均值和标准差等度量更好的体现异常值的存在
# 描述统计与推论统计
描述统计是用来描述收集的数据。 推论统计是实用我们收集的数据对更大的总体数据得出结论。
推论统计包括:
- 总体:我们想要研究的整个群体 (自己全部的产品和对手全部的产品)
- 参数:描述总体的数值摘要 (100元--市场平均产品单价)
- 样本:总体的子集 (对手的10个产品)
- 统计量:描述样本的数值摘要(110元--对手产品单价)
- 推论:使用从样本中获得的信息,得出关于总体的结论(总体价格低于对手产品价格)
更好的进行推断统计,我们需要抽取一个准确的代表我们感兴趣的人群的样本。一个常用的数据收集方法是通过调查。
# 解决问题框架
跨行业数据挖掘标准流程(CRISP-DM)
# CRIPS-DM步骤
- 业务理解
- 数据理解
- 数据准备
- 分析/建模
- 模型评估
- 模型发布/可视化
# 业务理解
业务理解这个初步阶段着重于业务角度了解项目目标和要求,然后将这些理解转化为数据挖掘问题的定义,拟定达成业务目标的初步方案。可以使用决策模型,特别是使用决策模型和符号标准构建的模型。 业务理解需要考虑:
- 需要做出哪些决策?
- 需要获得哪些信息,来做这些决策?
- 什么类型的分析能够获取决策所需的信息?
# 数据理解
任何商业问题可以被解决之前,需要知道所需的数据是什么,可用数据是什么,这一点是非常重要的,对于业务模型来说,哪些因素可能驱动明天的需求是十分有效的,比如说有一些可能重要的因素有:这一天是周几,还有月份和年份,要知道那个小说的温度,甚至是之前几个小时的温度都是很重要的。 数据理解阶段从数据收集活动开始,然后借由一些活动来熟悉数据、检测数据质量问题、对数据进行初步理解,或探索数据中比较有趣的数据子集,进而形成对潜在信息的假设。 数据理解需要考虑:
- 需要什么数据?
- 有什么数据可用?
- 数据的重要特征是什么?
# 数据准备
理解业务问题,有助于分析准备数据,在开始准备时,如果不进行一些活动准备,数据很少能直接使用,准备数据一般包括以下一个或多个操作:数据收集、清理、格式化、混合和取样。在收集数据时,可能需要从组织内的多个来源收集数据,使用的数据可能有一些问题,这就需要在分析之前解决,比如像数据格式不正确或数据缺失,你可能需要通过更改日期字段的显示方式,重命名字段甚至旋转数据来格式化数据,类似使用数据透视表。你可能希望将数据与其他数据集混合或组合以增加其他变量。
数据准备阶段涵盖了从原始粗糙数据中构建最终数据集(将作为建模工具的分析对象)的全部工作。数据准备工作可能被实施多次,而且其实施顺序并不是预先设定好的。这一阶段的任务主要包括:制表、记录、数据变量的选择和转换,以及为适应建模工具而进行数据清理等等
数据准备的常用步骤:
- 收集: 收集数据时,你可能需要从组织内的多个来源收集数据
- 清理: 你使用的数据集可能有一些问题需要在分析之前解决。这可能包括数据不正确或丢失
- 格式化: 你可能需要通过更改字段的显示方式,重命名字段,甚至旋转数据来格式化数据
- 混合: 你可能希望将数据与其他数据集进行混合或组合,以增加其他变量,类似于在Excel做vlookup函数
- 数据抽样: 可能需要对数据集进行取样,并使用更易于管理的记录数
# 分析与建模
在这一阶段,我们需要选择和应用各种各样的建模方法,并将模型的才是校准为最佳值。通常情况下,同一种数据挖掘问题有多种适用方法。一些建模方法对数据形式有具体的要求。因此,往往需要返回数据准备阶段。
分析/建模步骤:
- 确定用什么方法来解决问题
- 确定有助于解决问题的重要因素或变量
- 构建解决问题的模型
- 运行模型并移至模型评估阶段
# 模型评估
在模型的最终部署之前,务必要更全面的评估模型,并检查构建模型所执行的步骤,确保其能正确实现业务目标。一个关键目标是确定是否存在一些尚未充分考虑的重要业务问题。在此阶段结束时,应对数据挖掘结果的使用作出决定。
模型评估步骤:
- 观察模型上的关键结果
- 确保结果在业务问题的情境中有意义
- 确定是否继续下面的步骤还是返回上一阶段
- 必要时重复多次
# 模型发布和可视化
创建好模型并不意味着项目结束,即使模型的目的是提高对数据的理解,所获得的理解仍然需要以一种对客户有用的方式被组织和呈现。根据需求的不同,部署阶段可以简单到只生成一份报告,也可以非常复杂,像实现可重复的数据存储或者数据挖掘过程。在许多情况下,往往是客户而非数据分析师执行部署步骤。即使由分析师部署了模型,客户也必须了解需要执行的操作,以便实际利用已构建的模型。
注意事项:
- 根据分析,确定呈现见解的最佳方式
- 根据观众,确定呈现见解的最佳方式
- 确保共享的信息不要过量
- 使用结果向观众讲述故事
- 对于更复杂的分析,可以需要向观众展示分析问题解决过程
- 始终注明使用的数据源出处
- 确保分析可以支持需要作出的决策