R公式中的()语法是什么意思?
我正在学习教程并遇到以下语法:
# assume 'S' is the name of the subjects column
# assume 'X1' is the name of the first factor column
# assume 'X2' is the name of the second factor column
# assume 'X3' is the name of the third factor column
# assume 'Y' is the name of the response column
# run the ART procedure on 'df'
# linear mixed model syntax; see lme4::lmer
m = art(Y ~ X1 * X2 * X3 + (1|S), data=df)
anova(m)
我对(|)语法有点困惑。我查看了线性混合模型语法的文档lmer,发现:“随机效应术语的区别在于垂直条(|)将设计矩阵的表达式与分组因子分开”。
所以我想1和S这里有两个随机效应方面。S作为随机效应是有意义的,因为它是一个可以代表参与者的随机变量。但是1随机变量是怎么来的呢?这里的1和|是什么意思?
回答
该|符号在不同功能的公式中以不同方式使用。在线性混合模型的情况下,它用于表示随机效应。可以在混合模型中使用不同类型的随机效应:
- 随机截距,其中截距(但不是斜率)因受试者而异,
- 随机斜率,其中斜率(但不是截距)因受试者而异
- 随机斜率和截距,其中两者在主题之间有所不同。斜率和截距可以建模为相关或不相关。
在1公式中用于指定这些中的一个使用哪一个。这里有一些例子,摘自我的书:
library(lme4)
# Random intercept:
m1 <- lmer(Reaction ~ Days + (1|Subject), data = sleepstudy)
# Random slope:
m2 <- lmer(Reaction ~ Days + (0 + Days|Subject), data = sleepstudy)
# Correlated random intercept and slope:
m3 <- lmer(Reaction ~ Days + (1 + Days|Subject), data = sleepstudy)
# Uncorrelated random intercept and slope:
m4 <- lmer(Reaction ~ Days + (1|Subject) + (0 + Days|Subject),
data = sleepstudy)
所以在你的例子中,(1|S)用于添加随机截距,对应于 的不同值S。
|在lmtreefrom 的公式中可以找到类似但符号上不同的用法partykit,它用于在节点中拟合具有线性模型的决策树。在这种情况下,公式看起来像y ~ x1 + x2 | z1 + z2 + z3,其中y是响应变量,x变量是线性模型中的解释变量,z变量是用于构建树的变量。
- ah I see, thanks! (and an honor having you reply, I've referred to your textbook many times in the past 🙂 )