[25]《R数据科学》相关变动

2020-11-11  本文已影响0人  灰常不错

相关变动是两个或多个变量以相关的方式共同变化所表现出来的趋势。查看相关变动最好的方式是将两个或多个变量间的关系以可视化的方式表现出来。如何进行可视化表示取决于相关变量的类型。

分类变量和连续变量

我们经常需要探索连续变量的分布,这种分布按照一个分类变量的值可以分为几个组。但geom_freqpoly()的默认外观并不太适合这种比较,因为高度是计数给出的,如果一个观测值的数量明显少于其他组的话,就很难看出差别。比如,我们探索diamonds数据集中钻石的价格是如何随质量而变化的。

ggplot(diamonds)+geom_freqpoly(aes(price,color=cut),binwidth = 500)
image.png

总体来看,各组的数量差别太大了,很难看出分布上的差别。

ggplot(diamonds)+geom_bar(aes(cut))

为了让比较变得容易,需要改变y轴的显示内容,不在显示计数,而是显示密度。密度是对计数的标准化,这样每个频率多边形下边的面积都是1。

ggplot(diamonds,aes(price,..density..))+geom_freqpoly(aes(color = cut),binwidth=500)
image.png

令人惊讶的是,图片显示出,一般钻石(质量最差)的平均价格是最高的。

如果用分类变量显示连续变量,可以使用箱线图。每张箱线图包括以下内容:

使用geom_boxplot()查看切割质量分类的价格分布:

ggplot(diamonds,aes(cut,price))+geom_boxplot()
image.png

虽然看不出太多分布的信息,但箱线图更加紧凑,因此可以更容易的比较多个类别。同样的,我们可以从箱线图中看出,质量更好的钻石的平均价格更低!

查看mpg数据集中的class变量,用分类变量class显示连续变量hwy:

ggplot(mpg,aes(class,hwy))+geom_boxplot()
image.png
为了更容易发现趋势,可以基于中位数对class重新排序,这里用reorder()函数
ggplot(mpg)+geom_boxplot(aes(reorder(class,hwy,FUN=median),hwy))
image.png

如果变量名很长,那么将图形选装90°会好一些,可以使用coord_flip()函数

ggplot(mpg)+geom_boxplot(aes(reorder(class,hwy,FUN=median),hwy))+coord_flip()
image.png
上一篇下一篇

猜你喜欢

热点阅读