OPTIONS LINESIZE=80;
TITLE1 'Factorial design of chemical process yield';
TITLE2 'Factor A (PRESS) : 3 Levels of Pressure (200, 215, 230) ';
TITLE3 'Factor B (TEMP) : 3 Levels of Temperature (Low, Medium, High) ';
DATA CHMPRS;
/* @@ means a loop in reading input variable sequence */
INPUT PRESS TEMP $ YIELD @@;
CARDS;
200 LOW 90.4 200 LOW 90.2
200 MEDIUM 90.1 200 MEDIUM 90.3
200 HIGH 90.5 200 HIGH 90.7
215 LOW 90.7 215 LOW 90.6
215 MEDIUM 90.5 215 MEDIUM 90.6
215 HIGH 90.8 215 HIGH 90.9
230 LOW 90.2 230 LOW 90.4
230 MEDIUM 89.9 230 MEDIUM 90.1
230 HIGH 90.4 230 HIGH 90.1
;
RUN;
/* Print the original data set */
PROC PRINT;
RUN;
/* Create Table & tabulate input data set */
/* Nicety, but not absolutely necessary for */
/* the analysis - you may skip */
PROC TABULATE;
CLASS PRESS TEMP;
VAR YIELD;
TABLE TEMP, PRESS*YIELD/CONDENSE;
KEYLABEL SUM='Y(IJ)';
RUN;
/* General Linear Model (GLM) */
PROC GLM;
CLASS PRESS TEMP;
/* Dependent = Effects */
MODEL YIELD = PRESS TEMP PRESS*TEMP;
OUTPUT OUT = A1 P = YHAT R = RESID;
RUN;
PROC PLOT DATA = A1;
PLOT YHAT*PRESS = TEMP/HAXIS = 180 TO 250 BY 10;
PLOT RESID*YHAT;
RUN;
/* Compute Normal Scores of input data, 'A1' */
/* using cum. normal function/Residual */
/* BLOM -> yi = þ-1(ri -3/8)/(n+1/4) */
/* ri = rank of the ith obs */
PROC RANK DATA = A1 NORMAL = BLOM OUT = NPLOT1;
VAR RESID;
RANKS NSCORE;
RUN;
PROC PLOT DATA = NPLOT1;
PLOT NSCORE*RESID;
RUN;
|