/************* Data from Holzinger & Swineford (1939) ************/ data psychtests(type=corr); input _TYPE_ $ _NAME_ $ PCompreh Sentence WordMean Addition CountDot; datalines; N . 145 145 145 145 145 CORR PCompreh 1.000 .722 .714 .203 .095 CORR Sentence .722 1.000 .685 .246 .181 CORR WordMean .714 .685 1.000 .170 .113 CORR Addition .203 .246 .170 1.000 .585 CORR CountDot .095 .181 .113 .585 1.000 run; proc print data=psychtests; run; title 'One common factor model'; proc factor data=psychtests method=ml corr priors=smc rotate=none nfactors=1 res ; var PCompreh Sentence WordMean Addition CountDot; run; title 'One Common factor model'; proc calis data=psychtests; factor F1 ---> PCompreh, F1 ---> Sentence, F1 ---> WordMean, F1 ---> Addition, F1 ---> CountDot; pvar F1= 1; fitindex noindextype on(only)=[chisq df probchi rmsea srmsr bentlercfi]; run; title 'Two common factor model'; proc factor data=psychtests method=ml corr priors=smc rotate=none nfactors=2 res ; var PCompreh Sentence WordMean Addition CountDot; run; title 'Two common factor model, varimax'; proc factor data=psychtests method=ml corr priors=smc rotate=varimax nfactors=2 res ; var PCompreh Sentence WordMean Addition CountDot; run; title 'Two common factor model, OBEQUAMAX '; proc factor data=psychtests method=ml corr priors=smc rotate=OBEQUAMAX nfactors=2 res ; var PCompreh Sentence WordMean Addition CountDot; run; title 'Two Factor (confirmatory) model'; proc calis data=psychtests; factor F1 ---> PCompreh, F1 ---> Sentence, F1 ---> WordMean, F2 ---> Addition, F2 ---> CountDot; pvar F1 = 1, F2 = 1; fitindex noindextype on(only)=[chisq df probchi rmsea srmsr bentlercfi]; run;