estimating composite reliability

430 views
Skip to first unread message

Alex Rautu

unread,
Apr 19, 2014, 3:27:31 PM4/19/14
to lav...@googlegroups.com
Hello,
I've been using AMOS to compute the composite reliability of a number of cognitive tasks and I'd like to learn how to do the same thing using lavaan.
Composite reliability as discussed by Raykov (1997) is estimated in an SEM model, where the factor indicators are simultaneously predicted by a general factor (T) and predictive of another latent factor (X) that approximates the total observed score - this is referred to as a phantom variable. Composite reliability is thus the correlation (or squared correlation) between T (the true score) and X (the observed score). This correlation between T and X is not indicated in the model but rather is obtained via an "implied" correlation matrix consisting of all latent/observed variables in the model.

Using lavaan, the model and sem configuration is the following (for 4 composites):

model1='
x <~ 1*x1 + 1*x2 + 1*x3 + 1*x4
t =~ 1*x1 + x2 + x3 + x4
'

cr
=sem(model1, data)  
#all default options allowed

I've tried this model on several datasets and it always gives me an error:
Warning message:
In lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats,  :
  lavaan WARNING: could not compute standard errors!

My question is: is the lavaan model misspecified in any obvious ways? And if not, what is the cause of the error?

I should mention that I was able to obtain the implied correlation matrix despite this error and it matches the AMOS estimates within .001 difference, which is excellent.
FYI, the implied correlation matrix is obtained with
inspect(cr, what='cor.all')

Thanks


yrosseel

unread,
Apr 22, 2014, 2:44:41 AM4/22/14
to lav...@googlegroups.com
On 04/19/2014 09:27 PM, Alex Rautu wrote:
> *My question is: is the lavaan model misspecified in any obvious
> ways? And if not, what is the cause of the error? *

There is not error. There is only a warning: standard errors can not be
computed, because the model is not identified. One way to identify the
model is to remove the (zero) covariance between x and t:

model1='
x <~ 1*x1 + 1*x2 + 1*x3 + 1*x4
t =~ 1*x1 + x2 + x3 + x4
x ~~ 0*t
'

cr <- sem(model1, data)
inspect(cr, what='cor.lv')


Yves.

Reply all
Reply to author
Forward
0 new messages