BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
jesseh
Calcite | Level 5

I'm analyzing data using an MMRM with PROC MIXED. The covariates are treatment (i=1,2,3,4), visit (j=1,2,3,4,5), and age group (k=1,2,3) with three-way and all two-way interactions included, along with 3 other covariates. I'm mainly using ESTIMATE statements to provide treatment differences at visit 4, very simple. I have one hypothesis I want to test that is more complicated, and I can't figure out if I can use built-in SAS statements. 

 

I want to test if the difference between treatment 1 and 2 is the same across the 3 age groups at week 24. So, using the (ijk) notation...

H_0   =   mu_(141)-mu_(241) = mu(142)-mu_(242) = mu_(143)-mu_(243)

H_a    = not all equal

 

It would be simple to test the equality of any two of these expressions using ESTIMATE statements, but there are three expressions here I guess necessitating an ANOVA kind of test? I'm not sure how to go about coding this test. Main modeling code is below.

 

 

ods output estimates= ests lsmeans= lsms diffs= diffs;
proc mixed data=eff_pop method = reml;
class subj trt visit agegroup hist;
model chg = trt visit agegroup trt*visit trt*agegroup visit*agegroup trt*visit*agegroup  base  cont hist / ddfm=kr solution outp=predict;
repeated visit / type=un subject=subj;
lsmeans trt01pn|avisitn/ pdiff=all cl;

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
StatDave
SAS Super FREQ

Use the LSMEANS statement on the 3-way interaction to show the estimates and order of the means. Then use an LSMESTIMATE statement to test the joint hypothesis of the pairwise differences of the ones you want to compare.  For example, the following compares the first three and abbreviation treatment as t, visit as v, and age as a. It will be a 2 df test. For your case, you'll have a lot more zeros in each part to pick out the right means. Be careful to match your coefficients to the order of from the LSMEANS statement.

lsmeans t*v*a;
lsmestimate t*v*a '111=112' 1 -1 0, '111=113' 1 0 -1, '112=113' 0 1 -1 / joint;

View solution in original post

2 REPLIES 2
StatDave
SAS Super FREQ

Use the LSMEANS statement on the 3-way interaction to show the estimates and order of the means. Then use an LSMESTIMATE statement to test the joint hypothesis of the pairwise differences of the ones you want to compare.  For example, the following compares the first three and abbreviation treatment as t, visit as v, and age as a. It will be a 2 df test. For your case, you'll have a lot more zeros in each part to pick out the right means. Be careful to match your coefficients to the order of from the LSMEANS statement.

lsmeans t*v*a;
lsmestimate t*v*a '111=112' 1 -1 0, '111=113' 1 0 -1, '112=113' 0 1 -1 / joint;
jesseh
Calcite | Level 5

Thank you, this is perfect, I didn't know about the JOINT option. Just for any others looking at this post, here is the final code with I believe all the correct zeros and everything. 

 

 

ods output  lsmeans=lsms lsmestimate=lsmests;
proc mixed data=eff_pop method = reml;                                                   
   class subj trt visit agegroup hist;   
   model chg = trt visit agegroup trt*visit trt*agegroup
   	       visit*agegroup trt*visit*agegroup base cont hist   / ddfm=kr solution outp=predict;
   repeated visit / type=un subject=subj;
lsmeans trt*visit*agegroup;
lsmestimate trt*visit*agegroup 
'Difference within age group 1 at visit 4, trt 1 vs. 2'   0 0 0   0 0 0   0 0 0   1 0 0   0 0 0                0 0 0   0 0 0   0 0 0   -1 0 0  0 0 0                 0 0 0   0 0 0   0 0 0   0 0 0   0 0 0                0 0 0   0 0 0   0 0 0   0 0 0   0 0 0, 
'Difference within age group 2 at visit 4, trt 1 vs. 2'   0 0 0   0 0 0   0 0 0   0 1 0   0 0 0                0 0 0   0 0 0   0 0 0   0 -1 0   0 0 0                0 0 0   0 0 0   0 0 0   0 0 0   0 0 0                0 0 0   0 0 0   0 0 0   0 0 0   0 0 0,
'Difference within age group 3 at visit 4, trt 1 vs. 2'   0 0 0   0 0 0   0 0 0   0 0 1   0 0 0                0 0 0   0 0 0   0 0 0   0 0 -1   0 0 0                0 0 0   0 0 0   0 0 0   0 0 0   0 0 0                0 0 0   0 0 0   0 0 0   0 0 0   0 0 0/ joint;
run;
ods rtf close;

 

 

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 615 views
  • 3 likes
  • 2 in conversation