←
PDF 394 / 520 Transformations
→
English · PDF 394
Original PDF page 394
中文 · PDF 394

随着时间推移逐步构建你的模型。模型不必完美,只要能帮助你更多地揭示数据即可。

我花了一些时间研究残差,想弄清楚 mod2 是否比 mod1 表现更好。我认为确实如此,但差异相当细微。你可以在练习中亲自尝试一下。

变换

你也可以在模型公式中进行变换。例如,log(y) ~ sqrt(x1) + x2 会被转换为 y = a_1 + a_2 * x1 * sqrt(x) + a_3 * x2。如果你的变换涉及 +、*、^ 或 -,就需要用 I() 将其包裹起来,以免 R 将其视为模型设定的一部分。例如,y ~ x + I(x ^ 2) 会被翻译为 y = a_1 + a_2 * x + a_3 * x^2。如果忘记使用 I() 而写成 y ~ x ^ 2 + x,R 会将其计算为 y ~ x * x + x。x * x 表示 x 与自身的交互项,也就是 x 本身。R 会自动删除冗余变量,所以 x + x 会变成 x,这意味着 y ~ x ^ 2 + x 指定的是函数 y = a_1 + a_2 * x。这很可能不是你想要的结果!

同样,如果你对模型在做什么感到困惑,可以随时使用 model_matrix() 来确切查看 lm() 拟合的方程:

df <- tribble( ~y, ~x, 1, 1, 2, 2, 3, 3 ) model_matrix(df, y ~ x^2 + x) #> # A tibble: 3 × 2 #> (Intercept) x #> #> 1 1 1 #> 2 1 2 #> 3 1 3 model_matrix(df, y ~ I(x^2) + x) #> # A tibble: 3 × 3 #> (Intercept) I(x^2) x #> #> 1 1 1 1 #> 2 1 4 2 #> 3 1 9 3