Programming the statistical procedures from SAS

Simple SEM using proc calis with path statement

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 14
Accepted Solution

Simple SEM using proc calis with path statement

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?

 

Attachment

Accepted Solutions
Solution
Monday
SAS Employee
Posts: 19

Re: Simple SEM using proc calis with path statement

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


All Replies
Solution
Monday
SAS Employee
Posts: 19

Re: Simple SEM using proc calis with path statement

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. 

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

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