title 'Demonstration of Partial Linear Independence principle'; /* Generate two factors, MATH and VERBAL. Then construct some observed variables as linear combinations of these. */ data scores; drop n; do N = 1 to 800; *-- number of observations; MATH = normal(13579) ; VERBAL= normal(13579) ; mat_test= normal(76543) + 1.*MATH - .2*VERBAL; eng_test= normal(76543) + .1*MATH + 1.*VERBAL; sci_test= normal(76543) + .7*MATH - .3*VERBAL; his_test= normal(76543) - .2*MATH + .5*VERBAL; output; end; label MATH = 'Math Ability Factor' VERBAL = 'Verbal Ability Factor' mat_test = 'Mathematics test' eng_test = 'English test' sci_test = 'Science test' his_test = 'History test'; proc corr nosimple noprob; var mat_test eng_test sci_test his_test; title2 'Simple Correlations among TESTS'; proc corr nosimple noprob; var mat_test eng_test sci_test his_test; partial MATH VERBAL; title2 'Partial Correlations among TESTS, partialling Factors'; run; proc factor nfactor=2 rotate=varimax; var mat_test eng_test sci_test his_test; title2 'Retrieving the factor structure'; run;