我正在尝试分析五个不同级别的等级结构,在这个等级结构中可以汇总学生对教师的评分。
教师评分是从每学期每个班级注册的学生中收集的。
评分(level1)嵌套在学生(level2)中,他们自己嵌套在(level3)或类中>(level4),它也嵌套在层次结构的较高级别中。
lmer
函数或其他函数可以处理这样的分析吗?
如果是,语法是什么?
答案 0 :(得分:2)
让我们定义一些您在帖子中没有提供的符号:
Y
=评分
ID
=学生ID
section
=课程部分
class
= class
我还假设你说学生在课程和课程之间进行了交叉分类。在lme4
中,我们通常假设交叉分类是独立的。
然后你有:
lm1 <- lmer(Y ~ <FE vars> + (1|class/ID) + (1|section/ID), data= df)
这里我们使用/
来表示层次结构的级别(例如section/ID
),斜杠左侧的级别更高。更多级别为XYZ/section/ID
。此外,不同的()
元素显示交叉分类。您也可以使用(class || section)
而(1|...)
表示随机截距,但没有随机斜率。
所有这些信息都在vignette中,我们鼓励您阅读。
答案 1 :(得分:1)
如果所有级别都按照问题建议真正嵌套(即不交叉分类:每个评分都由一个学生完成,每个学生只有一个部分,每个部分都在只有一个类......),那么具体的答案就是你要包括
(1|class/section/student/rating)
作为lmer
模型中的随机效应词。
如果你有更多级别,你可以使用包含更高级别的扩展版本,例如
(1|toplevel/nextlevel/nextlevel2/.../bottomlevel)
正如@Alex建议的那样,这在小插图中有描述(表2,第6页),尽管它在示例中仅显示了两个嵌套级别。
@Alex还建议您的数据可能会进行交叉分类 - 学生可能会在多个课程中提供评分 - 在这种情况下,您可能需要添加其他字词,例如
(1|class/section/student/rating) + (1|student)
将允许不同班级和部分的学生产生一致的效果。
lme
函数(在nlme
包中)也可以处理任意数量的嵌套级别,尽管处理交叉分类更难(并且它可能比{{1}慢对于大型数据集)。