/* ODS TRACE and ODS SELECT */ data hsb2; input id female race ses prog read write math science socst; datalines; 70 0 4 1 1 57 52 41 47 57 121 1 4 2 3 68 59 53 63 61 86 0 4 3 1 44 33 54 58 31 141 0 4 3 3 63 44 47 53 56 172 0 4 2 2 47 52 57 53 61 113 1 4 2 2 44 52 51 63 61 50 0 3 2 1 50 59 42 53 61 11 0 1 2 2 34 46 45 39 36 84 0 4 2 1 63 57 54 51 63 48 1 3 2 2 57 55 52 50 51 75 1 4 2 3 60 46 51 53 61 60 1 4 2 2 57 65 51 63 61 95 0 4 3 2 73 60 71 61 71 104 0 4 3 2 54 63 57 55 46 38 0 3 1 2 45 57 50 31 56 115 0 4 1 1 42 49 43 50 56 76 0 4 3 2 47 52 51 50 56 195 0 4 2 1 57 57 60 56 52 ; ODS TRACE ON; proc glm data=hsb2; model read write math science socst=female race ses prog; *ODS SELECT GLM.Data.NOBS GLM.ANOVA.socst.OverallANOVA; *ODS OUTPUT OverallANOVA=OutANOVA GLM.ANOVA.socst.OverallANOVA=OutSOCSTANOVA GLM.Data.NOBS=SampleSize NOBS=SampleSize2; run; ods trace off; /* Working with the extracted output data */ proc print data= OutSOCSTANOVA; run; proc print data= SampleSize; run; data myss; set OutSOCSTANOVA (KEEP=SS); run; proc print data=myss; run; /******************************/ proc sort data=hsb2; by race; ODS TRACE ON; proc means data=hsb2; by race; *ODS SELECT Means.ByGroup3.Summary; run; ods trace off; /******************************/ data hsb2; input id female race ses prog read write math science socst; datalines; 70 0 4 1 1 57 52 41 47 57 121 1 4 2 3 68 59 53 63 61 86 0 4 3 1 44 33 54 58 31 141 0 4 3 3 63 44 47 53 56 172 0 4 2 2 47 52 57 53 61 113 1 4 2 2 44 52 51 63 61 50 0 3 2 1 50 59 42 53 61 11 0 1 2 2 34 46 45 39 36 84 0 4 2 1 63 57 54 51 63 48 1 3 2 2 57 55 52 50 51 75 1 4 2 3 60 46 51 53 61 60 1 4 2 2 57 65 51 63 61 95 0 4 3 2 73 60 71 61 71 104 0 4 3 2 54 63 57 55 46 38 0 3 1 2 45 57 50 31 56 115 0 4 1 1 42 49 43 50 56 76 0 4 3 2 47 52 51 50 56 195 0 4 2 1 57 57 60 56 52 ; ODS TRACE ON; proc glm data=hsb2; model read write math science socst=female race ses prog; *ODS OUTPUT GLM.ANOVA.read.ModelANOVA =readANOVA GLM.ANOVA.write.ModelANOVA =writeANOVA GLM.ANOVA.math.ModelANOVA = mathANOVA GLM.ANOVA.science.ModelANOVA = sciANOVA GLM.ANOVA.socst.ModelANOVA = socstANOVA ; run; ods trace off; data allANOVA; set readANOVA writeANOVA mathANOVA sciANOVA socstANOVA; run; proc print data=allANOVA; run; data type3pvals; set allANOVA; if HypothesisType=3; run; proc print data=type3pvals; run; data type3pvals; set type3pvals (KEEP = ProbF); run; proc print data=type3pvals; run; /* Another example */ DATA surg; INPUT x1 x2 x3 x4 x5 x6 x7 x8 y lny; label x1 = 'blood-clotting' x2 = 'prognostic' x3 = 'enzyme' x4 = 'liver function' x5 = 'age' x6 = 'gender' x7 = 'moderate alcohol use' x8 = 'heavy alcohol use' y = 'survival' lny = 'log survival'; cards; 6.7 62 81 2.59 50 0 1 0 695 6.544 5.1 59 66 1.70 39 0 0 0 403 5.999 7.4 57 83 2.16 55 0 0 0 710 6.565 6.5 73 41 2.01 48 0 0 0 349 5.854 7.8 65 115 4.30 45 0 0 1 2343 7.759 5.8 38 72 1.42 65 1 1 0 348 5.852 5.7 46 63 1.91 49 1 0 1 518 6.250 3.7 68 81 2.57 69 1 1 0 749 6.619 6.0 67 93 2.50 58 0 1 0 1056 6.962 3.7 76 94 2.40 48 0 1 0 968 6.875 6.3 84 83 4.13 37 0 1 0 745 6.613 6.7 51 43 1.86 57 0 1 0 257 5.549 5.8 96 114 3.95 63 1 0 0 1573 7.361 5.8 83 88 3.95 52 1 0 0 858 6.754 7.7 62 67 3.40 58 0 0 1 702 6.554 7.4 74 68 2.40 64 1 1 0 809 6.695 6.0 85 28 2.98 36 1 1 0 682 6.526 3.7 51 41 1.55 39 0 0 0 205 5.321 7.3 68 74 3.56 59 1 0 0 550 6.309 5.6 57 87 3.02 63 0 0 1 838 6.731 5.2 52 76 2.85 39 0 0 0 359 5.883 3.4 83 53 1.12 67 1 1 0 353 5.866 6.7 26 68 2.10 30 0 0 1 599 6.395 5.8 67 86 3.40 49 1 1 0 562 6.332 6.3 59 100 2.95 36 1 1 0 651 6.478 5.8 61 73 3.50 62 1 1 0 751 6.621 5.2 52 86 2.45 70 0 1 0 545 6.302 11.2 76 90 5.59 58 1 0 1 1965 7.583 5.2 54 56 2.71 44 1 0 0 477 6.167 5.8 76 59 2.58 61 1 1 0 600 6.396 3.2 64 65 0.74 53 0 1 0 443 6.094 8.7 45 23 2.52 68 0 1 0 181 5.198 5.0 59 73 3.50 57 0 1 0 411 6.019 5.8 72 93 3.30 39 1 0 1 1037 6.944 5.4 58 70 2.64 31 1 1 0 482 6.179 5.3 51 99 2.60 48 0 1 0 634 6.453 2.6 74 86 2.05 45 0 0 0 678 6.519 4.3 8 119 2.85 65 1 0 0 362 5.893 4.8 61 76 2.45 51 1 1 0 637 6.457 5.4 52 88 1.81 40 1 0 0 705 6.558 5.2 49 72 1.84 46 0 0 0 536 6.283 3.6 28 99 1.30 55 0 0 1 582 6.366 8.8 86 88 6.40 30 1 1 0 1270 7.147 6.5 56 77 2.85 41 0 1 0 538 6.288 3.4 77 93 1.48 69 0 1 0 482 6.178 6.5 40 84 3.00 54 1 1 0 611 6.416 4.5 73 106 3.05 47 1 1 0 960 6.867 4.8 86 101 4.10 35 1 0 1 1300 7.170 5.1 67 77 2.86 66 1 0 0 581 6.365 3.9 82 103 4.55 50 0 1 0 1078 6.983 6.6 77 46 1.95 50 0 1 0 405 6.005 6.4 85 40 1.21 58 0 0 1 579 6.361 6.4 59 85 2.33 63 0 1 0 550 6.310 8.8 78 72 3.20 56 0 0 0 651 6.478 ; RUN; /* We fit the model with only x1, x2, x3, x8 as predictors: */ ODS TRACE ON; PROC REG DATA = surg; MODEL lny = x1 x2 x3 x8 / vif influence R; * ODS SELECT Reg.MODEL1.Fit.lny.ParameterEstimates Reg.MODEL1.ObswiseStats.lny.OutputStatistics; * ODS OUTPUT Reg.MODEL1.Fit.lny.ParameterEstimates=OutParams Reg.MODEL1.ObswiseStats.lny.OutputStatistics=OutInfluence; RUN; ODS TRACE OFF; /* Using the DFFITS measure to pick out influential observations */ DATA influ; SET OutInfluence; p=5;n=54; if abs(dffits) > 2*((p/n)**0.5); run; PROC PRINT data=influ; VAR observation dffits; run;