*-------------------Data on Physical Fitness-------------------* 
  | These measurements were made on men involved in a physical   | 
  | fitness course at N.C.State Univ. The variables are Age      | 
  | (years), Weight (kg), Oxygen intake rate (ml per kg body     | 
  | weight per minute), time to run 1.5 miles (minutes), heart   | 
  | rate while resting, heart rate while running (same time      | 
  | Oxygen rate measured), and maximum heart rate recorded while | 
  | running.                                                     | 
  | ***Certain values of MaxPulse have been changed.             | 
  *--------------------------------------------------------------*; 
 
data fitness; 
input Age Weight Oxygen RunTime RestPulse RunPulse MaxPulse; 
datalines; 
   44 89.47 44.609 11.37 62 178 182
   44 85.84 54.297  8.65 45 156 168 
   38 89.02 49.874  9.22 55 178 180   
   40 75.98 45.681 11.95 70 176 180   
   44 81.42 39.442 13.08 63 174 176    
   44 73.03 50.541 10.13 45 168 168 
   45 66.45 44.754 11.12 51 176 176 
   54 83.12 51.855 10.33 50 166 170  
   51 69.63 40.836 10.95 57 168 172
   48 91.63 46.774 10.25 48 162 164  
   57 73.37 39.407 12.63 58 174 176  
   52 76.32 45.441  9.63 48 164 166  
   51 67.25 45.118 11.08 48 172 172 
   51 73.71 45.790 10.47 59 186 188  
   49 76.32 48.673  9.40 56 186 188
   52 82.78 47.467 10.50 53 170 172 
   40 75.07 45.313 10.07 62 185 185
   42 68.15 59.571  8.17 40 166 172
   47 77.45 44.811 11.63 58 176 176
   43 81.19 49.091 10.85 64 162 170
   38 81.87 60.055  8.63 48 170 186
   45 87.66 37.388 14.03 56 186 192
   47 79.15 47.273 10.60 47 162 164
   49 81.42 49.156  8.95 44 180 185
   51 77.91 46.672 10.00 48 162 168 
   49 73.37 50.388 10.08 67 168 168 
   54 79.38 46.080 11.17 62 156 165
   50 70.87 54.625  8.92 48 146 155
   54 91.63 39.203 12.88 44 168 172
   57 59.08 50.545  9.93 49 148 155
   48 61.24 47.920 11.50 52 170 176
; 
/*regression including all the independent variables, and perform hypotheses 
testing about the coefficients or sub-models.*/

proc reg data=fitness;
model Oxygen=RunTime Age Weight RunPulse MaxPulse RestPulse/p r;
MaxRest: test MaxPulse, RestPulse;
WeiRest: test Weight, RestPulse;
run;

/*model selection using R^2 and Cp*/

proc reg data=fitness;
model Oxygen=RunTime Age Weight RunPulse MaxPulse RestPulse/selection=
    rsquare cp;
title 'fitness data: all models';
run;

/*generate residual plots for the selected model*/

proc reg data=fitness;
model Oxygen=RunTime Age RunPulse MaxPulse/p r;
output out=fitresult p=pred r=resid;
run;

data a1;
do time=1 to 31 by 1;
output;
end;
run;

data a2;
merge fitresult a1;
run;

proc gplot data=a2;
plot resid*(pred RunTime Age RunPulse MaxPulse)/framce;
plot resid*time/haxis=0 to 32 by 1;
run;

/*generate normal probability plot*/

proc univariate data=a2;
var resid;
qqplot resid/normal(L=1 mu=est sigma=est);
run;


quit;