2016-04-04 2 views
1

У меня есть следующие lavaan модели:сдерживающими коварьировать-путь в 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"). Как я могу это сделать?

ответ

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, чтобы ограничить эти оценки параметров равными по группам.

Я считаю, что это должно делать то, что вы имеете в виду.

+0

Почему существуют 3 v1 (или v2) в каждом из ограничений? – histelheim

+0

Я думаю, что причина, по которой у вас есть 3 v1, заключается в том, что вы принимаете 3 группы, и я принимаю 2 группы, правильно? – histelheim

+1

@histelheim Да, это правильно. Длина векторов определяется числом групп. Если у вас две группы, вы просто используете 'c (v1, v1)' и 'c (v2, v2)'. – paulstey

Смежные вопросы