/* Example 11.3.1 */ proc iml; x1={177,179,95,96,53,32,-7,-4,-3}; x2={179,419,245,131,181,127,-2,1,4}; x3={95,245,302,60,109,142,4,4,11}; x4={96,131,60,158,102,42,4,3,2}; x5={53,181,109,102,137,96,4,5,6}; x6={32,127,142,42,96,128,2,2,8}; x7={-7,-2, 4,4,4,2,34,31,33}; x8={-4,1,4,3,5,2,31,39,39}; x9={-3,4,11,2,6,8,33,39,48}; s=x1||x2||x3||x4||x5||x6||x7||x8||x9; call eigen (D,C,s); cptv=0; do i=1 to 9; rr=J(1,i,1)*D[1:i,1]/trace(s); cptv=cptv//rr; end; cptv=cptv[2:10,]; cc=c[,1:3]`; Rsq=((c[,1:3]#c[,1:3])*D[1:3,1])/vecdiag(s); corr=sqrt(D[1,1])*(c[,1]/sqrt(vecdiag(s))) ||sqrt(D[2,1])*(c[,2]/sqrt(vecdiag(s))) ||sqrt(D[3,1])*(c[,3]/sqrt(vecdiag(s))); print D cptv, CC,corr Rsq ; quit; D CPTV 878.51923 0.6092366 196.09589 0.7452255 128.64311 0.834437 103.43021 0.906164 81.261078 0.962517 37.848834 0.9887645 6.9763829 0.9936024 5.7064713 0.9975598 3.5188056 1 CC 0.3046142 0.6533533 0.4833322 0.2613069 0.3235199 0.271174 0.0024083 0.0058942 0.0143991 0.4855006 0.1510121 -0.587715 0.491155 0.0375994 -0.373462 -0.05715 -0.053746 -0.088316 -0.411551 -0.182649 -0.235769 0.4568166 0.495122 0.2686744 0.2557006 0.2658707 0.2821249 CORR RSQ 0.6786396 0.5110194 -0.350857 0.8447933 0.9460557 0.1033092 -0.101206 0.9159368 0.8243618 -0.473585 -0.153878 0.9275334 0.6161663 0.5471725 0.4121987 0.8489664 0.8192498 0.0449837 0.4797834 0.9033858 0.7104257 -0.462249 0.2693485 0.7909276 0.0122419 -0.13725 0.4973768 0.2663712 0.027975 -0.120517 0.4828714 0.2484717 0.0616012 -0.178505 0.461864 0.2489771