祝大家除夕快乐啊! 一年顺利!
学习R语言书的时候,看到这么一个例子:
library(ggplot2)
data(diamonds)
ggplot(diamonds, aes(cut, price)) + geom_boxplot()
ggplot(diamonds, aes(color, price)) + geom_boxplot()
ggplot(diamonds, aes(clarity, price)) + geom_boxplot()
![](https://img.haomeiwen.com/i20297934/6d502df1d6ec66eb.png)
![](https://img.haomeiwen.com/i20297934/8e9d7f4f054c218d.png)
![](https://img.haomeiwen.com/i20297934/5585dd3e1ca9c70c.png)
可以看到无论是切工、颜色还是纯净度,竟然是差的价格更高(颜色J是颜色最差,纯净度是I1最差)。
感觉很违背常识,这是为什么呢?
首先看一下钻石的重量和价格的关系:
ggplot(diamonds, aes(carat, price)) + geom_hex(bins = 50)
![](https://img.haomeiwen.com/i20297934/1c551a8cbec1ccd6.png)
然后选取小于2.5(绝大部分)克拉的钻石和做对数变换可以得到:
library(tidyverse)
library(modelr)
diamonds2 <- diamonds %>%
filter(carat <= 2.5) %>%
mutate(lprice = log2(price), lcarat = log2(carat))
重新画图:
![](https://img.haomeiwen.com/i20297934/62f26df09b91b8e4.png)
可以看到质量大的价格就高,而质量不好的钻石普遍会比较重,这就导致了看起来质量差的钻石价格高。明天将分享一下解决方案~
网友评论