“:”和“|”之间的区别在R线性建模中

时间:2012-02-15 16:25:00

标签: r operators

在R中构建线性模型时,以下两个语句之间有什么区别:

lm(y ~ x | z)
lm(y ~ x : z)

lm function documentation记录了:运算符,如下所示:

  

表格的说明第一:第二表示通过首先将所有术语与所有术语的交互获得的术语集合。

该页面上没有提及|语法。有什么区别?

1 个答案:

答案 0 :(得分:10)

:用于互动。在您的示例lm(y ~ x : z)中,公式表示“y取决于xz之间的互动效应。

通常,除非您还包含单个词xz,否则您不会在此类线性回归中包含互动。 x * zx + x:z + z的缩写。

AFAIK |根本不使用lm。它当然没有出现在demo("lm.glm", "stats")的任何例子中。它用于nlme包中的混合效果模型。

来自?intervals.lme的示例:

model <- lme(distance ~ age, Orthodont, random = ~ age | Subject)
ranef(model)

此处|表示“分组依据”。也就是说,对于每个受试者来说,适合年龄的不同随机效应。 (查看ranef(model),您可以看到每一行对应一个人(主题)的随机效果。)