我有以下lavaan
型号:
model <- ' i =~ 1*t1 + 1*t2 + 1*t3 + 1*t4 + 1*t5 + 1*t6 + 1*t7 + 1*t8 + 1*t9 + 1*t10 + 1*t11 + 1*t12 + 1*t13+ 1*t14 + 1*t15 + 1*t16 + 1*t17 + 1*t18 + 1*t19 + 1*t20
s =~ 0*t1 + 1*t2 + 2*t3 + 3*t4 + 4*t5 + 5*t6 + 6*t7 + 7*t8 + 8*t9 + 9*t10 + 10*t11 + 11*t12 + 12*t13 + 13*t14 + 14*t15 + 15*t16 + 16*t17 + 17*t18 + 18*t19 + 19*t20
t8 ~~ 0.01*t8
t17 ~~ 0.01*t17
t18 ~~ 0.01*t18
# regressions
s ~ h_index
i ~ h_index'
fit_UNconstrained <- growth(model, data=growth_data, group = "type")
summary(fit_UNconstrained)
现在,我想创建一个模型,限制路径s ~ h_index
和i ~ h_index
在所有组("type"
)之间相等。我怎么能做到这一点?
答案 0 :(得分:1)
我认为这与将潜在因素的指标添加分组约束的方式相同。如果是这种情况,那么您需要做的就是在想要跨组约束的预测变量旁边添加标签矢量。在您的情况下,您有两个要约束的参数估计值,因此您需要添加两个向量。
矢量的长度取决于您拥有的组数,并且所有组的标签都相同。
假设你有三组;然后你的代码看起来像下面这样。
model <- "
i =~ 1*t1 + 1*t2 + 1*t3 + 1*t4 + 1*t5 + 1*t6 + 1*t7 + 1*t8 + 1*t9 + 1*t10 + 1*t11 + 1*t12 + 1*t13+ 1*t14 + 1*t15 + 1*t16 + 1*t17 + 1*t18 + 1*t19 + 1*t20
s =~ 0*t1 + 1*t2 + 2*t3 + 3*t4 + 4*t5 + 5*t6 + 6*t7 + 7*t8 + 8*t9 + 9*t10 + 10*t11 + 11*t12 + 12*t13 + 13*t14 + 14*t15 + 15*t16 + 16*t17 + 17*t18 + 18*t19 + 19*t20
t8 ~~ 0.01*t8
t17 ~~ 0.01*t17
t18 ~~ 0.01*t18
# regressions
s ~ c(v1, v1, v1)*h_index
i ~ c(v2, v2, v2)*h_index
"
fit_UNconstrained <- growth(model, data=growth_data, group = "type")
summary(fit_UNconstrained)
此处向量c(v1, v1, v1)
和c(v2, v2, v2)
告诉lavaan将这些参数估计值限制为在各组之间相等。
我相信这应该做你想到的。