BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
yw2757
Fluorite | Level 6

Efficacy analysis of the percent change from Day 1 to Day 56 in LDL-C will be performed using a mixed model for repeated measures (MMRM) approach. The MMRM approach will include all available assessments of percent change in LDL-C from Baseline to Day 28 and Day 56.

The Restricted Maximum Likelihood estimation approach will be used with an unstructured covariance matrix. The least squares means, standard errors, and 2-sided 95% confidence intervals for each treatment group and for the pairwise comparisons of each dose of active group to the placebo group will be provided. Adjustment for multiple comparisons will be made using Dunnett’s test in accordance with the power and sample size calculations utilized for the study.

Only interest in multiple comparison at Day 56, and not sure how Adjust option use in LSMEANS.

AVISITN= 3= Day 28 / AVISITN=4= DAY 56

 

PROC MIXED DATA= dsin;
  Where PCHG^=.;
  Class USUBJID AVISITN TRTN(ref="1");
  Model PCHG = AVISITN|TRTN BASE / solution cl ;
  Repeated AVISITN / TYPE=UN Sub=USUBJID;
  LsMeans TRTN / at (AVISITN)=(4) Adjust=DUNNETT;
RUN;

 

yw2757_0-1623451372147.png

 

Any suggestion?

 

1 ACCEPTED SOLUTION

Accepted Solutions
jiltao
SAS Super FREQ

Your code should work if you treat AVISITN as a continuous variable. If that is what you want, you might want to create another variable avisit = avisitn, put avisit in the CLASS statement (take avisitn out of the CLASS statement so avisitn is now a continuous variable), and specify avisit in the REPEATED statement as only CLASS variable is allowed for the repeated effect.

Please note that adjust=dunnett implies that you are comparing trtn against the control, which by default is the first level of trtn. It does not do all pairwise comparisons for trtn. How many levels do yo have for trtn?

 

If you want to treat AVISITN as a classification variable, you might want to use the SLICE statement, but I am not sure if you will get exactly what you want. One way is to use --

 

slice trtn*avisitn / sliceby=avisitn adjust=dunnett;

This will give you comparisons of trtn against the control (which is the first level by default) for each level of avisitn. You will just need to look at the results for avisitn=4 and ingore others. 

If you take out adjust=dunnett, you would get all comparisons of trtn for each level of avisitn. Then you will just examine the result for avisitn=4 and ignore others.

Please note that your request of adjust=dunnett and all comparisons of trtn against each other (regardless of avisitn value) does not go together. You cannot get both.

 

Another way of using the SLICE statement is to specify your CLASS statement as

Class USUBJID TRTN(ref="1") avisitn;  *** avisitn is after trtn;

then use the SLICE statement such as --

slice trtn*avisitn / diff=control('1' '4') adjust=dunnett;

This will compare all trtn against the level '1' for just avisitn=4 with Dunnett adjusted p-values. You can change the reference level for trtn to something else, but again, you cannot get all pairwise comparisons for trtn (depending on how many levels of trtn you have, this might or might not matter).

 

If you still want all pairwise comparisons for trtn for just avisitn=4, then you might have to write ESTIMATE or LSMESTIMATE statements for that, but ADJUST=DUNNETT might not be available.

 

 

View solution in original post

5 REPLIES 5
jiltao
SAS Super FREQ

Do you want to compare trtn among each other for only day 56, or do you want to compare other days against day 56 (averaged over trtn)?

yw2757
Fluorite | Level 6

"compare TRTN among each other for only day 56" is the goal

jiltao
SAS Super FREQ

Your code should work if you treat AVISITN as a continuous variable. If that is what you want, you might want to create another variable avisit = avisitn, put avisit in the CLASS statement (take avisitn out of the CLASS statement so avisitn is now a continuous variable), and specify avisit in the REPEATED statement as only CLASS variable is allowed for the repeated effect.

Please note that adjust=dunnett implies that you are comparing trtn against the control, which by default is the first level of trtn. It does not do all pairwise comparisons for trtn. How many levels do yo have for trtn?

 

If you want to treat AVISITN as a classification variable, you might want to use the SLICE statement, but I am not sure if you will get exactly what you want. One way is to use --

 

slice trtn*avisitn / sliceby=avisitn adjust=dunnett;

This will give you comparisons of trtn against the control (which is the first level by default) for each level of avisitn. You will just need to look at the results for avisitn=4 and ingore others. 

If you take out adjust=dunnett, you would get all comparisons of trtn for each level of avisitn. Then you will just examine the result for avisitn=4 and ignore others.

Please note that your request of adjust=dunnett and all comparisons of trtn against each other (regardless of avisitn value) does not go together. You cannot get both.

 

Another way of using the SLICE statement is to specify your CLASS statement as

Class USUBJID TRTN(ref="1") avisitn;  *** avisitn is after trtn;

then use the SLICE statement such as --

slice trtn*avisitn / diff=control('1' '4') adjust=dunnett;

This will compare all trtn against the level '1' for just avisitn=4 with Dunnett adjusted p-values. You can change the reference level for trtn to something else, but again, you cannot get all pairwise comparisons for trtn (depending on how many levels of trtn you have, this might or might not matter).

 

If you still want all pairwise comparisons for trtn for just avisitn=4, then you might have to write ESTIMATE or LSMESTIMATE statements for that, but ADJUST=DUNNETT might not be available.

 

 

PGStats
Opal | Level 21

Try the SLICE statement to compare the levels of TRTN when AVISITN=4

 

PROC MIXED DATA= dsin;
  Where PCHG^=.;
  Class USUBJID AVISITN TRTN(ref="1");
  Model PCHG = AVISITN|TRTN BASE / solution cl ;
  Repeated AVISITN / TYPE=UN Sub=USUBJID;
  Slice AVISITN*TRTN / sliceby=(AVISITN='4') Adjust=DUNNETT;
RUN;
PG
jiltao
SAS Super FREQ

I do not think this SLICE statement works. The SLICEBY= syntax is not appropriate.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

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
  • 5 replies
  • 4013 views
  • 2 likes
  • 3 in conversation