• I am conducting a parallel-arm randomized controlled trial comparing Treatment A against a Control.

  • Each week for 10 weeks I measure anxiety in each group each week (giving a total of 10 repeated measurements in each group).

  • The primary outcome of interest is mean anxiety at week 10 in Treatment A compared to the Control. This can be assessed through ANCOVA on the week 10 data using the baseline as covariate.

  • However, I am unsure of how to analyze my repeated measurements as a secondary/exploratory outcome. Repeated measurements ANCOVA seems inefficient.


  • What are some ways in which I could analyze my 10 repeated measurements as a secondary/exploratory outcome? E.g., perhaps looking at differences in the rate of decline in anxiety in both groups.

Additional Information - Simulated Sample Data

  • I've simulated some data to provide an idea of what this dataset might look like, and is available here in CSV format: https://pastebin.com/XjcQG8s0.

  • Here is a plot of the raw data, where the outcome is anxiety (lower = better outcome), time is the measurement timepoint, treat = treatment group, and con = control group. The filled black circles represent the unadjusted means at each time point for each group.

enter image description here

  • $\begingroup$ You shouldn't compare only the week 10 results, you should include all weeks, check how mean anxiety changes through time. A mixed model may be appropriate. $\endgroup$ Oct 6, 2021 at 7:45
  • $\begingroup$ I'm unsure what this model would look like and what the effect size of interest is? Is this the mean difference at every time point, or a difference in the rate of change summarized as a single value? Could you be a bit more specific on your proposed model, effect size, and research question it answers? $\endgroup$
    – pomodoro
    Oct 6, 2021 at 8:24
  • $\begingroup$ That depends on your research question, you have to decide what matters to you, but I would say comparing only the last week results is not very informative. In a mixed model you could code each week as a categorical variable and obtain a mean anxiety score for each week, which you could then compare with the other weeks. Or you could code week as a numerical variable and get only 1 slope for all the weeks, telling you how mean anxiety increases/decreases with time. I cannot comment on "effect size" as I do not know what you mean by that. $\endgroup$ Oct 6, 2021 at 9:53
  • $\begingroup$ The effect size is the parameter estimate quantifying the effect of an intervention, such as a covariate adjusted mean difference or I suppose a difference in slopes for the treatment vs. control group. I'm having trouble articulating a research question in relation to a difference in slopes. Perhaps: Do subjects in the treatment group experience greater rate of decline in anxiety over time compared control? And what might this model look like in terms of a mixed model (e.g., the formula or lmer formula)? $\endgroup$
    – pomodoro
    Oct 6, 2021 at 10:07
  • $\begingroup$ That research question looks sensible, or alternatively does the rate of change (increase or decrease) differ between the control and treatment group? As for the model, can you share some sample data? $\endgroup$ Oct 6, 2021 at 10:16

1 Answer 1


Here are the two examples we discussed. First one is using time as a categorical variable (so 1 coefficient per time, time0 is in the intercept term).

> library(nlme)
> summary(lme(anxiety~group+time,random=~1|id,data=df))

Linear mixed-effects model fit by REML
 Data: df 
       AIC      BIC    logLik
  7543.898 7607.555 -3758.949

Random effects:
 Formula: ~1 | id
        (Intercept) Residual
StdDev:    7.357165 9.584044

Fixed effects: anxiety ~ group + time 
              Value Std.Error  DF   t-value p-value
(Intercept) 112.447  1.446703 891  77.72637       0
grouptreat  -24.974  1.591393  98 -15.69317       0
timet1       -6.210  1.355389 891  -4.58171       0
timet2      -14.600  1.355389 891 -10.77182       0
timet3      -19.890  1.355389 891 -14.67476       0
timet4      -25.410  1.355389 891 -18.74739       0
timet5      -32.080  1.355389 891 -23.66849       0
timet6      -37.240  1.355389 891 -27.47552       0
timet7      -37.410  1.355389 891 -27.60094       0
timet8      -37.320  1.355389 891 -27.53454       0
timet9      -37.170  1.355389 891 -27.42387       0

which is giving you a coefficient for each time, and a test is already done comparing each time>0 with time0, so for ex. timet9 is significantly different from time0 by -37.17 (p-values practically 0). Also there is a significant difference between the groups.

Alternatively you could use time as a continuous variable.

> df$timeC=as.numeric(substr(df$time,2,3))
> summary(lme(anxiety~group+timeC,random=~1|id,data=df))

Linear mixed-effects model fit by REML
 Data: df 
       AIC      BIC    logLik
  7720.564 7745.088 -3855.282

Random effects:
 Formula: ~1 | id
        (Intercept) Residual
StdDev:     7.23122 10.49891

Fixed effects: anxiety ~ group + timeC 
                Value Std.Error  DF   t-value p-value
(Intercept) 107.48864 1.2396866 899  86.70630       0
grouptreat  -24.97400 1.5913927  98 -15.69317       0
timeC        -4.39436 0.1155892 899 -38.01707       0

where you can see that the slope is also significantly different from zero and equal to -4.39, so each week anxiety decreases by this much (on average).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.