CFA with dyadic data PreviousNext
Mplus Discussion > Confirmatory Factor Analysis >
 Donna Cherry posted on Thursday, January 18, 2007 - 5:58 pm

I would like to conduct a one-factor CFA on a set of 10 categorical co-parenting items collected from 111 couples. I have data from each spouse within the couple; there are no covariates and no weights. I have read through “Example 9.7: Two-level CFA with categorical factor indicators..” in the M-Plus Users Guide but would like to clarify
1. How to organize my data file. Specifically, I have one couple’s data per row with a COUPLE ID identifier and each item identified by a subscript to denote father or mother (e.g. F1 – F10, M1 – M10). Is this correct?
2. Since I just expect one co-parenting factor, my attempt at Model syntax is:

Fw BY F1 – F10 M1 – M10;
Fb BY F1 – F10 M1 – M10;

Is this correct? Am I missing anything?

Any feedback you can provide will be most appreciated!
 Linda K. Muthen posted on Friday, January 19, 2007 - 10:29 am
There are two ways you can approach couple data. The first way is a single-level analysis. Here you have one record per couple with different variables names for each member of the couple. This approach is described in the following paper:

Khoo, S.T. & Muthén, B. (2000). Longitudinal data on families: Growth modeling alternatives. Multivariate Applications in Substance use Research, J. Rose, L. Chassin, C. Presson & J. Sherman (eds.), Hillsdale, N.J.: Erlbaum, pp. 43-78.

The second way is a two-level analysis. Here each couple's data would reside on separate records and a cluster variable would specify the couple id. The cluster variable would be couple.
 Donna Cherry posted on Friday, January 19, 2007 - 11:40 am
 S.Arunachalam posted on Tuesday, September 11, 2012 - 2:19 pm
Prof. Muthen

I trying to do a CFA for 2 constructs with each having 5 categorical indicators. However these 2 constructs are answered (survey of 130 firms) by two persons (hence now 4 constructs) in each firm. Hence there is a dyad. Could you please direct me to files/handouts/articles where I can get an example to do this CFA for 4 constructs please. Also kindly suggest whether I should use 'analysis: type = complex ' OR 'analysis: type = twolevel'; how to arrive at a conclusion when to use which type of analysis for dyadic data? My sincere gratitude in advance.
 Linda K. Muthen posted on Tuesday, September 11, 2012 - 4:01 pm
TYPE=COMPLEX and TYPE=TWOLEVEL are two alternatives. A third it to take a multivariate approach. See the Topic 8 course handout on the website starting at Slide 52.
 S.Arunachalam posted on Wednesday, September 12, 2012 - 5:50 am
Prof. Muthen:

Thank you very much. I was looking more for simple/basic examples of CFA for actor partner interdependence model type (dyad of couples in same firm), like the two people here in my research where one is senior manager and the other his/her subordinate, however both answer the same two constructs. Kindly correct me here please because I thought slide 52/56 were more like growth models. Sincerely Arun
 Linda K. Muthen posted on Wednesday, September 12, 2012 - 6:55 am
Slide 52/56 can be applied to any model. The advantage is that you have access to more parameters. The non-independence of observations because of the dyad is taken into account by the multivariate nature of the data. You have a set of variables for each member of the dyad. If that is not of interest, you can use TYPE=COMPLEX or TYPE=TWOLEVEL. These are the three options you have for taking non-independence of observations into account.
 S.Arunachalam posted on Wednesday, September 12, 2012 - 10:01 am
Thank you for the clarification.
Could you please direct me to Mplus examples from book 'Dyadic data analysis by Kenny Kashy Cook'. Also to get a more thorough understanding of dyadic data analysis using SEM what are the papers/handouts/books by Muthen(s)/statmodel website should I refer to. Please advice. Sincerely Arun. Once again my sincere gratitude for your ever quick help/advice !
 Jean-Philippe Laurenceau posted on Thursday, September 13, 2012 - 9:28 am
