BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ffgsdf
Fluorite | Level 6

Hi everyone, 

 

I am trying using proc calis with path statement to depict one very simple SEM with two latent factors (X and Y) which each has 6 indicators, and  X predicts Y with the following code. 

 

proc calis ;
path
T1_X -> x1-x6,
T1_y -> y1-y6,
T1_x -> T1_y;
fitindex noindextype on(only)=[chisq df cfi BENTLERNNFI rmsea srmsr bentlercfi probchi];
run;

 

 

However, I found that the degree of freedom for SAS is 51, which is not the same when I use the AMOS and Mplus (df = 53).

 

But the esimate is almost the same with the Mplus. 

 

Why the df is not the same?

 

1 ACCEPTED SOLUTION

Accepted Solutions
StatsGeek
SAS Employee

The DF are different between CALIS and Mplus because CALIS does not automatically constrain path coefficients or variances. The model that you ran does not have a stable solution. That is, you should have received the following note in the output: "Covariance matrix for the estimates is not full rank." When working with latent variables, it is necessary to add constraints to make the model interpretable. That is, one of the loadings for each variable should be constrained to one (though it's also possible to constrain the latent variables to each have a variance of one, that is not recommended for endogenous latent variables). For example, the following code constrains the path T1_X --> x1 to 1 and the path T1_y --> y1 to 1 (which I believe matches the Mplus default).

 

proc calis;
path
T1_X -> x1-x6 = 1,
T1_y -> y1-y6 = 1,
T1_x -> T1_y;
fitindex noindextype on(only)=[chisq df cfi BENTLERNNFI rmsea srmsr bentlercfi probchi];
run;

Making this change will reduce the DF to 51, matching Mplus and Amos. However, the choice of path to constrain is not arbitrary. Rather, you should constrain the path for the indicator variable that provides the best measure of the latent variable. This will yield results that are more interpretable. 

View solution in original post

1 REPLY 1
StatsGeek
SAS Employee

The DF are different between CALIS and Mplus because CALIS does not automatically constrain path coefficients or variances. The model that you ran does not have a stable solution. That is, you should have received the following note in the output: "Covariance matrix for the estimates is not full rank." When working with latent variables, it is necessary to add constraints to make the model interpretable. That is, one of the loadings for each variable should be constrained to one (though it's also possible to constrain the latent variables to each have a variance of one, that is not recommended for endogenous latent variables). For example, the following code constrains the path T1_X --> x1 to 1 and the path T1_y --> y1 to 1 (which I believe matches the Mplus default).

 

proc calis;
path
T1_X -> x1-x6 = 1,
T1_y -> y1-y6 = 1,
T1_x -> T1_y;
fitindex noindextype on(only)=[chisq df cfi BENTLERNNFI rmsea srmsr bentlercfi probchi];
run;

Making this change will reduce the DF to 51, matching Mplus and Amos. However, the choice of path to constrain is not arbitrary. Rather, you should constrain the path for the indicator variable that provides the best measure of the latent variable. This will yield results that are more interpretable. 

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 1672 views
  • 1 like
  • 2 in conversation