【问题标题】:What does the ( | ) syntax mean in an R formula?( | ) 语法在 R 公式中是什么意思?
【发布时间】:2021-03-18 10:51:35
【问题描述】:

我正在关注一个教程并遇到以下语法:

# 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)

我对@9​​87654324@ 语法有点困惑。我查看了线性混合模型语法lmer 的文档,发现: “随机效应项通过竖线(|) 将设计矩阵的表达式与分组因素分开”来区分。

所以我假设1S 这里是两个随机效应术语。 S 作为随机效应是有意义的,因为它是一个可以代表参与者的随机变量。但是1 怎么是随机变量呢? 1| 在这里是什么意思?

【问题讨论】:

标签: r lme4 r-formula


【解决方案1】:

| 符号在公式中以不同的方式在不同的函数中使用。在线性混合模型的情况下,它用于表示随机效应。在混合模型中可以使用不同类型的随机效应:

  • 随机截距,其中截距(但不是斜率)因受试者而异,
  • 随机斜率,其中斜率(但不是截距)因受试者而异
  • 随机斜率和截距,两者都因主题而异。斜率和截距可以建模为相关或不相关。

公式中的1 用于指定使用其中的哪一个。这里是some examples, taken from my book

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 的不同值。

| 的类似但符号不同的用法可以在来自partykitlmtree 的公式中找到,该公式用于将决策树与节点中的线性模型拟合。在这种情况下,公式类似于y ~ x1 + x2 | z1 + z2 + z3,其中y 是响应变量,x 变量是线性模型中的解释变量,z 变量是用于构建树的变量。

【讨论】:

  • 啊,我明白了,谢谢! (很荣幸得到您的回复,我过去曾多次参考过您的教科书:))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
相关资源
最近更新 更多