1

我正在关注混合效果模型的教程。本教程使用来自 mlmRev 包的 egsingle 数据集。作为教程的一部分,作者使用 groupedData() 作为:

egsingle <- groupedData(math ~ year | schoolid/childid, data = egsingle)

有人可以帮我理解“schoolid/childid”是什么意思吗?

请注意,schoolid 和 childid 都是因素!

此外,在本教程的后面,作者采用大小为 50 的样本并使用 lmList() 来拟合每个主题的 OLS 回归,方法是:

egsingle <- groupedData(math ~ year | schoolid/childid, data = egsingle)
samp <- sample(levels(egsingle$childid), 50)
level2.subgroup <- subset(egsingle, childid %in% samp)

# fitting a separate OLS regression line to each student
level2 <- lmList(math ~ year | childid, data = level2.subgroup)
plot(augPred(level2))

当我运行上面的 lmList 命令时,我收到以下错误:

Error in eval(expr, envir, enclos) : object 'childid' not found
In addition: Warning messages:
1: In lmList(math ~ year | childid, data = level2.subgroup) :
lmList does not (yet) work correctly on groupedData objects
2: In Ops.factor(schoolid, childid) : ‘/’ not meaningful for factors

谁能帮我弄清楚为什么会出现这些错误?

4

1 回答 1

2
  1. 正如 Roman Luštrik 评论的那样,schoolid/chilidid意味着“学校 ID”和“嵌套在学校 ID 中的孩子 ID”都是分组变量。嵌套格式形式上构建了高层和低层之间的交互;启发式地,它让计算机知道“学校 1 中的孩子 1”和“学校 2 中的孩子 1”是不同的个体。

  2. 您在lmListnlmelme4中的版本之间存在冲突问题。如果您从干净的 R 会话中准确运行这些行:

## load data without loading package & dependencies
data(egsingle, package="mlmRev")
library("nlme")

egsingle <- groupedData(math ~ year | schoolid/childid, data = egsingle)
samp <- sample(levels(egsingle$childid), 50)
level2.subgroup <- subset(egsingle, childid %in% samp)

# fitting a separate OLS regression line to each student
level2 <- lmList(math ~ year | childid, data = level2.subgroup)
plot(augPred(level2))

它应该可以正常工作。如果您在加载之前(在搜索路径中之前也是library("mlmRev") 如此),nlme或者如果您明确指定以免意外拾取.nlmelme4nlme::lmListlme4::lmList

于 2015-07-19T00:06:47.617 回答