The TRANSREG Procedure

Redundancy Analysis

Redundancy analysis (Stewart and Love, 1968) is a principal component analysis of multivariate regression predicted values. These first steps show the redundancy analysis results produced by PROC TRANSREG. The specification TSTANDARD=Z sets all variables to mean zero and variance one. METHOD=REDUNDANCY specifies redundancy analysis and outputs the redundancy variables to the OUT= data set. The MREDUNDANCY o-option outputs two sets of redundancy analysis coefficients to the OUT= data set.

The following statements produce Figure 97.61:

title 'Redundancy Analysis';

data x;
   input y1-y3 x1-x4;
   datalines;
 6  8  8 15 18 26 27
 1 12 16 18  9 20  8
 5  6 15 20 17 29 31
 6  9 15 14 10 16 22
 7  5 12 14  6 13  9
 3  6  7  2 14 26 22
 3  5  9 13 18 10 22
 6  3 11  3 15 22 29
 6  3  7 10 20 21 27
 7  5  9  8 10 12 18
;
proc transreg data=x tstandard=z method=redundancy;
   model identity(y1-y3) = identity(x1-x4);
   output out=red mredundancy replace;
run;

proc print data=red(drop=Intercept);
   format _numeric_ 4.1; 
run;

Figure 97.61: Redundancy Analysis Example

Redundancy Analysis

Obs _TYPE_ _NAME_ y1 y2 y3 x1 x2 x3 x4 Red1 Red2 Red3
1 SCORE ROW1 0.5 0.6 -0.8 0.6 0.9 1.0 0.7 0.2 -0.5 -0.9
2 SCORE ROW2 -2.0 2.1 1.5 1.1 -1.0 0.1 -1.7 1.6 -1.5 0.4
3 SCORE ROW3 0.0 -0.1 1.2 1.4 0.7 1.5 1.2 1.0 0.8 -1.3
4 SCORE ROW4 0.5 1.0 1.2 0.4 -0.8 -0.5 0.1 0.5 1.7 0.1
5 SCORE ROW5 1.0 -0.4 0.3 0.4 -1.6 -1.0 -1.6 1.0 0.1 0.9
6 SCORE ROW6 -1.0 -0.1 -1.1 -1.6 0.1 1.0 0.1 -0.8 -0.9 1.4
7 SCORE ROW7 -1.0 -0.4 -0.6 0.2 0.9 -1.5 0.1 -1.0 -0.4 -1.3
8 SCORE ROW8 0.5 -1.2 0.0 -1.5 0.3 0.4 1.0 -1.2 0.8 0.7
9 SCORE ROW9 0.5 -1.2 -1.1 -0.3 1.3 0.2 0.7 -1.0 -0.9 -0.8
10 SCORE ROW10 1.0 -0.4 -0.6 -0.6 -0.8 -1.1 -0.4 -0.4 0.8 0.7
11 M REDUND Red1 . . . 0.7 -0.6 0.4 -0.1 . . .
12 M REDUND Red2 . . . 0.3 -1.5 -0.6 1.9 . . .
13 M REDUND Red3 . . . -0.7 -0.7 0.3 -0.3 . . .
14 R REDUND x1 . . . . . . . 0.8 -0.0 -0.6
15 R REDUND x2 . . . . . . . -0.6 -0.2 -0.7
16 R REDUND x3 . . . . . . . 0.1 -0.2 -0.1
17 R REDUND x4 . . . . . . . -0.5 0.3 -0.5


The _TYPE_=’SCORE’ observations of the Red1Red3 variables contain the redundancy variables. The nonmissing M REDUND values are coefficients for predicting the redundancy variables from the independent variables. The nonmissing R REDUND values are coefficients for predicting the independent variables from the redundancy variables.

The next steps show how to generate the same results manually. The data set is standardized, predicted values are computed, and principal components of the predicted values are computed. The following statements produce the redundancy variables, shown in Figure 97.62:

proc standard data=x out=std m=0 s=1;
   title2 'Manually Generate Redundancy Variables';
run;

proc reg noprint data=std;
   model y1-y3 = x1-x4;
   output out=p p=ay1-ay3;
run; quit;

proc princomp data=p cov noprint std out=p;
   var ay1-ay3;
run;

proc print data=p(keep=Prin:);
   format _numeric_ 4.1; 
run;

Figure 97.62: Redundancy Analysis Example

Redundancy Analysis
Manually Generate Redundancy Variables

Obs Prin1 Prin2 Prin3
1 0.2 -0.5 -0.9
2 1.6 -1.5 0.4
3 1.0 0.8 -1.3
4 0.5 1.7 0.1
5 1.0 0.1 0.9
6 -0.8 -0.9 1.4
7 -1.0 -0.4 -1.3
8 -1.2 0.8 0.7
9 -1.0 -0.9 -0.8
10 -0.4 0.8 0.7


The following statements produce the coefficients for predicting the redundancy variables from the independent variables, shown in Figure 97.63:

proc reg data=p outest=redcoef noprint;
   title2 'Manually Create Redundancy Coefficients';
   model Prin1-Prin3 = x1-x4;
run; quit;

proc print data=redcoef(keep=x1-x4);
   format _numeric_ 4.1;
run;

Figure 97.63: Redundancy Analysis Example

Redundancy Analysis
Manually Create Redundancy Coefficients

Obs x1 x2 x3 x4
1 0.7 -0.6 0.4 -0.1
2 0.3 -1.5 -0.6 1.9
3 -0.7 -0.7 0.3 -0.3


The following statements produce the coefficients for predicting the independent variables from the redundancy variables, shown in Figure 97.64:

proc reg data=p outest=redcoef2 noprint;
   title2 'Manually Create Other Coefficients';
   model x1-x4 = prin1-prin3;
run; quit;

proc print data=redcoef2(keep=Prin1-Prin3);
   format _numeric_ 4.1;
run;

Figure 97.64: Redundancy Analysis Example

Redundancy Analysis
Manually Create Other Coefficients

Obs Prin1 Prin2 Prin3
1 0.8 -0.0 -0.6
2 -0.6 -0.2 -0.7
3 0.1 -0.2 -0.1
4 -0.5 0.3 -0.5