首页 理论教育 基本解释性数据分析简介

基本解释性数据分析简介

时间:2023-06-25 理论教育 版权反馈
【摘要】:在此,我们提供一份航班数据供大家学习分析。我们将结合R语言对于数据进行样例分析。图2-10列出数据中所有的NA代码因此,NA所对应的航班就是已取消的。图2-12旧金山飞机延误的相关源数据柱状图从这个柱状图里面你能看出什么?它只是用一个盒子来表示数据,它的极限分别是0.25和0.75,在箱形图中间的一条黑线则是它的中位数。

基本解释性数据分析简介

我们所运用的数据样本,是美国交通运输部关于飞机准点到达率的统计。

世界上每天都有数以千计的航班在全球飞行,对于航班数据的分析不但能够帮助机场优化航班管理,同时也能调整航班班次,让用户享受到更准时舒适的航班。在此,我们提供一份航班数据供大家学习分析。

我们将结合R语言对于数据进行样例分析。[7]

由于数据样本量比较庞大,我们仅选取其中的一部分进行分析,以旧金山的飞机准点率作为样本进行分析。

首先我们需要导入数据并且读取数据(图2-8)。

图2-8 旧金山飞机时间相关源数据读入代码

我们可以看到这组数据中包括了许多飞机在旧金山机场的信息,那么这个机场的航班有多少准点率,又有多少航班被延误甚至取消呢?首先让我们来研究一下“DepDelay”这一列,我们该如何研究这些数据呢?又能呈现哪些可视化?(图2-9)

图2-9 与飞机时间相关源数据读入代码

在这里我们要注意的是“NA”,让我们列出在这一组数据中所有的NA(图2-10)。

图2-10 列出数据中所有的NA代码

因此,NA所对应的航班就是已取消的。(Cancelled=1)

在完成数据的基本处理之后,我们将选择适当的图表进行数据展示(如图2-11数据绘图)。

图2-11 选择性数据代码展示

首先,让我们来画一下有关飞机延误的柱状图,见图2-12。

图2-12 旧金山飞机延误的相关源数据柱状图

从这个柱状图里面你能看出什么?

你觉得在这里的中位数和平均值有多少代表性?它们的区别又是什么?

(1)移除一些数据的影响

那些在数据表中的NA在图中是怎么显示的?如果它并没有在图中表现出来,那么这对于柱状图又意味着什么?

在这种情况下,可以添加一些“假”数据,来让它呈现在图上(图2-13,图2-14)。

图2-13 旧金山飞机时间相关源数据矫正代码

图2-14 旧金山飞机时间相关源数据柱状图

(2)构建一个柱状图

我们应该如何构建柱状图?从实用性上面来说,柱状图大多都是根据数据的范围,把它们平均地分成K个间隔,我们把它称之为(www.xing528.com)

b1≤b2≤…≤b K,

然后我们再数每个柱形当中的观测值。

(3)关于柱状图的间隔

在如图2-15例子中,我们对同一组数据做不同间隔的柱状图(图2-16)。

图2-15 旧金山飞机时间相关源数据柱状图代码

图2-16 旧金山飞机时间相关源数据柱状图3例

(a)默认间隔 (b)间隔=100 (c)间隔=1 000

哪个柱状图看上去更合理,应该如何选择间隔(breaks)?

(4)箱形图

箱形图是一种非常有用的可视化工具。它和柱状图在某种方面有相似之处,都是明显地显示出数据的分布。但是,对于分布来说,箱形图是一种很简化的分布。它只是用一个盒子来表示数据,它的极限分别是0.25和0.75(25%和75%),在箱形图中间的一条黑线则是它的中位数。并且箱形图对于表示出异常值也非常有用(图2-17,图2-18)。

图2-17 旧金山飞机时间相关源数据箱形图代码

图2-18 旧金山飞机时间相关箱形图

最上方的小圆点被称为“异常值”,在这里我们不去细究。在这个样本里面我们可以看到很多在样本范围之外的值,这并不是说这些值是“错误的”。

看到这里你一定会想,为什么我会选择这样一个比较有限制的可视化来做介绍,首先,箱形图强调的是分布的不同,它能很清晰、方便地表现出主要数据的大致分布,以及大致的异常值分布。

进一步来说,由于它的简便性,我们能够更容易地通过几组箱形图放在一起来作分析(图2-19,图2-20)。

图2-19 旧金山飞机时间相关源数据多组箱形图代码

图2-20 旧金山飞机时间相关多组箱形图—航空公司区分

注:AA—美国航空;AS—阿拉斯加航空;B6—捷蓝航空;DL—达美航空;F9—美国边疆航空;HA—夏威夷航空。

如果要用柱状图去呈现这种可视化是很难的,在图2-20中我们要注意的是,其中的异常值已经影响到我们所做的可视化效果,因此我将把它掩盖(mask)掉(图2-21,图2-22)。

图2-21 旧金山飞机时间相关源数据多组箱形图(无详细散点)代码

图2-22 旧金山飞机时间相关多组箱形图—航空公司区分(无详细散点)

注:在源码上与“有散点的箱形图”的区别在于关闭了outline的赋值即采用了outline=false。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