
options ls=79 nocenter;
data a;
   infile 'tukey.dat' firstobs=2;
   input temp humid y;
proc sort; by temp humid;
proc glm;
   class temp humid;
   model y = temp humid / ss1;
   lsmeans temp / out=temp;
   lsmeans humid / out=humid;
   output out = pred p = pred;

data b; set pred;
   inter = pred * pred / 2;
proc glm;
   class temp humid;
   model y = temp humid inter / ss1 solution;
   output out=m p=py r=ry;
proc print;

data c; set temp;
   ptemp = lsmean;
   drop lsmean;
proc sort; by temp;
data d; merge a c; by temp;
proc glm;
   class temp humid;
   model y = temp humid humid*ptemp / solution;
proc sort; by humid;

data e; set humid;
   phumid = lsmean;
   drop lsmean;
proc sort; by humid;
data f; merge d e; by humid;
proc glm;
   class temp humid;
   model y = temp humid phumid*ptemp / solution;
   output out=prt p=py r=ry;
proc print;
