G Theory and SEM PreviousNext
Mplus Discussion > Confirmatory Factor Analysis >
Message/Author
 J.D. Haltigan posted on Monday, November 13, 2006 - 3:05 pm
Hi all,
I have been working on trying to reproduce estimation of variance components based on a published example using LISREL notation. The original publication was completed Marcoulides and basically I am having a bit of trouble with the syntax to generate the variance component estimates he obtained---or---it may be that I am not interpreting the output I do get correctly. Has anyone used CFA models to generate estimates of variance components? Any thoughts or input would be welcomed.

-J
 Linda K. Muthen posted on Monday, November 13, 2006 - 5:26 pm
Have you tranlated the LISREL input into the Mplus language? Lambda is BY etc. This would be where I would start. If you can't do this, send the LISREL input and output and the input and data you are using for Mplus to support@statmodel.com.
 J.D. Haltigan posted on Monday, November 13, 2006 - 5:45 pm
Linda,
thanks for your reply. I did send the requested info a few days ago with my current MPlus language. Below is my current input (commands) and I used the TECH 4 output rather than sampstat as the original output had pointed me in this direction...I am wondering if a negative estimate of variance will do this, because in G, one thing we typically do is set them equal to 0. Nevertheless, I should have obtained what Marcoulides did and did not (but I believe I am close). The design is 4 raters on 2 occasions rating the job difficulty of 27 jobs.

J-
(type is covar, # observasations = 216)


Variable:
Names are R101 R102 R201 R202 R301 R302 R401 R402;

!Analysis: !Type =;
!Iterations= 10000;
!H1Iterations= 10000;

Model:
PERSON BY R101 R102 R201 R202 R301 R302 R401 R402;
RATER1 BY R101 R102;
RATER2 BY R201 R202;
RATER3 BY R301 R302;
RATER4 BY R401 R402;
OCCVAR1 BY R101 R201 R301 R401;
OCCVAR2 BY R102 R202 R302 R402;
E101 BY R101;
E102 BY R102;
E201 BY R201;
E202 BY R202;
E301 BY R301;
E302 BY R302;
E401 BY R401;
E402 BY R402;


OCCVAR1 OCCVAR2 (1);
RATER1 RATER2 RATER3 RATER4 (2);
E101 E102 E201 E202 E301 E302 E401 E402 (3);

Output: TECH4;
 J.D. Haltigan posted on Monday, November 13, 2006 - 6:03 pm
LISREL SCRIPT appears like this from the original paper

DA NI=8 NO=25 MA=CM

;MO NX=8 NK=7 LX=FU,FI PH=DI,FR TD=DI,FR
;
;THE MODEL STATEMENT INCLUDES THE DEFAULT VALUES
;
;THE LAMBDA MATRIX HAS THE FOLLOWING FORM
;
VA 1.0 LX(1,1) LX(1,2) LX(1,6)
VA 1.0 LX(2,1) LX(2,3) LX(2,6)
VA 1.0 LX(3,1) LX(3,4) LX(3,6)
VA 1.0 LX(4,1) LX(4,5) LX(4,6)
VA 1.0 LX(5,1) LX(5,2) LX(5,7)
VA 1.0 LX(6,1) LX(6,3) LX(6,7)
VA 1.0 LX(7,1) LX(7,4) LX(7,7)
VA 1.0 LX(8,1) LX(8,5) LX(8,7)
OU ML
 Linda K. Muthen posted on Tuesday, November 14, 2006 - 1:35 pm
The matrix of factor loadings is all fixed. This is not reflected in your Mplus language. The lambda matrix specified in LISREL is:

f1 f2 f3 f4 f5 f6 f7
y1 1 1 1
y2 1 1 1
y3 1 1 1
y4 1 1 1
y5 1 1 1
y6 1 1 1
y7 1 1 1
y8 1 1 1

I will get you started by showing the specification for f1 and f2 in Mplus:

f1 BY y1-y8@1;
f2 BY y1@1 y5@1;

In Mplus, exogenous factors are correlated as the default so you would need to fix those to zero:

f1 WITH f2@0;

I don't know what you are doing with the E BY statements and I don't see any equalities in the LISREL set up.
 J.D. Haltigan posted on Wednesday, November 15, 2006 - 6:22 pm
Very helpful Linda, thank you; I was able to get the model to run and replicate the original results for var comps.
 J.D. Haltigan posted on Tuesday, November 28, 2006 - 1:12 am
Hi,
After running the test model above using a covariance matrix, I am attempting to replicate the same procedure using individual data from a prior data set I analyzed using the traditional ANOVA-based method of var. comp. estimation.

This new data set is not a covariance, but rather is in the form of individual observations.

There are 19 variables which are the 19 raters who rate 13 infants. Thus, there are 13 * 19 observed variables. When I specify the model in the input, I am not sure how to indicate that the observed variables are 247 and not 13; that is, when I run the model, it doesn't run due to the fact that it perceives 19 variables on 13 observations, and not 247. It does not seem to matter if I indicate NOBSERVATIONS=247. What is interesting is that if I use analysis type is missing the model does run and gives me the correct person variance component (which make sense since it is based on a single rater*person observation) but it doesn't provide the other var comps as they should. How do I specify the correct number of observations given the 19 variables mentioned (each rater). I know this is the issue, I am just not sure how to do it since I am now working with individual data and not a correlation or covariance matrix.

Any replies would be helpful.

Thanks much,
-JD
 Linda K. Muthen posted on Tuesday, November 28, 2006 - 3:23 pm
You would need to have your data in long format for Mplus to see 247 observations. For example,

Rater Infant
1 1
1 .
1 13
.
.
.
19
19
19

You can use DATA WIDETOLONG to rearrange the data.
 J.D. Haltigan posted on Tuesday, November 28, 2006 - 3:30 pm
So essentially what I'll be doing is making raters (19) a between-subjects or a row and each infant will become a column?

Going to try this now; regardless, it is irrelevant for G-purposes (I am pretty sure) whether a given variable is between or within per se;
 Linda K. Muthen posted on Tuesday, November 28, 2006 - 7:45 pm
What do the raters rate the infants on? I don't think I understand what your data are. The data set should have rows that represent a combination of rater and infant and the columns should represent whatever the raters are rating the infants on.
 J.D. Haltigan posted on Wednesday, November 29, 2006 - 1:37 pm
Linda,
thanks, I was able to figure it out, but instead of modeling the person variance component I modeled the rater variance component (this was a p x r design). Here is how the data look

Rater SN1 SN2 SN3...SN13
Rater1 xxx xxx xxx...xxxx

Thus, each SN (object rated) is a column with 19 individual ratings. If I were to make the SN's as a single vector and the 19 raters as variables, then I would be modeling the person variance. However, I wasn't sure with 'widetolong' if I could transpose the data set right in Mplus and generate a different structured data set. This is not a huge problem because I can do this in SPSS and then export to a .dat. However, this was a smaller data set and I'd like to work with larger ones in the future...Is there any way raters could be the variable and SN as the index so I could estimate the person variance without having to create a separate data file? Or would 19 variables going across on 13 cases (SN's) be too large?
 Linda K. Muthen posted on Wednesday, November 29, 2006 - 4:50 pm
You should be able to use WIDETOLONG. You would need to rearrange the data if you change the unit of observation.
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: