/* Milliken and Johnson Pulse Example 1.1 Sec 1.3 */
options linesize=79 pagesize=50;

data pulse;				/* input data step */
   infile 'pulse.dat' firstobs=2;	/* skip first line */
   input task rate;			/* white space separates entries */

proc anova;				/* analysis of variance procedure */
   class task;				/* class factors must be declared */
   model rate = task;			/* model statement */
   means task;				/* means and standard deviations */
   means task / lsd;			/* Fisher's LSD pairwise comparisons */
   means task / lsd lines;		/* force comparisons with common size */

proc glm;				/* general linear model procedure */
   class task;				/* class factor specification */
   model rate = task;			/* model statement */
   lsmeans task / stderr pdiff;		/* least squares means, with    */
					/* standard errors and p-values */
					/* for pairwise comparisons     */
   output out=savit p=prate r=rrate;	/* save predicted and residual */

data dev; set savit;			/* data step */
   absdev = abs(rrate);			/* absolute deviation from mean */
proc plot;				/* plot procedure */
   plot rate*prate prate*prate='*' / overlay;	/* mean vs. values */
   plot absdev*prate;			/* mean vs. absolute deviation */
