如何用R编写多级SEM模型?

问题描述 投票:0回答:3

我正在使用多层次SEM来调查智力对团队冲突发生的影响,并考察多元文化团队中冲突对团队绩效的影响。智力是在个人层面上衡量的,冲突和绩效是在团队层面上衡量的。智力和冲突是潜在变量,其中每个变量都通过三个观察变量来测量(x1、x2、x3 用于测量智力,y1、y2、y3 用于测量冲突)。我正在通过 R 和 lavaan 包分析数据。这是我的代码:

model<-' 
level: 1 
intelligence=~x1+x2+x3
Level: 2
conflict=~y1+y2+y3
conflict~intelligence
performance~conflict'
fitmodel <- cfa(model, data=mydata, std.lv=FALSE, cluster="team_id")

但是,当我运行代码时出现此错误:

lav_data_full 中的错误(数据 = 数据,组 = 组,簇 = 簇,: lavaan 错误:数据集中缺少观察到的变量:情报

如果您能帮助我解决此错误,我将不胜感激。

r-lavaan multilevel-analysis
3个回答
1
投票

我从lavaan页面得到这个:(https://lavaan.ugent.be/tutorial/before.html

一些重要功能尚不可用:

完全支持分层/多级数据集(多级cfa、多级sem);然而0.6版本支持仅随机截取的两级cfa/sem,用于连续完整数据

支持除连续、二进制和序数之外的变量类型(例如:零膨胀计数数据、名义数据、非高斯连续数据)

支持离散潜在变量(混合模型、潜在类别)

我怀疑你违反了连续完整数据


0
投票

除了承认 lavaan 的 MSEM 有限之外,我还可以提供额外的指导,因为您的模型规范中存在一些缺陷:

  1. Lavaan 分别处理 1 级和 2 级模型。因此,如果您想在级别 2 中使用智能作为预测变量,则必须在级别 2 中再次指定测量模型。

  2. 我不是 SEM 专家,所以这一点可能是错误的。但总的来说,我确实对你们的 1 级和 2 级规格感到困惑。例如,如果您的 DV 是 Y,则 Y 应出现在级别 1 和级别 2,因为它具有组内和组间差异。但您在第 1 级仅指定一个测量模型,并在第 2 级指定一堆新测量模型。


0
投票

看来您没有在第2级中定义潜在变量“智力”。如果需要,每个潜在变量都必须在每个级别中重新定义。所以你的 Lavaan 代码应该如下所示:

model<-' 
level: 1 
intelligence=~x1+x2+x3
Level: 2
intelligence=~x1+x2+x3
conflict=~y1+y2+y3
conflict~intelligence
performance~conflict'
fitmodel <- cfa(model, data=mydata, std.lv=FALSE, cluster="team_id")
© www.soinside.com 2019 - 2024. All rights reserved.