groupedData() 的问题
issues with groupedData()
我正在学习有关混合效果模型的教程。本教程使用来自 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
谁能帮我弄清楚为什么会出现这些错误?
正如 Roman Luštrik 评论的那样,schoolid/chilidid
意味着 "school ID" 和 "child ID nested within school ID" 都是分组变量。嵌套形式正式构建了上下层的交互;启发式地,它让计算机知道 "child 1 in school 1" 和 "child 1 in school 2" 是不同的个体。
您遇到了 nlme
和 lme4
包中 lmList
版本之间的冲突问题。如果您 运行 完全 来自干净 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
(因此 nlme
在搜索路径中 lme4
之前),它也应该有效,或者如果您明确指定 nlme::lmList
这样您就不会不小心选择 lme4::lmList
.
我正在学习有关混合效果模型的教程。本教程使用来自 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
谁能帮我弄清楚为什么会出现这些错误?
正如 Roman Luštrik 评论的那样,
schoolid/chilidid
意味着 "school ID" 和 "child ID nested within school ID" 都是分组变量。嵌套形式正式构建了上下层的交互;启发式地,它让计算机知道 "child 1 in school 1" 和 "child 1 in school 2" 是不同的个体。您遇到了
nlme
和lme4
包中lmList
版本之间的冲突问题。如果您 运行 完全 来自干净 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
(因此 nlme
在搜索路径中 lme4
之前),它也应该有效,或者如果您明确指定 nlme::lmList
这样您就不会不小心选择 lme4::lmList
.