I have a population of 114 subjects. For each subject I have repeated measurements (1 each day) of the variable assessed (activity level). The number of measures varies for each subject (number of assessed days) and the median number of measures for each subject is 4.

Data can be downloaded here

Can I simply take the average of the measures to continue with my statistical analysis of the population, i.e. each subject will be represented by the average measure across the assessed days. Should I perform a statistical test before doing that? which one?

Could you please suggest the workflow? My purpose is to find whether there are differences in the variable measured between group of subjects (lets say first 57 subjects are groupA and last 57 subjects are group B).

My attempt (results are obtained using MATLAB, but should be interpretable):

  • I fit a repeated model of the type 't1-t5 ~ Group' meaning that measurements t1-t5 are the responses and the groups is the predictor variable

    Time = [1 2 3 4 5]' %array contaning the day of assessment

    rm = fitrm(table,'t1-t5 ~ Group','WithinDesign',Time) %table is a matlab table contaning the data

the coefficients of the models are

                   t1         t2         t3         t4        t5   
                 _______    _______    _______    ______    _______

(Intercept)       425.64     412.64     425.64    414.05     443.64
Group_A          -52.182    -12.636    -23.182     -47.5    -45.455
  • I check Mauchly's test for sphericity

    tbl = mauchly(rm) % if small use the correction when compute p value in ranova

tbl =

   W       ChiStat    DF    pValue 
_______    _______    __    _______

0.84303    3.1446     9     0.95828

p value is > than 0.05 so I do not have to correct the repeated ANOVA

  • I run repeated ANOVA

    ranovatbl = ranova(rm)

ranovatbl =

                      SumSq       DF    MeanSq       F       pValue     pValueGG    pValueHF    pValueLB
                    __________    __    ______    _______    _______    ________    ________    ________

(Intercept):Time         13611     4    3402.6    0.98232    0.42203    0.41863     0.42203     0.33347 
Group:Time               26256     4    6564.1      1.895    0.11938    0.12457     0.11938     0.18386 
Error(Time)         2.7711e+05    80    3463.9

It tells me that there are no effect of days in the activity level, and there are no differences between groups.

  • I compute the marginal means

    M = margmean(rm,{'Group'})

 Group      Mean     StdErr    Lower     Upper 
_______    ______    ______    ______    ______

A          388.13    18.68     349.16    427.09
B          460.51    18.68     421.54    499.47
  • $\begingroup$ It is not a good idea to use the mean for each day, because these means are computed with a different number of terms. Probably you should look at mixed effect models, see stats.stackexchange.com/questions/166434/… $\endgroup$
    – user83346
    Commented Aug 28, 2015 at 9:57
  • $\begingroup$ Thanks. Is repeated ANOVA OK? Should I test any assumption before using it? Thanks a lot $\endgroup$
    – gabboshow
    Commented Aug 28, 2015 at 10:01
  • $\begingroup$ Well I don't know mathlab and without data it is not easy to tell how to proceed in detail but it sounds as if you want to estimate something like $y=\beta_1 + \beta_2 G + \epsilon$ where $y$ is the number of steps, $G$ the group. The problem you have is that your var-covar matrix of $\epsilon$ is not diagonal because of the repeated measures, so you have to use Generalised Least Squares (GLS) to estimate it, using several var-covar patterns (unstructured, compound symmetry, ...) and decide which one fits best (with likelihood ratio test). (see the reference in the answer on the patients) $\endgroup$
    – user83346
    Commented Aug 28, 2015 at 10:16
  • $\begingroup$ Hi, according to the ANOVA for repeated measurements (see question) I think that I can say that there is not significant effect of the repeated measurements (time) on the measured variables and on the groups...maybe then I can take the mean right? $\endgroup$
    – gabboshow
    Commented Aug 28, 2015 at 11:35
  • $\begingroup$ Sorry but without data it is hard to tell whether this is 'right' or 'wrong' or whether one 'can do' this, I don't know which assumptions have been made (e.g. for the var-covar structure) but as far as I am concerned you are free to 'take' whatever you want :-) $\endgroup$
    – user83346
    Commented Aug 28, 2015 at 11:53

1 Answer 1


I imported your dataset, converted it to long form, and ran a mixed model in R. I used the packages lme4 and lmerTest:

M1 <- lmer(outcome ~ group + time + (1|ID), data=cv.long)

As you can see, I included time as a linear independent variable and ID (person ID) as a random constant. This gives an estimate of 25.266 for belonging to group B, and std. error 12.328. P = 0.0427, so this model supports a slight difference between the groups.

I loaded the data to SPSS, converted the variables that had NaN's to numeric variables, and saved the data to a .sav file. I also changed group A to 1 and group B to 2. I then applied the following code in R:

cv.data <- read.spss("/Users/jonasberge/Dropbox/R/crossvalidated_data.sav",  to.data.frame = T)
cv.long <- reshape(cv.data, 
    varying = c("t1", "t2", "t3", "t4", "t5"), 
    v.names = "outcome",
    timevar = "time", 
    times = c(1, 2, 3, 4, 5), 
    direction = "long")
M1 <- lmer(outcome ~ Group + time + (1|id), data=cv.long)

This gives the following output:

Linear mixed model fit by REML 
t-tests use  Satterthwaite approximations to degrees of freedom ['lmerMod']
Formula: outcome ~ Group + time + (1 | id)
   Data: cv.long

REML criterion at convergence: 5376.7

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.3032 -0.5652  0.0447  0.5502  4.6394 

Random effects:
 Groups   Name        Variance Std.Dev.
 id       (Intercept) 3213     56.69   
 Residual             4482     66.95   
Number of obs: 466, groups:  ID, 114

Fixed effects:
            Estimate Std. Error      df t value Pr(>|t|)    
(Intercept)  401.707     11.078 252.600  36.263   <2e-16 ***
Group2        25.266     12.328 112.200   2.049   0.0427 *  
time           1.421      2.610 361.300   0.545   0.5864    
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
       (Intr) group2
Group2 -0.572       
time   -0.613  0.019

You can download the dataset here: https://www.dropbox.com/s/42y6sgtznl1wfju/crossvalidated_data.sav?dl=0

Hope this helps.

  • $\begingroup$ Hi! thanks! what I do in matlab is fitting a repeated measures model, where the measurements t1-t5 are the responses and the groups is the predictor variable. Could you have a look at nl.mathworks.com/help/stats/… to see in what we differ? $\endgroup$
    – gabboshow
    Commented Aug 28, 2015 at 13:34
  • $\begingroup$ Hi, very interested in checking your lmer call, but I can't find the data. Can you help? The hyperlink in OP leads me to some mathlab info. Ty $\endgroup$ Commented Aug 28, 2015 at 13:43
  • $\begingroup$ data is back...sorry $\endgroup$
    – gabboshow
    Commented Aug 28, 2015 at 13:49
  • $\begingroup$ I updated the post and included a link so that you can download the data in long form. I have no experience in using matlab so I can't help you there, I'm sorry. $\endgroup$
    – JonB
    Commented Aug 28, 2015 at 13:52
  • $\begingroup$ R code to convert your data to long form $\endgroup$ Commented Aug 28, 2015 at 14:38

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.