BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
grace130
Calcite | Level 5

Hi SAS community! I'm running into an issue when generating fit indices for a PROC CALIS procedure. The RMSEA is missing (".") and chi-square = 0. See screenshot included below. I use SAS OnDemand. 

grace130_0-1683127317826.png

I'm running a simple path analysis. The SAS code shown below. 

proc calis method=fiml data=import_test;
fitindex on(only) = [chisq df probchi bentlernnfi cfi rmsea rmsea_ll rmsea_ul probclfit srmsr caic sbc];
path /*specification of path model*/
PAmodvig <- fitness_freq,
PAmodvig <- exschem_collapsed,
exschem_collapsed <- fitness_freq;
effpart /*for direct and indirect effects*/
PAmodvig <- fitness_freq;
pathdiagram notitle fitindex=[chisq df probchi cfi rmsea srmsr caic sbc];
run;

where PAmodvig is continuous and fitness_freq and exschem_collapsed are categorical. The data include 247 participants, with only two missing values for the PROC CALIS procedure. 

 

I appreciate any help you can provide. Please note I am a relatively novice SAS user... 🙂

 

1 ACCEPTED SOLUTION

Accepted Solutions
jiltao
SAS Super FREQ

The fit statistics values you got are not unusual. It is typically from a just-identified model -- you have the same number of parameters as the total number of means and covariance elements. 

Jill

View solution in original post

3 REPLIES 3
ballardw
Super User

When asking questions about specific code results best practice is to include example data in form of data step code so can see everything involved. If that isn't practical/possible it helps to include the LOG from running the procedure. Copy the text from the log with the code and ALL the messages generated from that log. Then on the forum open a text box using the </> icon that appears above the main message window then paste the text.

 

Often there are diagnostic messages that help.

 

 

grace130
Calcite | Level 5
data import_test; 
set work.import7; 

*creating interaction effect between frequency of fitness-related use and PA info seeking; 
fitness_freq_infoseeking = fitness_freq*infoseeking ;

PAmodvig = PAmod_open + PAvig_open; 
PAtotal = PAlight_open + PAmod_open + PAvig_open; 

*re-coding exercise self-schema categories; 
if (8 =< exreg_describe and 8 =< staysfit_describe) or (8 =< exreg_describe and 8 =< PA_describe) or (8 =< staysfit_describe and 8 =< PA_describe) then exschem_DESCRIBE = 1; *exerciser schematic for describe; 
else if (1 =< exreg_describe =< 4 and 1 =< staysfit_describe =< 4) or (1 =< exreg_describe =< 4 and 1 =< PA_describe =< 4) or (1 =< staysfit_describe =<4 and 1 =< PA_DESCRIBE =< 4) then exschem_DESCRIBE = 2; *exerciser non-schematic for describe; 
else if (5 =< exreg_describe =< 7 and 5 =< staysfit_describe =< 7) or (5 =< exreg_describe =< 7 and 5 =< PA_describe =< 7) or (5 =< staysfit_describe =<7 and 5 =< PA_DESCRIBE =< 7) then exschem_DESCRIBE = 3; *exerciser aschematic for describe;
else if exreg_describe = "." and PA_describe = "." and staysfit_describe = "." then exschem_describe = ".";  *missing values; 
else exschem_DESCRIBE = 4; *non-classifiable, don't meet any of the outlined criteria above; 

if (8 =< exreg_important =<11 and 8 =< staysfit_important =<11) or (8 =< exreg_important =<11 and 8 =< PA_important =<11) or (8 =< staysfit_important =<11 and 8 =< PA_important =<11) then exschem_IMPORTANT = 1; *exerciser schematic for important & exerciser non-schematic for important; 
else if (7 => exreg_important =<11 and 7 => staysfit_important =<11) or (7 => exreg_important =<11 and 7 => PA_important =<11) or (7 => staysfit_important =<11 and 7 => PA_important =<11) then exschem_IMPORTANT = 2; *exerciser aschematic for important; 
else if exreg_important = "." and PA_important = "." and staysfit_important = "." then exschem_important = "."; *missing values; 
else exschem_important = 3; *non-classifiable, don't meet any of the outlined criteria above; 

if exschem_DESCRIBE = 1 and exschem_IMPORTANT = 1 then exschem = 4; 
else if exschem_DESCRIBE = 2 and exschem_IMPORTANT = 1 then exschem = 3; 
else if exschem_DESCRIBE = 3 and exschem_IMPORTANT = 2 then exschem = 2; 
*else if exschem_DESCRIBE = 4 and exschem_IMPORTANT = 3 then exschem = 1; 
else if exschem_DESCRIBE = "." or exschem_IMPORTANT = "." then exschem = "."; 
else exschem = 1; 

if exschem = 1 then exschem_collapsed = 1; else 
if exschem = 2 then exschem_collapsed = 1; else 
if exschem = 3 then exschem_collapsed = 1; else 
if exschem = 4 then exschem_collapsed = 2;


RUN; 

Above is my data step and recoding of the variables in this analysis. 

 

Additionally, I've included the log messages as screenshots below. 

grace130_1-1683132451239.png

 

grace130_0-1683132426914.png

 

jiltao
SAS Super FREQ

The fit statistics values you got are not unusual. It is typically from a just-identified model -- you have the same number of parameters as the total number of means and covariance elements. 

Jill

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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
  • 3 replies
  • 481 views
  • 3 likes
  • 3 in conversation