2016-04-04 10 views
1

における共変量パスの制約:Iは<code>lavaan</code>モデル以下た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_indexi ~ h_indexは、すべてのグループ("type")を横切る等しくなるようにモデルを作成したいです。どうすればこれを達成できますか?

答えて

1

潜在因子の指標にグループ単位の制約を追加するのと同じ方法で動作すると思います。その場合は、グループ全体に制約をかけたいプレディクタの横にラベルのベクトルを追加するだけです。あなたの場合、拘束したいパラメータ推定値が2つあるので、2つのベクトルを追加します。

ベクトルの長さは、所有しているグループの数に依存し、ラベルはすべてのグループで同じになります。

3つのグループがあるとします。あなたのコードは次のようになります。ここで

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はい、それは正しいです。ベクトルの長さは、グループの数によって決定されます。 2つのグループがある場合は、単に 'c(v1、v1)'と 'c(v2、v2)'を使用します。 – paulstey

関連する問題