Assuming that your response is lognormal, you could get the geometric mean estimates and your "relative change" estimates, by fitting a normal model to the log-transformed response and then use the NLEstimate macro. For example:
proc genmod data=have;
class trt avisit;
model avallg=trt*avisit/noint;
store g;
run;
%nlestimate(instore=g, label=geoAbase, f=exp(b_p1), df=1e4)
%nlestimate(instore=g, label=geoAvisit2, f=exp(b_p2), df=1e4)
%nlestimate(instore=g, label=geoBbase, f=exp(b_p3), df=1e4)
%nlestimate(instore=g, label=geoBvisit2, f=exp(b_p4), df=1e4)
%nlestimate(instore=g, label=geoAbase, f=exp(b_p1), df=1e4)
%nlestimate(instore=g, label=RC A, f=exp(b_p2)-exp(b_p1), df=1e4)
%nlestimate(instore=g, label=RC B, f=exp(b_p4)-exp(b_p3), df=1e4)
The large df= value is used to get large sample confidence intervals. The delta method is used to compute the confidence limits. See the macro documentation for how to use the macro and additional examples of its use for estimating linear or nonlinear functions of model parameters.
A simpler alternative to get just the geometric mean estimates is to use LSMEANS in GENMOD. This uses a different method to compute the limits. See the exponentiated results in the LSMEANS table.
proc genmod data=have;
class trt avisit;
model avallg=trt|avisit;
lsmeans trt*avisit / exp cl;
run;
... View more