22.关于Exploratory Data Analysis之二

2021-08-05  本文已影响0人  心惊梦醒

【上一篇:21.关于Exploratory Data Analysis之一】
【下一篇:23.关于Exploratory Data Analysis之三】

    关于典型值(typical values)
    在条形图和直方图中,高的bar展示变量常见的值,低的bar展示不常见的值,没有bar存在的地方表示值没有出现在你的数据中。将这些转换成有用的问题来寻找预料之外的东西。

ggplot(data = smaller, mapping = aes(x = carat)) +
  geom_histogram(binwidth = 0.01)
图片.png

    相似值的聚类表明数据中存在subgroup,为了理解这些subgroup,问:

ggplot(data = faithful, mapping = aes(x = eruptions)) + 
  geom_histogram(binwidth = 0.25)
图片.png

    上面的许多问题将促使您探索变量之间的关系,例如,看看一个变量的值是否可以解释另一个变量的行为。我们很快就会讲到。


    关于不寻常的值(Unusual values)
    Outliers(离群值)指的是那些不寻常(unusual)的observations,哪些看起来不符合模式的数据点(data points)。有时候outliers是数据输入错误,其他时候可能会表明重要的新科学。当你有很多数据的时候,outliers很难从直方图中看出来。例如下图,你只能从x轴上有不寻常的宽度限制看出有异常值。

ggplot(diamonds) + 
  geom_histogram(mapping = aes(x = y), binwidth = 0.5)

    从上面的图可以看到,在0,30,60处有异常值。用dplyr将这些异常抓出来:

> (unusual <- diamonds %>% 
     filter(y < 3 | y > 20) %>% 
     select(price, x, y, z) %>%
     arrange(y))
# A tibble: 9 x 4
  price     x     y     z
  <int> <dbl> <dbl> <dbl>
1  5139  0      0    0   
2  6381  0      0    0   
3 12800  0      0    0   
4 15686  0      0    0   
5 18034  0      0    0   
6  2130  0      0    0   
7  2130  0      0    0   
8  2075  5.15  31.8  5.12
9 12210  8.09  58.9  8.06

    y这个变量代表钻石的width(单位是mm),从结果可以看到,x/y/z为0的数据点是不正确的,y=31.8和y=28.9的也是难以置信的,因为他们那么大却只有几万美元的价格。
    在有或没有异常值的情况下重复分析是很好的实践。如果它们对结果的影响很小,并且你不知道它们为什么在那里,那么用缺失的值替换它们,然后继续前进是合理的。然而,如果它们对你的结果有实质性的影响,你不应该毫无理由地放弃它们。你需要找出导致这些错误的原因(比如数据输入错误),并在报告中表明你删除了这些错误。


x轴太宽了

    bin里的observations数量太少,所以会看不到柱子,我们可以用coord_cartesian()函数放大y轴:

![coord_cartesian放大y轴](https://img.haomeiwen.com/i17752145/b19543f442e48d98.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    插播部分_:cartesian是笛卡尔的意思,coord_cartesian()函数的描述是笛卡尔坐标系是最常见的一种坐标系。在坐标系统上设置限制将缩放绘图(就像你用放大镜看它一样),而不会像在比例上设置限制那样改变底层数据。coord_cartesian()函数的参数列表如下:

coord_cartesian(
  xlim = NULL,
  ylim = NULL,
  expand = TRUE,
  default = FALSE,
  clip = "on"
)

xlim,ylim:对x轴和y轴的限制
expand:如果为TRUE,则在限制中添加一个小的扩展因子,以确保数据和轴不重叠。如果为FALSE,则严格根据数据或xlim/ylim进行限制。
default:这是默认坐标系统吗?如果FALSE(默认值),那么用另一个坐标系统替换这个坐标系统将创建一条消息,提醒用户坐标系统正在被替换。如果为TRUE,则该警告被抑制。
clip:绘图应该被裁剪到绘图面板的范围内吗?on的设置(默认)表示是,“off”的设置表示否。在大多数情况下,“on”的默认值不应该被更改,因为设置clip =“off”会导致意想不到的结果,off会允许在图的任何地方绘制数据点,包括在图的边缘。如果通过xlim和ylim设置了限制,而一些数据点超出了这些限制,那么这些数据点可能会显示在坐标轴、图例、情节标题或图片边界等地方。

ggplot2本身也有与这里的xlim/ylim参数工作方式略有不同的xlim()和ylim()函数
ggplot2本身的函数会扔掉超出限制的数据点。

    练习题
    1. 探索每个x, y, z变量在钻石中的分布。你学到了什么?想想一个钻石,你如何决定它的长度、宽度和深度。
    2. 探索价格的分布。你有没有发现什么不寻常或令人惊讶的事情?(提示:仔细考虑binwidth,确保你尝试的值范围很广。)
    3. 有多少钻石是0.99克拉?一克拉是多少?你认为造成这种差异的原因是什么?
     4. 当放大直方图时,比较和对比coord_cartesian()与xlim()或ylim()。如果你不设置binwidth会发生什么?如果你试图放大只显示半条,会发生什么?

     关于典型值和异常值的介绍结束了,下面是关于缺失值的介绍。

【上一篇:21.关于Exploratory Data Analysis之一】
【下一篇:23.关于Exploratory Data Analysis之三】

上一篇下一篇

猜你喜欢

热点阅读