←
PDF 386 / 520 df # A tibble: 3 × 2 #> (Intercept) sexmale #> #> 1 1 1 #> 2 1 0 #> 3 1 1
→
English · PDF 386
Original PDF page 386
中文 · PDF 386

df <- tribble( ~ sex, ~ response, "male", 1, "female", 2, "male", 1 ) model_matrix(df, response ~ sex) #> # 一个 tibble:3 × 2 #> (Intercept) sexmale #> #> 1 1 1 #> 2 1 0 #> 3 1 1

你可能想知道为什么 R 不再创建一个 sexfemale 列。问题在于那样会创建一个基于其他列就能完全预测出来的列(即 sexfemale = 1 - sexmale)。遗憾的是,这为什么是个问题的具体细节超出了本书的范围,但基本上它会造成一个过于灵活的模型族,将存在无穷多个与数据同样接近的模型。

不过幸运的是,如果你专注于可视化预测结果,就不需要担心具体的参数化方式。让我们看一些数据和模型来具体说明这一点。这是来自 modelr 的 sim2 数据集:

ggplot(sim2) + geom_point(aes(x, y))

我们可以对它拟合一个模型,并生成预测:

mod2 <- lm(y ~ x, data = sim2)