1118 chapter17 &18

使用 modelr 包对R包中的建模函数进行包装,使其可以支持管道操作

  • 找出最佳模型“牛顿-拉夫逊搜索” → optim()
  • 拟合线性的工作 lm()
    sim1_mod <- lm(y~x, data = sim1)
ggplot(sim1a, aes(x = x, y = y)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

模型可视化

  • 使用 modelr::data_grid()生成分布均匀的数值网络
  • 使用modelr::add_predictions()添加预测值
  • 使用geom_abline()绘制预测值
  • add_residuals()将残差添加到数据中。【残差:平均值总为0,应该为随机的噪声】

p253练习题

sim1_loess <- loess(y ~ x, data = sim1)
grid_loess <- sim1 %>%
  add_predictions(sim1_loess)
ggplot(sim1, aes(x = x, y = y)) +
  geom_point() +
  geom_line(aes(x = x, y = pred), data = grid_loess, colour = "red")
  1. gather_predictions() and spread_predictions()允许同时为多个模型添加predictions
  2. geom_ref_line() 添加一个参考线到图中

公式和模型族

model_martix()
向模型中加入截距项:默认加入一个值全是1的项;不想要,使用-1丢弃

分类变量

交互项(连续变量和分类变量)

两种模型:+ 或者 *

  • 模型中,每条线具有相同斜率,不同截距
  • 模型中,斜率、截距都不同
    检查残差看哪个更好

交互项(两个连续变量)

  • seq_range()的三个参数
  • pretty = TRUE,生成“漂亮的”序列
  • trim = 0.1,截断10%的尾部值
  • expand = 0.1,某种程度上是trim()的反函数,可以将取值范围扩大10%

变量转换

可以用来近似表示非线性函数

缺失值

默认情况下,R会丢失缺失值,options(na.action = na.warn),确保我们收到警告信息

chapter18

模型:模式 + 残差
构建模型为了明确表示观察到的效果

  • 若模型需要未明确提供的变量,data-grid()会自动使用“典型”值来填充,连续变量,模型使用中位数;分类变量,模型使用最常见的值
    将日期分为多个学期
term <- function(date){
cut(date,
breaks = ymd(20130101, 20130605, 20130825, 20140101),
labels = c("spring", "summer", "fall")
)
}
  • 使用领域知识可以改进模型

推荐阅读更多精彩内容

  • 心里有你的人 何须问,何须求,何须找 女人的幸福很简单 一个温暖的怀抱 一个可靠的肩膀 一个把你当宝的人 一个会拼...
    13597821818阅读 304评论 0 0
  • 放学后的校园 有娇羞的花儿 偶尔也有流云路过 唯独没有孩子的欢闹声 无生(声)何来校园一说,不过建筑罢了
    随遇而安的lw阅读 39评论 0 0
  • 今天是圣诞节,学校的艺术节,下午欣赏各色舞蹈,歌曲,相声小品。 然后看了一会电影。看电影的时候已经到了4:00,电...
    我爱炎热的夏季阅读 14评论 0 0