R for Data Science总结之——modelr(2)

本文通过R的modelr库对钻石价格和每天航班数量进行建模分析。在钻石价格分析中,发现克拉、颜色和切工与价格相关,并构建复杂模型降低残差。在航班数量分析中,揭示了周六航班的特殊性,考虑季节性和节假日因素改进模型,提高拟合效果。
摘要由CSDN通过智能技术生成

R for Data Science总结之——modelr(2)

本章针对真实数据集进行建模实践:

library(tidyverse)
library(modelr)
options(na.action = na.warn)

library(nycflights13)
library(lubridate)

为什么低质量的钻石更加昂贵?

首先查看diamonds数据集:

ggplot(diamonds, aes(cut, price)) + geom_boxplot()
ggplot(diamonds, aes(color, price)) + geom_boxplot()
ggplot(diamonds, aes(clarity, price)) + geom_boxplot()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再查看连续变量克拉与价格的关系:

ggplot(diamonds, aes(carat, price)) + 
  geom_hex(bins = 50)

在这里插入图片描述
再针对小于2.5克拉的钻石,抛弃极值点:

diamonds2 <- diamonds %>% 
  filter(carat <= 2.5) %>% 
  mutate(lprice = log2(price), lcarat = log2(carat))
ggplot(diamonds2, aes(lcarat, lprice)) + 
  geom_hex(bins = 50)

在这里插入图片描述
对对数化数据进行建模:

mod_diamond <- lm(lprice ~ lcarat, data = diamonds2)

grid <- diamonds2 %>% 
  data_grid(carat = seq_range(carat, 20)) %>% 
  mutate(lcarat = log2(carat)) %>% 
  add_predictions(mod_diamond, "lprice") %>% 
  mutate(price = 2 ^ lprice)

ggplot(diamonds2, aes(carat, price)) + 
  geom_hex(bins = 50) + 
  geom_line(data = grid, colour = "red", size = 1)

在这里插入图片描述
再查看残差:

diamonds2 <- diamonds2 %>% 
  add_residuals(mod_diamond, "lresid")

ggplot(diamonds2, aes(lcarat, lresid)) + 
  geom_hex(bins = 50)

再查看之前的几个变量与残差的关系:

ggplot(diamonds2, aes(cut, lres
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值