Dear Arun--I have used Mplus to analyze dyadic data in thae past. I certainly agree with Linda's suggestion about the three alternative approaches to dyadic data in Mplus. I would go further and say that the multivariate (or wide) approach in Mplus would be the most straightforward and flexible way to go for the type of dyadic data that you are describing.

Dave Kenny has a website ( for his Dyadic Data Analysis book where there are example datasets and some code (but not for Mplus). If you point out a particular analysis that you would like to replicate in Mplus, feel free to note the chapter and page number and I can post the corresponding Mplus code to do it.

Best, J-P
 S.Arunachalam posted on Thursday, September 13, 2012 - 10:54 am
Dear Jean-Philippe: Thank you, very kind of you to help. I did run CFAs for the two constructs ( for each person- CEO & CEO's subordinate-Champion in the dyad ) using multivariate approach. However the model didn't converge. I thought the problem was complicated due to categorical indicators. Hence I tried param = theta. Still the model is not converging. But, am not very confident whether what am doing here is correct. Because the data file has 130 records with all the 10 indicators ( 5 for each construct) for each person in the dyad in the same row & in this multivariate approach am not explicitly telling mplus to account for the dyad say using some cluster variable (which is here the recordid itself)?
! CODE snippet
CATEGORICAL = champintl champDiversification champMA champSell champRD CEODiversification CEOMA CEOSell CEORD CEOIntl ;
param = theta;
iChamp Schamp | champDiversification@0 champMA@1 champSell@2 champRD@3 champintl@4 ;
iCEO sCEO | CEODiversification@0
CEOMA@1 CEOSell@2 CEORD@3 CEOIntl@4;
 Jean-Philippe Laurenceau posted on Saturday, September 15, 2012 - 8:31 am
What you have here looks more like a growth model specification and not the kind of factor model you described wanting to run earlier. I think the following might be closer to what you are looking for:

Champ BY champDiversification champMA champSell champRD champintl;
CEO BY CEODiversification CEOMA CEOSell CEORD CEOIntl;
champDiversification champMA champSell champRD champintl PWITH CEODiversification CEOMA CEOSell CEORD CEOIntl;

If you have 130 rows of data in your dataset and you have separate variables for Partner1 and Partner2 in your dyads, then this model syntax represents the multivariate approach and the dyadic interdependence is reflected in the covariance between the partners' factors and the covariances between the corresponding items each partner provides (see the last line of code with the PWITH statement).

Hope this helps, J-P
 S.Arunachalam posted on Tuesday, September 18, 2012 - 7:56 am
Thank you Prof. Jean-Philippe. This seems to fit better than previous models. One last question, so is this the general way to fit any dyadic models?
 Jean-Philippe Laurenceau posted on Saturday, September 22, 2012 - 9:16 am
Dear Arun--When it comes to dyadic modeling, what I described would be a general approach to doing CFA on dyadic data where there are separate partner 1 and partner 2 factors. There are other approaches to dyadic data that conceive of a latent variable as a common cause of the partner 1 and partner 2 observed variables. But more generally, a dyadic approach is typically reflective of a more general multivariate approach to data analysis where partners are repeated measures of the couple (as in the case for longitudinal data). Best wishes...
 E.I. Montoya posted on Thursday, June 20, 2013 - 12:05 am

I am running a CFA with dyadic data. The dyad members are indistinguishable.

I am using a pairwise (double-entry) dataset and following instructions in Kenny, Kashy, & Cook, 2006 (p. 116). The text recommends weighting each case by 0.5 since there are two entries per person.

How would I accomplish this in MPlus? The "weight" option does not seem right because the weight is rescaled depending on the number of cases. I also considered "freqweight" but this only accepts integer values. The twolevel options do not make sense here because this is not a MLM.

Perhaps I can get around this weighting issue? I noticed that in the related article, Olsen & Kenny, 2006, there is no mention of weights. But how else would I adjust the standard errors for the various parameter estimates?

Thanks so much.
 Linda K. Muthen posted on Thursday, June 20, 2013 - 7:50 am
I think that may be an outdated way of handling dyadic data. You should have the data in wide format where multivariate analysis takes care of non-independence of observations. See the following reference:

James L. Peugh, David DiLillo & Jillian Panuzio (2013) Analyzing Mixed-Dyadic Data Using Structural Equation Models Structural Equation Modeling. Pages: 314-337 DOI: 10.1080/10705511.2013.769395

See also the Topic 8 course handout on the website under Multivariate Approach to Multilevel Modeling.
 Elise Chaperon posted on Wednesday, December 10, 2014 - 12:08 pm

I am running a CFA with dyadic data (with couples). I have two factors for each member of the couple.

I would like to validate my syntax about 3 issues:

1) I want to set the loadings on each measure to be equal for the two members

2) I want to correlate factors of the two persons

