/* CANDIDATES */ data can; do tmt = 1 to 5; output; end; proc optex classparam data=can CODING=ORTH; class tmt; model tmt; blocks structure=(8)3; examine info var; output out=bibd blockname=blk; run; proc print data=bibd; run; OPTIONS NOCENTER LS=120; PROC IML; USE BIBD; READ ALL VAR ("tmt") INTO t; READ ALL VAR {"BLK"} INTO b; Xb=design(b); Nb=ncol(Xb); Xt=design(t); Nt=ncol(Xt); Z=Xb||Xt; W=Z`*Z; PRINT Nb Nt, W[FORMAT=5.2]; W1=SWEEP(W,1:Nb); PRINT W1[FORMAT=5.2]; W2=SWEEP(W1,Nb+1:Nb+Nt); PRINT W2[FORMAT=5.2]; CON=I(Nt-1)//J(1,Nt-1,1); CALL GSORTH(L,T,dep,CON); Var=FUZZ(L`*W2[Nb+1:Nb+Nt,Nb+1:Nb+Nt]*L)/Nt; INFO=Nt*fuzz(EIGVAL(W1[Nb+1:Nb+Nt,Nb+1:Nb+Nt])); PRINT Var, INFO; QUIT; RUN;