美文网首页
22.关于Exploratory Data Analysis之二

22.关于Exploratory Data Analysis之二

作者: 心惊梦醒 | 来源:发表于2021-08-05 23:53 被阅读0次

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

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

    • 哪些值是最常见的?为什么?
    • 哪些值是稀少的?为什么?是你期望的吗?
    • 你能看到一些不寻常的模式吗?怎么解释?
          例如,下面的直方图提示了几个有趣的问题:
    • Why are there more diamonds at whole carats and common fractions of carats?
    • 为什么每个峰右边的钻石比左边的要多?
    • 为什么没有大于3克拉的钻石?
    ggplot(data = smaller, mapping = aes(x = carat)) +
      geom_histogram(binwidth = 0.01)
    
    图片.png

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

    • 每个cluster内部的observations是怎么相似的?
    • 不同cluster的observations有何不同?
    • 你如何解释或描述这些cluster?
    • 为什么cluster的出现可能会误导人?
          下面的柱状图显示了黄石国家公园Old Faithful Geyser272次喷发的时长(以分钟为单位)。喷发时间似乎分成两组:短喷发(大约2分钟)和长喷发(4-5分钟),但中间很少。
    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之三】

    相关文章

      网友评论

          本文标题:22.关于Exploratory Data Analysis之二

          本文链接:https://www.haomeiwen.com/subject/zmppvltx.html