CFA with clusters PreviousNext
Mplus Discussion > Confirmatory Factor Analysis >
Message/Author
 JW posted on Monday, August 11, 2014 - 2:38 pm
Dear Drs,

I am running a CFA on data from 2 separate studies. In each study the data were collected across a number of teams.

I feel I should account for clustering at the 'study' and 'team' level as not doing that may lead to bias in estimates and SDs (correct me if I am wrong).

This is the script I wrote:

cluster =study team;

USEVARIABLES are
bQPR1 - bQPR22;

ANALYSIS:
TYPE = TWOLEVEL COMPLEX;
estimator =mlr;

MODEL:
%within%
TOT by bQPR1 - bQPR22;

OUTPUT: stdyx;

I only specified the %within% option as the items in the CFA are questionnaire items which were answered by the participants in the study. So there is no need to specify the %between% option.

Is script OK?

Many thanks!
 Bengt O. Muthen posted on Monday, August 11, 2014 - 11:08 pm
If your studies consist of independent samples of individuals you would treat this as a multiple-group situation, not as clustering/multilevel.

Even if you measure variables for individuals, these variables can have between-level variation. This means that you want to specify a between-level model such as a two-level factor model (see UG examples).
 JW posted on Tuesday, August 12, 2014 - 9:46 am
Hi Bengt,

Thanks for your reply - the samples from the two studies are independent so are you suggesting that using a multigorup approach, I:

1. test for measurement invariance; and if I find that the assumption of invariance holds

2. I can run the PCA on the data from the two studies

Thus, I should not worry about specifying the study as a cluster

Please correct me if I am wrong (which UG examples should I look at?)

thanks again!
 JW posted on Tuesday, August 12, 2014 - 12:20 pm
one more question, could this just not be a case which requires Multilevel CFA ?
 Bengt O. Muthen posted on Tuesday, August 12, 2014 - 8:16 pm
I meant that "study" can be treated as multiple-group. "Team" would still call for multilevel I think. A paper that deals with both issues is on our website:

Muthén, B., Khoo, S.T. & Gustafsson, J.E. (1997). Multilevel latent variable modeling in multiple populations. Unpublished technical report.
 JW posted on Thursday, August 14, 2014 - 1:54 pm
Thanks Bengt,

I have now read the paper you recommended.

I noticed that in your paper, school clusters were completely independent across catholic and public schools.

In contrast, in my dataset some of the teams were recruited in both study 1 and study 2 so the clusters within the studies are not completely independent - is this an issue?
 Bengt O. Muthen posted on Thursday, August 14, 2014 - 9:16 pm
Yes, this is an issue and may call for 3-level modeling.
 JW posted on Tuesday, August 26, 2014 - 1:57 pm
hi Bengt,

Thanks for your earlier reply - following your comment and example 9.22 I set up the Mplus commands as follows:

However, it did not run so smoothly:

1. I received the following warning:

*** WARNING
Clusters for TEAM with the same IDs have been found in different clusters
for STUDY. These clusters are assumed to be different because clusters for

how can I specify this data complexity in Mplus?

2. more worringly the whole thing just crashed and I received this message:

THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY.
FAILURE TO GENERATE TRUNCKATED NORMAL DEVIATE.

THE PROBLEM OCCURRED IN CHAIN 1.

THE PROBLEM OCCURRED ON THE BETWEEN LEVEL 3.

THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY.
THE THETA MATRIX IS NOT POSITIVE DEFINITE,
AS IT SHOULD BE. PROBLEM INVOLVING VARIABLE BQPR1.

THE PROBLEM OCCURRED IN CHAIN 1.

I am not sure what this mean - what can I do to solve this?

Thanks again!
 Bengt O. Muthen posted on Tuesday, August 26, 2014 - 4:02 pm
Please send those 2 outputs and data to support with your license number.
Back to top
Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action: