[R] Random intercept model with time-dependent covariates, results different from SAS

Dan Bebber danbebber at forestecology.co.uk
Wed Jul 7 11:39:40 CEST 2004


Hello,
I have been struggling with a similar problem, i.e. fitting an LME model to
unbalanced repeated measures data.
I found "Linear Mixed Models" by John Fox
(http://socserv2.socsci.mcmaster.ca/jfox/Books/Companion/appendix-mixed-mode
ls.pdf)
quite helpful.
Fox gives examples which are unbalanced, so I guess that balance is not a
requirement (assuming Fox is correct). However, the sample sizes are large
compared to yours (and mine), which may make a difference.

Dan Bebber

____________________________
Dr. Daniel P. Bebber
Department of Plant Sciences
University of Oxford
South Parks Road
Oxford
OX1 3RB
Tel. 01865 275060
Web. http://www.forestecology.co.uk/

"Data, data, data!" he cried impatiently. "I can't make bricks without
clay"
- Sherlock Holmes, The Adventure of the Copper Beeches, 1892



> Message: 24
> Date: Sun,  4 Jul 2004 19:21:32 +1000
> From: Keith Wong <keithw at med.usyd.edu.au>
> Subject: Re: [R] Random intercept model with time-dependent covariates,
results different from AS
> To: Prof Brian Ripley <ripley at stats.ox.ac.uk>
> Cc: r-help at stat.math.ethz.ch
> Message-ID: <1088932892.40e7cc1c8c24d at www.mail.med.usyd.edu.au>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Thank you for the very prompt response. I only included a small
> part of the
> output to make the message brief. I'm sorry it did not provide
> enough detail to
> answer my question. I have appended the summary() and anova()
> outputs to the
> two models I fitted in R.
>
> Quoting Prof Brian Ripley <ripley at stats.ox.ac.uk>:
>
> > Looking at the significance of a main effect (group) in the
> presence of an
> > interaction (time:group) is hard to interpret, and in your case
> is I think
> > not even interesting.  (The `main effect' probably represents difference
> > in intercept for the time effect, that is the group difference
> at the last
> > time.  But see the next para.)  Note that the two systems are returning
> > different denominator dfs.
>
>
> I take your point that the main effect is probably not interesting in the
> presence of an interaction. I was checking the results for
> consistency to see
> if I was doing the right thing. I was not 100% sure that the SAS
> code was in
> itself correct.
>
> > At this point you have not told us enough.  My guess is that you have
> > complete balance with the same number of subjects in each
> group.  In that
> > case the `group' effect is in the between-subjects stratum (as
> defined for
> > the use of Error in aov, which you could also do), and thus R's 11 df
> > would be right (rather than 44, without W and Z).  Without balance Type
> > III tests get much harder to interpret and the `group' effect
> would appear
> > in two strata and there is no simple F test in the classical theory.  So
> > further guessing, SAS may have failed to detect balance and so used the
> > wrong test.
>
> I had not appreciated the need for balance: in actual fact, one
> group has 5
> subjects and the other 7. Will this be a problem? Would the R
> analysis still be
> valid in that case?
>
>
> > The time-dependent covariates muddy the issue more, and I
> looked mainly at
> > the analyses without them.  Again, a crucial fact is not here: do the
> > covariates depend on the subjects as well?
>
> Yes the covariates are measures of blood pressure and pulse, and
> they depend on
> the subjects as well.
>
> > The good news is that the results _are_ similar.  You do have different
> > time behaviour in the two groups.  So stop worrying about tests of
> > uninteresting hypotheses and concentrate of summarizing that difference.
> >
> > --
> > Brian D. Ripley,                  ripley at stats.ox.ac.uk
> > Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> > University of Oxford,             Tel:  +44 1865 272861 (self)
> > 1 South Parks Road,                     +44 1865 272866 (PA)
> > Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>
>
> Thank you. I was concerned that one or both methods were
> incorrect given the
> results were inconsistent. Perhaps reassuringly, the parameter
> estimates for
> the fixed effects in both SAS and R were the same.
>
> Is the model specification OK for the model with just time, group
> and their
> interaction?
> Is the model specification with the 2 time dependent covariates
> appropriate?
>
> Once again, I'm very grateful for the time you've taken to answer
> my questions.
>
> Keith
>
> [Output from the 2 models fitted in R follows]
>
> > g1 = lme(Y ~ time + group + time:group, random = ~ 1 | id, data
> = datamod)
>
> > anova(g1)
>             numDF denDF   F-value p-value
> (Intercept)     1    44  3.387117  0.0725
> time            4    44 10.620547  <.0001
> group           1    11  0.508092  0.4908
> time:group      4    44  3.961726  0.0079
> > summary(g1)
> Linear mixed-effects model fit by REML
>  Data: datamod
>        AIC      BIC    logLik
>   372.4328 396.5208 -174.2164
>
> Random effects:
>  Formula: ~1 | id
>         (Intercept) Residual
> StdDev:    11.05975 3.228684
>
> Fixed effects: Y ~ time + group + time:group
>               Value Std.Error DF   t-value p-value
> (Intercept)   8.250  4.073428 44  2.025321  0.0489
> time1        -0.250  1.614342 44 -0.154862  0.8776
> time2        -8.125  1.614342 44 -5.033011  0.0000
> time3        -8.875  1.614342 44 -5.497596  0.0000
> time4        -4.250  1.614342 44 -2.632652  0.0116
> group1        2.126  6.568205 11  0.323681  0.7523
> time1:group1 -2.734  2.603048 44 -1.050307  0.2993
> time2:group1  5.583  2.603048 44  2.144793  0.0375
> time3:group1  5.549  2.603048 44  2.131732  0.0387
> time4:group1  3.634  2.603048 44  1.396056  0.1697
>  Correlation:
>              (Intr) time1  time2  time3  time4  group1 tm1:g1
> tm2:g1 tm3:g1
> time1        -0.198
>
> time2        -0.198  0.500
>
> time3        -0.198  0.500  0.500
>
> time4        -0.198  0.500  0.500  0.500
>
> group1       -0.620  0.123  0.123  0.123  0.123
>
> time1:group1  0.123 -0.620 -0.310 -0.310 -0.310 -0.198
>
> time2:group1  0.123 -0.310 -0.620 -0.310 -0.310 -0.198  0.500
>
> time3:group1  0.123 -0.310 -0.310 -0.620 -0.310 -0.198  0.500
> 0.500
> time4:group1  0.123 -0.310 -0.310 -0.310 -0.620 -0.198  0.500
> 0.500  0.500
>
> Standardized Within-Group Residuals:
>         Min          Q1         Med          Q3         Max
> -2.63416413 -0.42033405  0.03577472  0.46164486  1.74068368
>
> Number of Observations: 65
> Number of Groups: 13
>
>
> > g2 = lme(Y ~ time + group + time:group + W + Z, random = ~ 1 |
> id, data =
> datamod)
>
> > anova(g2)
>             numDF denDF  F-value p-value
> (Intercept)     1    42  5.54545  0.0233
> time            4    42 16.41069  <.0001
> group           1    11  0.83186  0.3813
> W               1    42  0.07555  0.7848
> Z               1    42 45.23577  <.0001
> time:group      4    42  3.04313  0.0273
>
> > summary(g2)
> Linear mixed-effects model fit by REML
>  Data: datamod
>        AIC      BIC    logLik
>   355.2404 382.8245 -163.6202
>
> Random effects:
>  Formula: ~1 | id
>         (Intercept) Residual
> StdDev:    8.639157 2.597380
>
> Fixed effects: Y ~ time + group + time:group + W + Z
>                  Value Std.Error DF   t-value p-value
> (Intercept)  10.056433  9.583658 42  1.049331  0.3000
> time1         0.209668  1.301306 42  0.161121  0.8728
> time2         4.111435  2.556420 42  1.608278  0.1153
> time3         0.423056  2.077066 42  0.203679  0.8396
> time4        -3.976417  1.300572 42 -3.057437  0.0039
> group1        4.677706  5.162006 11  0.906180  0.3843
> W             0.377142  0.127146 42  2.966212  0.0050
> Z            -0.531895  0.093276 42 -5.702395  0.0000
> time1:group1 -0.845857  2.126289 42 -0.397809  0.6928
> time2:group1 -5.145361  2.962470 42 -1.736848  0.0897
> time3:group1 -3.261241  2.597008 42 -1.255769  0.2161
> time4:group1  4.153245  2.096587 42  1.980956  0.0542
>  Correlation:
>              (Intr) time1  time2  time3  time4  group1 W      Z
>    tm1:g1
> tm2:g1
> time1        -0.051
>
>
> time2         0.199  0.308
>
>
> time3         0.023  0.361  0.817
>
>
> time4        -0.029  0.501  0.293  0.342
>
>
> group1       -0.202  0.131  0.136  0.146  0.129
>
>
> W            -0.790  0.019  0.243  0.366 -0.015  0.044
>
>
> Z            -0.146 -0.063 -0.853 -0.779 -0.041 -0.086 -0.409
>
>
> time1:group1 -0.028 -0.601 -0.043 -0.074 -0.302 -0.187  0.147
> -0.144
>
> time2:group1 -0.293 -0.262 -0.818 -0.642 -0.255 -0.198 -0.051
> 0.665  0.276
>
> time3:group1 -0.016 -0.286 -0.626 -0.774 -0.273 -0.214 -0.277
> 0.590  0.308
> 0.668
> time4:group1  0.065 -0.306 -0.116 -0.159 -0.616 -0.199  0.002
> -0.046  0.497
> 0.318
>              tm3:g1
> time1
> time2
> time3
> time4
> group1
> W
> Z
> time1:group1
> time2:group1
> time3:group1
> time4:group1  0.376
>
> Standardized Within-Group Residuals:
>         Min          Q1         Med          Q3         Max
> -2.11181231 -0.43210237  0.04949838  0.32444580  2.77710590
>
> Number of Observations: 65
> Number of Groups: 13
> >
>
>
>
> ------------------------------
>
> Message: 25
> Date: Sun, 4 Jul 2004 10:24:47 +0100 (BST)
> From: Prof Brian Ripley <ripley at stats.ox.ac.uk>
> Subject: Re: [R] Re: Seasonal ARMA model
> To: Ajay Shah <ajayshah at mayin.org>
> Cc: r-help at stat.math.ethz.ch
> Message-ID: <Pine.LNX.4.44.0407041021440.9904-100000 at gannet.stats>
> Content-Type: TEXT/PLAIN; charset=US-ASCII
>
> On Sun, 4 Jul 2004, Ajay Shah wrote:
>
> > > It might clarify your thinking to note that a seasonal ARIMA model
> > > is just an ``ordinary'' ARIMA model with some coefficients
> > > constrained to be 0 in an efficient way.  E.g.  a seasonal AR(1) s =
> > > 4 model is the same as an ordinary (nonseasonal) AR(4) model with
> > > coefficients theta_1, theta_2, and theta_3 constrained to be 0.  You
> > > can get the same answer as from a seasonal model by using the
> > > ``fixed'' argument to arima.  E.g.:
> >
> >    set.seed(42)
> >    x <- arima.sim(list(ar=c(0,0,0,0.5)),300)
> >    f1 = arima(x,seasonal=list(order=c(1,0,0),period=4))
> >    f2 =
> arima(x,order=c(4,0,0),fixed=c(0,0,0,NA,NA),transform.pars=FALSE)
> >
> > Is there a convenient URL which shows the mathematics of the seasonal
> > ARMA model, as implemented by R?
>
> No, but there is a book, MASS4 (see the FAQ).  Although the
> software is in
> base R it was in fact written by me to support MASS4.
>
> R follows S-PLUS in some of its choices of signs, which do differ between
> accounts.
>
> > I understand f2 fine. I understand that you are saying that f1 is just
> > an AR(4) with the lags 1,2,3 constrained to 0. But I'm unable to
> > generalise this. What would be the meaning of mixing up both order and
> > seasonal? E.g. what would it mean to do something like:
> >
> >  arima(x,order=c(2,0,0),seasonal=list(order=c(2,0,0),period=12))
>
> That is in MASS4 and most of the books referenced on the help page.
>
> --
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>
>
>
> ------------------------------
>
> Message: 26
> Date: Sun, 04 Jul 2004 11:38:30 +0200
> From: Peter Mathe <mathe at wias-berlin.de>
> Subject: [R] Is there rpm for suse 9.1 under x86_64?
> To: R-help at stat.math.ethz.ch
> Message-ID: <40E7D016.4060705 at wias-berlin.de>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> I recently upgraded to Suse 9.1 for Amd64.
> So far I could not find precompiled binaries of R-1.9.1 for this case.
> So I tried installation from source, but could not succeed. Although the
> configuration/installation procedure ran without problems, the make
> check always ended with errors. When trying to run R , to see what's
> going on, the eigen() reported error code -18.
> So, is a  rpm for R-base-1.9.1 under x86_64 for Suse available, or how
> can I succesfully install from sources?
> Thank's for reading this message, Peter
>
>
>
> ------------------------------
>
> Message: 27
> Date: 04 Jul 2004 11:53:54 +0200
> From: Peter Dalgaard <p.dalgaard at biostat.ku.dk>
> Subject: Re: [R] Is there rpm for suse 9.1 under x86_64?
> To: Peter Mathe <mathe at wias-berlin.de>
> Cc: R-help at stat.math.ethz.ch
> Message-ID: <x2ekns2j4d.fsf at biostat.ku.dk>
> Content-Type: text/plain; charset=us-ascii
>
> Peter Mathe <mathe at wias-berlin.de> writes:
>
> > I recently upgraded to Suse 9.1 for Amd64.
> > So far I could not find precompiled binaries of R-1.9.1 for this case.
> > So I tried installation from source, but could not succeed. Although
> > the configuration/installation procedure ran without problems, the
> > make check always ended with errors. When trying to run R , to see
> > what's going on, the eigen() reported error code -18.
> > So, is a  rpm for R-base-1.9.1 under x86_64 for Suse available, or how
> > can I succesfully install from sources?
>
> I can't get the upgrade working for me (SATA trouble -- again!) but I
> have 9.0 on a system. This has run cleanly for a while with a
> home-built RPM based on Detlef's SPEC file, as well as several local
> builds.
>
> A good guess is that they upgraded GCC and something got broken --
> again. You could try reducing the optimization levels on the relevant
> files, or as the first thing on everything (-O0 in CFLAGS and FFLAGS).
>
> > Thank's for reading this message, Peter
>
> How did you know I would, Peter? ;-)
> --
>    O__  ---- Peter Dalgaard             Blegdamsvej 3
>   c/ /'_ --- Dept. of Biostatistics     2200 Cph. N
>  (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907
>
>
>
> ------------------------------
>
> _______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE read the posting guide! http://www.R-project.org/posting-guide.html
>
>
> End of R-help Digest, Vol 17, Issue 4
> *************************************
>




More information about the R-help mailing list