I have a problem. I use r package "lavaan" to make confirmatory analysis.
I run the following code:
adhd.model <- ' F1 =~ V1 + V2 + V3+V4+V5+V6+V7+V8+V9
F2 =~ V10+V11+V12+V13+V14+V15+V16+V17+V18
G =~ V1 + V2 + V3+V4+V5+V6+V7+V8+V9+V10+V11+V12+V13+V14+V15+V16+V17+V18'
fit <- cfa(adhd.model, data=dataset,std.lv=TRUE)
But as an output I get an error:
Warning message:
In lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats, :
lavaan WARNING: could not compute standard errors!
lavaan NOTE: this may be a symptom that the model is not identified.
My output looks like this:
lavaan (0.5-18) converged normally after 162 iterations
Number of observations 804
Estimator ML
Minimum Function Test Statistic 602.032
Degrees of freedom 114
P-value (Chi-square) 0.000
Model test baseline model:
Minimum Function Test Statistic 12752.466
Degrees of freedom 153
P-value 0.000
User model versus baseline model:
Comparative Fit Index (CFI) 0.961
Tucker-Lewis Index (TLI) 0.948
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -15843.727
Loglikelihood unrestricted model (H1) -15542.711
Number of free parameters 57
Akaike (AIC) 31801.454
Bayesian (BIC) 32068.761
Sample-size adjusted Bayesian (BIC) 31887.754
Root Mean Square Error of Approximation:
RMSEA 0.073
90 Percent Confidence Interval 0.067 0.079
P-value RMSEA <= 0.05 0.000
Standardized Root Mean Square Residual:
SRMR 0.027
Parameter estimates:
Information Expected
Standard Errors Standard
Estimate Std.err Z-value P(>|z|)
Latent variables:
F1 =~
V1 2.069
V2 3.388
V3 1.595
V4 0.868
V5 0.866
V6 1.618
V7 -0.766
V8 -0.295
V9 2.729
F2 =~
V10 1.731
V11 1.484
V12 1.542
V13 1.462
V14 1.653
V15 1.252
V16 1.070
V17 1.286
V18 1.425
G =~
V1 1.193
V2 2.453
V3 0.687
V4 -0.095
V5 -0.148
V6 0.754
V7 -1.645
V8 -1.044
V9 1.679
V10 0.871
V11 0.835
V12 0.803
V13 0.583
V14 0.707
V15 0.296
V16 0.340
V17 0.547
V18 0.636
Covariances:
F1 ~~
F2 0.970
G -0.989
F2 ~~
G -0.956
Variances:
V1 0.447
V2 0.232
V3 0.388
V4 0.319
V5 0.378
V6 0.411
V7 0.301
V8 0.528
V9 0.248
V10 0.410
V11 0.406
V12 0.554
V13 0.404
V14 0.312
V15 0.476
V16 0.472
V17 0.411
V18 0.490
F1 1.000
F2 1.000
G 1.000
Could you please help me to get rid of this error?
Best Answer
If I understand your model correctly, you are trying to fit a bifactor model: There is a "general" factor G that is assumed to underlie all the manifest variables, and there are "specific" factors, F1 and F2, each one explaining variance in a subdomain of items. One important aspect of bifactor model is: All factors (general and specific) must be orthogonal to each other.
"A bifactor structural model specifies that the covariance among a set of item responses can be accounted for by a single general factor that reflects the common variance running among all scale items and group factors that reflect additional common variance among clusters of items, typically, with highly similar content. It is assumed that the general and group factors all are orthogonal." (Reise, 2012, p. 668)
I am not familiar with your data and your model so I cannot evaluate what is going on. However, there is one thing can be said for sure based on the information you provided:
Your code allows factors to be correlated to each other; this leads your model to be non-identified. Function
cfa
in lavaan permits latent factors to be correlated by default: If you enter ?cfa in your R console, you will find thatcfa
setsorthogonal = FALSE
.Assuming the bifactor model is appropriate for your data, the easiest way to solve your issue is to add
orthogonal = TRUE
to your code:fit <- cfa(adhd.model, data=dataset, std.lv=TRUE, orthogonal=TRUE)
[There are other ways to force factors to be orthogonal via lavaan syntax.]
Reise, Steven P. (2012). "The rediscovery of bifactor measurement models." Multivariate Behavioral Research 47 (5): 667-696.