/*Example 13.5.1 Equicorrelation Test */ proc iml; s={294.74 -0.6 -32.57, -0.6 0.0013 0.073, -32.57 0.073 4.23}; Ds=sqrt(diag(s)); R=inv(Ds)*s*inv(Ds); n=76; p=3; f=n-1; g=(p+1)*(p-2)/2; Rb=0; do i=1 to p; do j=i+1 to p; Rb=Rb+R[i,j]; end; end; Rb=Rb*2/(p*(p-1)); sum1=0; sum2=0; do i=1 to p; do j=i+1 to p; sum1=sum1+(R[i,j]-Rb)**2; sum2=sum2+(J(1,p,1/(p-1))*R[,i]-1/(p-1) -Rb)**2; end; end; lamb=1-Rb; mub=(p-1)**2*(1-lamb**2)/(p-(p-2)*lamb**2); Q=f/lamb**2*(sum1-mub*sum2); chi=cinv(1-0.05,g); print R, Rb mub lamb, Q chi; if Q>chi then print "Q > CHI: reject"; else print "Q < CHI: accept"; quit; R 1 -0.969304 -0.922419 -0.969304 1 0.9844213 -0.922419 0.9844213 1 Rb mub lamb -0.302434 -2.13654 1.3024338 Q chi 197.16589 5.9914645 Q > CHI: reject