3) I want to correlate errors across the same indicators for the two members of the dyad

Here is the syntax I have, could you please indicate if it's ok or how to correct it?


ITERATIONS = 10000000;


AvoidM by RS1_1 RS2_1 RS3_1 RS4_1 (1) ;
AnxietyM by RS7_1 RS8_1 RS9_1 (2) ;
AvoidW by RS1_2 RS2_2 RS3_2 RS4_2 (1) ;
AnxietyW by RS7_2 RS8_2 RS9_2 (2) ;

AvoidM WITH AvoidW;
AnxietyM WITH AnxietyW;


Thank you in advance!
 Linda K. Muthen posted on Wednesday, December 10, 2014 - 2:11 pm
1. Your BY statements hold the factor loadings of man and woman not only equal to each other but all factor loadings are equal.

2. The WITH statements are covariances between man and woman.

3. I see no statements that would correlate the residuals, for example,

rs2_1 WITH res_2.
 Dr. Kashdan's Lab posted on Friday, April 17, 2015 - 1:16 pm
Hi Muthens,

I am attempting to fit a two-factor CFA with continuous indicators from dyadic data. We have data in the "long" format where each case represents a person and then we have a couple ID. I told Mplus CLUSTER = ID and then here is my ANALYSIS syntax below.


awap by use effect import attrct commit satis (*t);
cost by diff drain conflct (*t);

I keep getting an error and I am not sure why. I am using a syntax template I received from a colleague of mine and then modified it for my data.

Thank you for any help you can offer.
-Kashdan Lab
 Linda K. Muthen posted on Friday, April 17, 2015 - 2:51 pm
What is the error?
 Dr. Kashdan's Lab posted on Monday, April 20, 2015 - 11:46 am
EFA factors in the same set as AWAP must have the same set of factor
Problem with:
COST BY USE (not specified or fixed)
COST BY EFFECT (not specified or fixed)
COST BY IMPORT (not specified or fixed)
COST BY ATTRCT (not specified or fixed)
COST BY COMMIT (not specified or fixed)
COST BY SATIS (not specified or fixed)
 Linda K. Muthen posted on Monday, April 20, 2015 - 4:21 pm
You can't use *t for both sets of ESEM factors. You must name them differently.
 Kelly M Allred posted on Wednesday, March 01, 2017 - 12:44 pm
I am trying to conduct CFA and ESEM models of a measure which I expect to have a two-factor structure in a sample of distinguishable (patient/relative dyads) and indistinguishable (normal control dyads who have been screened to be free of clinical diagnoses) dyads. Once I do these analyses, I want to test for measurement invariance across the clinical (patient/relative dyads) and non-clinical group (normal control dyads) groups.

Do you have any advice on how to best proceed with these analyses?
 Bengt O. Muthen posted on Wednesday, March 01, 2017 - 5:48 pm
Both CFA and ESEM can be done as multiple-group analysis where you can test measurement invariance.
Back to top
Add Your Message Here
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Options: Enable HTML code in message
Automatically activate URLs in message