While PROC GEE proposed by @StatDave_sas is a straghtforward way to get LSMEANS for your model, you might use the ESTIMATE statement in PROC GLIMMIX to compute the LSMEANS. The exact syntax for the ESTIMATE statement depends on your data and model, but the following example code might be helpful to you --
data test; do id=1 to 1000; trt=ceil(ranuni(123)*2); do time=1 to 3; n=rantbl(123,.10,.20,.25,.30,.15); output; end; end; run; proc glimmix data=test; class trt time; model n=trt time trt*time / dist=multinomial link=clogit s; estimate 'p(n=1) for trt=1' int 1 trt 1 / ilink e; estimate 'p(n=1) for trt=2' int 1 trt 0 1 / ilink e; estimate 'p(n=1,2) for trt=1' int 0 1 trt 1 time .33333 .33333 .33333 trt*time .33333 .33333 .33333/ ilink e; estimate 'p(n=1,2) for trt=2' int 0 1 trt 0 1 time .33333 .33333 .33333 trt*time 0 0 0 .33333 .33333 .33333/ ilink e; estimate 'p(n=1,2) for trt=1,time=2' int 0 1 trt 1 time 0 1 0 trt*time 0 1 0 0 0 0 / ilink; estimate 'p(n=1,2) for trt=2,time=2' int 0 1 trt 0 1 time 0 1 0 trt*time 0 0 0 0 1 0 / ilink; estimate 'difference' trt -1 1 time 0 0 0 trt*time 0 -1 0 0 1 0; estimate 'p(n=1,2,3) for trt=1,time=2' int 0 0 1 trt 1 time 0 1 0 trt*time 0 1 0 0 0 0 / ilink; estimate 'p(n=1,2,3) for trt=2,time=2' int 0 0 1 trt 0 1 time 0 1 0 trt*time 0 0 0 0 1 0 / ilink; estimate 'difference' trt -1 1 time 0 0 0 trt*time 0 -1 0 0 1 0; estimate 'p(n=1,2) for trt=2' int 0 1 trt 0 1 time .33333 .33333 .33333 trt*time 0 0 0 .33333 .33333 .33333/ ilink; estimate 'p(n=1,2,3) for trt=1' int 0 0 1 trt 1 time .33333 .33333 .33333 trt*time .33333 .33333 .33333/ ilink; estimate 'p(n=1,2,3) for trt=2' int 0 0 1 trt 0 1 time .33333 .33333 .33333 trt*time 0 0 0 .33333 .33333 .33333/ ilink; run;
Jill
... View more