【上一篇:25.关于Exploratory Data Analysis之六】
【下一篇:27.总结Explore和资源推荐】
数据中的模式为关系提供了线索。如果两个变量之间存在系统的关系,它将在数据中以模式的形式出现。如果你发现了一个模式,问问自己:
这种模式是出于巧合(即随机)吗?
如何描述模式所隐含的关系?
这种模式所暗示的关系有多强?
还有哪些变量可能影响这段关系?
如果你观察数据的单个子组,这种关系会改变吗?
Old Faithful喷发持续时间和喷发之间的等待时间散点图显示了一种模式:较长的等待时间与较长的喷发时间有关联。而且图中还有两个星云团。
# faithful是一个272行2列的数据框
ggplot(data = faithful) +
geom_point(mapping = aes(x = eruptions, y = waiting))
Old Faithful喷发时间与等待时间的关系
模式为数据科学家提供了最有用的工具之一,因为它们揭示了共变。如果你认为variation是一种产生不确定性的现象,那么covariation就是一种减少不确定性的现象。如果两个变量共变,您可以使用一个变量的值来更好地预测第二个变量的值。如果共变是由于因果关系(一种特殊情况),那么您可以使用一个变量的值来控制第二个变量的值。
模型是从数据中提取模式的工具。例如diamonds数据中cut和price的关系很难理解,因为cut和carat,而carat和price是紧密相关的。我们可以用一个模型来消除price和carat之间的紧密关系,这样我们就可以探索剩下的微妙之处。下面的代码拟合一个模型,该模型预测carat的price,然后计算残差(预测值和实际值之间的差)。一旦carat的影响被去除,剩下的就是钻石价格的view了。
下面这段代码我不理解,但书中说了本书的最后一部分专门讲模型,前面先学完data wrangling和programming,后面关于模型是什么以及模型的工作原理就很好理解了。(好吧,我相信书说的。)
library(modelr)
mod <- lm(log(price) ~ log(carat), data = diamonds)
diamonds2 <- diamonds %>%
add_residuals(mod) %>%
mutate(resid = exp(resid))
ggplot(data = diamonds2) +
geom_point(mapping = aes(x = carat, y = resid))
建模处理后的图
一旦你去除carat和cut之间的紧密关系,你就可以看到你所期望的cut和price之间的关系:相对于它们的大小,质量更好的钻石更贵。
ggplot(data = diamonds2) +
geom_boxplot(mapping = aes(x = cut, y = resid))
好神奇,越来越想知道模型到底做了什么了
到这为止,其实本书中的第一大节Explore,这一章节是介绍性的章节。下一篇是书中对这一篇的总结和推荐的一些资源。
【上一篇:25.关于Exploratory Data Analysis之六】
【下一篇:27.总结Explore和资源推荐】
网友评论