我目前正在使用R-packagelavaan进行多组验证性因子分析。该模型有两个潜变量,每个潜变量有四个指标。我已经建立了组间的(部分)标量不变性现在要确定组的潜在均值。为了计算潜在均值,我计划使用效应编码方法(Little, t.d., Slegers, d.w., &Card, 2006),这将指标(每个潜在变量)的负荷平均限制为1.0,每个潜在变量内指标的截值之和限制为0。
我已经能够为因子加载设置约束,但是我正在努力解决潜在均值的截距求和为0的语法问题。
我的问题:
- 我如何定义我的cfa模型,使指标的截点之和为零?(在每个潜在变量内)
这是这个模型,对于这个模型,我能够将测量指标的因子负载限制为平均为1。
model <- "
Beliefs =~ NA*item_1 + b1*item_1 + b2*item_2 + b3*item_3 + b4*item_4
Feelings =~ NA*item_5 + f1*item_5 + f2*item_6 + f3*item_7 + f4*item8
# loadings sum up to 1
b1 == 4 - b2 - b3 - b4
f1 == 4 - f2 - f3 - f4
"
fit <- lavaan::cfa(model,
data = data,
group = "grouping_variable")
summary(fit, standardized = TRUE, fit.measures = TRUE)
我如何进一步定义我的cfa模型,使潜在变量的截距额外相加为零?
谢谢你的帮助!
我如何定义我的CFA-Model,使指标的截距之和为零?
您将遵循相同的过程:
- 标记每个指示器的截距
- 将1约束为其他 的和的补
来自?model.syntax
帮助页面的注意,拦截是通过回归1 (variable ~ 1
)来定义的。对于第一个因素:
item_1 ~ foo1*1
item_2 ~ foo2*1
item_3 ~ foo3*1
item_4 ~ foo4*1
foo4 == -1*(foo1 + foo2 + foo3)
单个标签意味着它在组之间是相等的,但是你说你有部分不变性,所以至少有一个截距在组之间是不同的。在这种情况下,你需要一个标记向量来表示这个截距。然后使用不变的截距来定义约束。
item_1 ~ foo1*1
item_2 ~ foo2*1
item_3 ~ c(foo3, bar3)*1 # different across 2 groups
item_4 ~ foo4*1
foo4 == -1*(foo1 + foo2) # only invariant intercepts
我如何进一步定义我的cfa模型,使潜在变量的截距额外相加为零?
不确定你是否真的想要约束潜在的截距/均值求和为零,因为当用效果编码的截距识别它们时,它们都可以自由估计。但是如果你设置std.lv=TRUE
,那么你实际上可以在相同的效应编码约束下估计所有的潜在均值。没有必要,因为潜在位置/尺度总是任意的(与Little等人误导性的标题相反)。