Chapter Contents |
Previous |
Next |
The PRINCOMP Procedure |
The data in this example are rankings of 35 college basketball teams. The rankings were made before the start of the 1985 -86 season by 10 news services.
The purpose of the principal component analysis is to compute a single variable that best summarizes all 10 of the preseason rankings.
Note that the various news services rank different numbers of teams, varying from 20 through 30 (there is a missing rank in one of the variables, WashPost). And, of course, each service does not rank the same teams, so there are missing values in these data. Each of the 35 teams is ranked by at least one news service.
The PRINCOMP procedure omits observations with missing values. To obtain principal component scores for all of the teams, it is necessary to replace the missing values. Since it is the best teams that are ranked, it is not appropriate to replace missing values with the mean of the nonmissing values. Instead, an ad hoc method is used that replaces missing values by the mean of the unassigned ranks. For example, if 20 teams are ranked by a news service, then ranks 21 through 35 are unassigned. The mean of ranks 21 through 35 is 28, so missing values for that variable are replaced by the value 28. To prevent the method of missing-value replacement from having an undue effect on the analysis, each observation is weighted according to the number of nonmissing values it has. See Example 53.2 in Chapter 53, "The PRINQUAL Procedure," for an alternative analysis of these data.
Since the first principal component accounts for 78 percent of the variance, there is substantial agreement among the rankings. The eigenvector shows that all the news services are about equally weighted, so a simple average would work almost as well as the first principal component. The following statements produce Output 52.2.1 through Output 52.2.3:
/*----------------------------------------------------------*/ /* */ /* Preseason 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. */ /* */ /*----------------------------------------------------------*/ title1 'Preseason 1985 College Basketball Rankings'; 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. */ proc means data=HoopsRanks; output out=MaxRank max=CSNMax DurSunMax DurHerMax WashPostMax USATodayMax SportMax InSportsMax UPIMax APMax SIMax; run; /* The following method of filling in missing values is a */ /* reasonable method for this specific example. It would */ /* be inappropriate to use this method for other data sets. */ /* sets. In addition, any method of filling in missing */ /* values can result in incorrect statistics. The choice */ /* of whether to fill in missing values, and what method */ /* to use to do so, is the responsibility of the person */ /* performing the analysis. */ 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; /* Use the PRINCOMP procedure to transform the observed */ /* ranks. Use n=1 because the data should be related to */ /* a single underlying variable. Sort the data and */ /* display the resulting component. */ */ proc princomp data=Basketball n=1 out=PCBasketball standard; var CSN--SI; weight Weight; run; proc sort data=PCBasketball; by Prin1; run; proc print; var School Prin1; title2 'College Teams as Ordered by PROC PRINCOMP'; run;
Output 52.2.1: Summary Statistics for Basketball Rankings Using PROC MEANS
Output 52.2.2: Principal Components Analysis of Basketball Rankings Using PROC PRINCOMP
|
|
Output 52.2.3: Basketball Rankings Using PROC PRINCOMP
|
Chapter Contents |
Previous |
Next |
Top |
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.