Documentation Example 2 for PROC PRINCOMP
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: PRINCEX2 */
/* TITLE: Documentation Example 2 for PROC PRINCOMP */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: multivariate analysis */
/* PROCS: PRINCOMP */
/* DATA: */
/* */
/* SUPPORT: saswfk UPDATE: July 25, 2010 */
/* REF: PROC PRINCOMP, Example 2 */
/* MISC: */
/* */
/****************************************************************/
/*-----------------------------------------------------------*/
/* */
/* Pre-season 1985 College Basketball Rankings */
/* (rankings of 35 teams by 10 news services) */
/* */
/* Note: (a) news services rank varying numbers of teams; */
/* (b) not all teams are ranked by all news services; */
/* (c) each team is ranked by at least one service; */
/* (d) rank 20 is missing for UPI. */
/* */
/*-----------------------------------------------------------*/
data HoopsRanks;
input School $13. CSN DurSun DurHer WashPost USAToday
Sport InSports UPI AP SI;
label CSN = 'Community Sports News (Chapel Hill, NC)'
DurSun = 'Durham Sun'
DurHer = 'Durham Morning Herald'
WashPost = 'Washington Post'
USAToday = 'USA Today'
Sport = 'Sport Magazine'
InSports = 'Inside Sports'
UPI = 'United Press International'
AP = 'Associated Press'
SI = 'Sports Illustrated'
;
format CSN--SI 5.1;
datalines;
Louisville 1 8 1 9 8 9 6 10 9 9
Georgia Tech 2 2 4 3 1 1 1 2 1 1
Kansas 3 4 5 1 5 11 8 4 5 7
Michigan 4 5 9 4 2 5 3 1 3 2
Duke 5 6 7 5 4 10 4 5 6 5
UNC 6 1 2 2 3 4 2 3 2 3
Syracuse 7 10 6 11 6 6 5 6 4 10
Notre Dame 8 14 15 13 11 20 18 13 12 .
Kentucky 9 15 16 14 14 19 11 12 11 13
LSU 10 9 13 . 13 15 16 9 14 8
DePaul 11 . 21 15 20 . 19 . . 19
Georgetown 12 7 8 6 9 2 9 8 8 4
Navy 13 20 23 10 18 13 15 . 20 .
Illinois 14 3 3 7 7 3 10 7 7 6
Iowa 15 16 . . 23 . . 14 . 20
Arkansas 16 . . . 25 . . . . 16
Memphis State 17 . 11 . 16 8 20 . 15 12
Washington 18 . . . . . . 17 . .
UAB 19 13 10 . 12 17 . 16 16 15
UNLV 20 18 18 19 22 . 14 18 18 .
NC State 21 17 14 16 15 . 12 15 17 18
Maryland 22 . . . 19 . . . 19 14
Pittsburgh 23 . . . . . . . . .
Oklahoma 24 19 17 17 17 12 17 . 13 17
Indiana 25 12 20 18 21 . . . . .
Virginia 26 . 22 . . 18 . . . .
Old Dominion 27 . . . . . . . . .
Auburn 28 11 12 8 10 7 7 11 10 11
St. Johns 29 . . . . 14 . . . .
UCLA 30 . . . . . . 19 . .
St. Joseph's . . 19 . . . . . . .
Tennessee . . 24 . . 16 . . . .
Montana . . . 20 . . . . . .
Houston . . . . 24 . . . . .
Virginia Tech . . . . . . 13 . . .
;
/* PROC MEANS is used to output a data set containing the */
/* maximum value of each of the newspaper and magazine */
/* rankings. The output data set, maxrank, is then used */
/* to set the missing values to the next highest rank plus */
/* thirty-six, divided by two (that is, the mean of the */
/* missing ranks). This ad hoc method of replacing missing */
/* values is based more on intuition than on rigorous */
/* statistical theory. Observations are weighted by the */
/* number of nonmissing values. */
/* */
title 'Pre-Season 1985 College Basketball Rankings';
proc means data=HoopsRanks;
output out=MaxRank
max=CSNMax DurSunMax DurHerMax
WashPostMax USATodayMax SportMax
InSportsMax UPIMax APMax SIMax;
run;
data Basketball;
set HoopsRanks;
if _n_=1 then set MaxRank;
array Services{10} CSN--SI;
array MaxRanks{10} CSNMax--SIMax;
keep School CSN--SI Weight;
Weight=0;
do i=1 to 10;
if Services{i}=. then Services{i}=(MaxRanks{i}+36)/2;
else Weight=Weight+1;
end;
run;
ods graphics on;
proc princomp data=Basketball n=1 out=PCBasketball standard
plots=patternprofile;
var CSN--SI;
weight Weight;
run;
proc sort data=PCBasketball;
by Prin1;
run;
proc print;
var School Prin1;
title 'Pre-Season 1985 College Basketball Rankings';
title2 'College Teams as Ordered by PROC PRINCOMP';
run;