/* MULTIPLE SAMPLE PROFILE EXAMPLE */ DM 'LOG;CLEAR;OUT;CLEAR;'; Options ls=75 Compress = No sasautos='~/gauss/sas_macros/'; /* Data from Rencher, 2002, Page 201 */ DATA Pig_raw; INFILE 'pig.dat'; INPUT grp wt1-wt6; array y{6} wt1-wt6; array z{6} transwt1-transwt6; do i=1 to 6; z{i}=y{i}; z{i}=(z{i}/500)**5; end; psi_time=-.25*transwt2+.5*transwt3-.75*transwt4+.5*transwt6; psi_gxt =.1*transwt1-.4*transwt2+.8*transwt4-.1*transwt5-.4*transwt6; %transform(data=Pig_raw, class=grp, response=wt1-wt6, explanatory=grp, Polydeg=5, levels=6); data tmp; set Pig_raw; keep transwt1-transwt6; proc iml; use tmp; read all into Y; time = {1 3 4 5 6 7}; poly=orpol(time,5); print poly; Z=Y*poly; varnames={poly0 poly1 poly2 poly3 poly4 poly5}; create tmp2 from Z (|colname=varnames|); append from Z; close tmp2; data Pig1; set tmp2 pig_raw; merge tmp2 Pig_raw; proc glm data = pig1; class grp; model transwt1-transwt6= grp/nouni; repeated Time 6 (1 3 4 5 6 7) polynomial /printm printe printrv; * manova H=intercept M=(0 -0.25 .5 -.75 0 .5) mnames=optimal_time; * contrast 'Optimal G x T' grp 1 -1 0; * manova H=grp M=(.1 -.4 0 .8 -.1 -.4) mnames = optimal_TG; lsmeans grp; proc glm data = pig1; class grp; model psi_time psi_gxt poly0 poly1 poly2 poly3 poly4 poly5 = grp; lsmeans grp; estimate 'Ave Profile' intercept 3 grp 1 1 1/divisor=3; estimate 'Zero vs Low: T X G' grp 1 -1; run;