如何在R中运行双重交叉分类的三级分层线性模型?HLM中的DIF

如何在R中运行双重交叉分类的三级分层线性模型?HLM中的DIF,r,lme4,multilevel-analysis,R,Lme4,Multilevel Analysis,我正在尝试一种新的分层线性模型,但数据结构让我怀疑这在R中是否可行。我以前尝试的模型是错误指定的(oops),现在我不确定如何处理这项工作。我在HLM的课程包括多层次模型和交叉分类模型,但不是三层次双交叉分类模型 第一级: 对二分评分项目的反应。范畴依赖 变量,所以我想我将使用glmer()。(~150万条项目回复) 第2级: 响应嵌套在项中-一个项将有许多响应 (来自不同的人),但单个响应不会与 多个项目 响应也嵌套在测试实例中-一个测试实例将有许多响应(50),但一个响应不能链接到多个

我正在尝试一种新的分层线性模型,但数据结构让我怀疑这在R中是否可行。我以前尝试的模型是错误指定的(oops),现在我不确定如何处理这项工作。我在HLM的课程包括多层次模型和交叉分类模型,但不是三层次双交叉分类模型

第一级:
  • 对二分评分项目的反应。范畴依赖 变量,所以我想我将使用
    glmer()
    。(~150万条项目回复)
第2级:
  • 响应嵌套在项中-一个项将有许多响应 (来自不同的人),但单个响应不会与 多个项目
  • 响应也嵌套在测试实例中-一个测试实例将有许多响应(50),但一个响应不能链接到多个测试实例
  • 项目与测试实例嵌套,测试实例嵌套在项目中。一个项目将出现在多个测试实例中(每次有人采用表单A),一个测试实例将与多个项目相关(测试表单上的每个项目)
第3级:
  • 项目嵌套在测试表单中-一个表单上可以有多个项目,但(在本例中)项目不能出现在多个表单上
  • 测试实例嵌套在人员中-一个人可以参与多个测试实例,但一个测试实例不能由多人执行
  • 测试实例也嵌套在位置中-一个位置可以有多个测试实例,但一个测试实例不能出现在多个位置
  • 测试表单嵌套在人中,人嵌套在测试表单中。一个人可以填写多份测试表格,一份测试表格可以由多人填写
  • 人员嵌套在位置中,位置嵌套在人员中-一个人可以在多个位置参加测试,多个人可以在单个位置参加测试
  • 测试表格嵌套在位置中,位置嵌套在测试表格中-测试表格可以在多个位置使用;一个位置可以用来管理许多测试表单
我假设某些位置变量可能会对特定项目的表现产生影响,但我认为这会受到参加测试的人的能力等因素的影响。我在我感兴趣的位置、学生和项目层面上有解释变量,比如噪音水平、GPA和主题

如果您有任何问题或建议,请告诉我


我不明白为什么这是个问题。“现代”混合模型框架,与R中的大多数可用框架一样(
nlme
lme4
glmmTMB
,等等),不包含(或要求)任何明确的嵌套声明;它们只需要指定定义每个分组变量的因子。我不明白为什么

(1 |学生)+(1 |位置)+(1 |实例)+(1 |项目)+(1 |表格)
不行。有一些事情要考虑,我不知道他们是否会出现在你的问题中:

  • 如果你的回答是二元的,你需要确保你没有随机效应,因为每个观察都属于一个单独的随机效应组(这种变化水平无法确定)。例如,如果每个学生在每个位置最多回答一个问题(即,没有人在某个位置参加测试超过一次,并且他们在每个测试中回答问题的次数也不会超过一次),那么任何给定的学生/项目/位置组合将在您的数据集中出现零次或一次,并且
    (1 |位置:学生:物品)
    将无法识别
  • 在某些情况下,变量之间的交互可能是可识别的(例如,测试项目的难度是否因位置而异?);这可以指定为
    (1 |位置:项目)
    ,但您必须小心一点,确保交互级别不会唯一识别观察结果(见上一点)
您可能会发现GLMM FAQ非常有用,尤其是


PS我绝对建议您尝试使用原始数据的一个子集(150万项当然可以使用
glmer
,但速度会很慢……;您可能还希望指定
control=glmerControl(calc.derivs=FALSE)
跳过部分(慢)诊断检查

感谢您的输入!听到语法我很欣慰-我没有看到交叉分类模型中有什么特别之处,使它们不同于直接的三级模型。我想这没有什么区别,真的吗?您能进一步说明“每个观察都属于单独的随机效应组”的含义吗?你有没有这样一个例子?我来看看这个常见问题。谢谢!是的,没有区别。混合模型的一些实现在交叉(和部分交叉)实验设计中有困难,但不是这个问题中列出的那些。