Rdata003 探索性数据分析
2020-09-16 本文已影响0人
caoqiansheng
1. 探索性数据分析(exploratory data analysis,EDA)
使用可视化方法和数据转换来系统化地探索数据
- 变量(列属性)
一种可测量的数量、质量或属性。 - 值
变量在测量时的状态。变量值在每次测量之间可以发生改变。 - 观测 (行属性)
或称个案,指在相同条件下进行的一组测量(通常,一个观测中的所有测量是在同一时间对同一对象进行的)。一个观测会包含多个值,每个值关联到不同的变量。有时我们会将观测称为数据点。 - 表格数据
一组值的集合,其中每个值都关联一个变量和一个观测。如果每个值都有自己所属的“单元”,每个变量都有自己所属的列,每个观测都有自己所属的行,那么表格数据就是整洁的。
2. 对分布进行可视化表示
- 对变量分布进行可视化的方法取决于变量是分类变量还是连续变量
- 如果仅在较小的集合内取值,那么这个变量就是分类变量。分类变量在 R 中通常保存为因子或字符向量。要想检查分类变量的分布,可以使用条形图
- 如果可以在无限大的有序集合中任意取值,那么这个变量就是连续变量。数值型和日期时间型变量就是连续变量的两个例子。要想检查连续变量的分布,可以使用直方图
3.典型值
条形图和直方图都用比较高的条形表示变量中的常见值,而用比较矮的条形表示变量中不常见的值。没有条形的位置表示数据中没有这样的值。为了将这些信息转换为有用的问题,我们看看是否具有意料之外的情况
4.异常值
异常值是与众不同的观测或者是模式之外的数据点。有时异常值是由于数据录入错误而产生的;有时异常值则能开辟出一块重要的新科学领域。如果数据量比较大,有时很难在直方图上发现异常值。
5.缺失值
如果在数据集中发现异常值,但只想继续进行其余的分析工作,那么有 2 种选择
- 将带有可疑值的行全部丢弃
通常不建议使用这种方式,因为一个无效测量不代表所有测量都是无效的。此外,如果数据质量不高,若对每个变量都采取这种做法,那么你最后可能会发现数据已经所剩无几
diamonds2 <- diamonds %>%
filter(between(y, 3, 20))
- 使用缺失值来代替异常值。
最简单的做法就是使用 mutate() 函数创建一个新变量来代替原来的变量。你可以使用 ifelse() 函数将异常值替换为 NA
diamonds2 <- diamonds %>%
mutate(y = ifelse(y < 3 | y > 20, NA, y))
ifelse()
ifelse(test, yes, no), test 是一个逻辑向量,如果 test 为 TRUE,函数结果就是第二个参数 yes 的值;如果 test 为 FALSE,函数结果就是第三个参数 no 的值
ggplot2 在绘图时会忽略缺失值,但会提出警告以通知缺失值被丢弃了
ggplot(data = diamonds2, mapping = aes(x = x, y = y)) +
geom_point()
#> Warning: Removed 9 rows containing missing values #> (geom_point).
# 要想不显示这条警告,可以设置 na.rm = TRUE
ggplot(data = diamonds2, mapping = aes(x = x, y = y)) +
geom_point( na.rm = TRUE)
6.相关变动
如果变动描述的是一个变量内部的行为,那么相关变动描述的就是多个变量之间的行为。相关变动是两个或多个变量以相关的方式共同变化所表现出的趋势。查看相关变动的最好方式是将两个或多个变量间的关系以可视化的方式表现出来。如何进行这种可视化表示同样取决于相关变量的类型
6.1 分类变量与连续变量
6.2 两个分类变量
要想对两个分类变量间的相关变动进行可视化表示,需要计算出每个变量组合中的观测数量。完成这个任务的其中一种方法是使用内置的 geom_count() 函数
6.3 两个连续变量
对于两个连续变量间的相关变动的可视化表示,我们已经介绍了一种非常好的方法:使用geom_point() 画出散点图。可以将相关变动看作点的模式。