←
PDF 384 / 520 Exercises
→
English · PDF 384
Original PDF page 384
中文 · PDF 384

这看起来像随机噪声,说明我们的模型在捕捉数据集中的模式方面做得很好。

练习

    1. 除了使用 lm() 拟合直线,你还可以使用 loess() 拟合平滑曲线。请使用 loess() 代替 lm(),在 sim1 上重复模型拟合、网格生成、预测和可视化的过程。结果与 geom_smooth() 相比如何?
    1. add_predictions() 与 gather_predictions() 和 spread_predictions() 是配套的。这三个函数有什么区别?
    1. geom_ref_line() 的作用是什么?它来自哪个包?为什么在展示残差的图中显示参考线是有用且重要的?
    1. 为什么你可能想查看绝对残差的频率多边形图?与直接查看原始残差相比,它有哪些优缺点?

公式与模型族

在使用 facet_wrap() 和 facet_grid() 时你已经见过公式了。在 R 中,公式提供了一种获得“特殊行为”的通用方式。它们不会立即计算变量的值,而是将其捕获下来,以便由函数进行解释。

R 中的大多数建模函数都使用从公式到函数的标准转换。你已经见过一个简单的转换:y ~ x 被转换为 y = a_1 + a_2 * x。如果你想了解 R 实际做了什么,可以使用 model_matrix() 函数。它接受一个数据框和一个公式,并返回一个定义模型方程的 tibble:输出中的每一列对应模型中的一个系数,而函数始终是 y = a_1 * out1 + a_2 * out_2。对于 y ~ x1 这个最简单的情形,它向我们展示了一些有趣的东西:

df <- tribble( ~y, ~x1, ~x2, 4, 2, 5, 5, 1, 6