[R-sig-ME] lme posthoc constrasts for interaction effects group*time
Nicholas Lewin-Koh
nikko at hailmail.net
Tue Jun 22 17:18:53 CEST 2010
Hi Chris,
If you look at the code I sent, the second part uses the contrast
package to get
the contrast matrix for testing within the interaction. mcp does not
handle interactions (I think) but you can specifiy them more easily
using the contrast package and then peel off the contrast matrix for use
in multcomp.
Nicholas
On Tue, 22 Jun 2010 16:57 +0200, "Chris Kleier"
<chris.kleier at gmail.com> wrote:
Hi Nicholas,
Thanks for your help.
I have been looking at the contrast library, however, we are
interested in differences between interactions only and not
between group and interactions together.
In fact I would like:
test <- glht( model, lin = mcp( "group:time" = 'Tukey' ) )
This quesion is in fact similar to the question posted before:
[1]http://www.mail-archive.com/r-help@r-project.org/msg65720.h
tml
The mcp function is probably not able to manage interactions.
Chris
On Fri, Jun 18, 2010 at 6:27 PM, Nicholas Lewin-Koh
<[2]nikko at hailmail.net> wrote:
Hi,
Try
library(multcomp)
test<-glht(model,lin=mcp(group="Tukey"))
confint(test)
However, that just tests the marginal effect of group.
With interactions you want to test over time, probably a
simultaneous
interval.
This will get you close:
library(contrast)
ctt<-contrast(model, a=list( day=c(0,3,7,21,49), group=c(Small
Stroke",
"Large Stroke")),
b=list(day=c(0,3,7,21,49), group=c("Control",
"Control")))
## Extract the contrast matrix
cmtrx <- ctt$X
## Fit the contrasts using glht
ttgl<-glht(model,lin=cmtrx)
confint(ttgl)
hope this helps.
And do read the vignette in multcomp :)
Nicholas
> Message: 2
> Date: Thu, 17 Jun 2010 14:51:21 +0200
> From: Chris Kleier <[3]chris.kleier at gmail.com>
> To: R sig-mixed-models <[4]r-sig-mixed-models at r-project.org>
> Subject: [R-sig-ME] lme posthoc constrasts for interaction
effects
> group*time
> Message-ID:
>
<[5]AANLkTilMkK9HJZqXDZimDzKCswXElxw__dUVQpSnW8FQ at mail.gmail.c
om>
> Content-Type: text/plain
>
> Hi all,
>
> Our dataset is a repeated measures design including 3 groups
(a)
> Controls,
> (b) Small stroke and (c) Large stroke. We want to know if
the group
> behave
> different over time.
>
> We first fitted a lme with fixed = group * time (see below).
> Their was a significant interaction effect (see below as
well; p < 0.05)
>
> In the next step we want to know which groups have
significant
> interactions
> (Control - Stroke large, Control - Stroke small, Stroke
small - Stroke
> large), and their p-values + CIs.
>
> A posthoc Tukey, I think is fine. However, I do not know how
to setup the
> constrast matrix.
>
> These are the contrast names ( names( coef( model ) ) ):
> "(Intercept)", "groupStroke large", "groupStroke small",
"time",
> "groupStroke large:time" "groupStroke small:time"
>
> I guess, the model has to be refitted to get a contrast for
> "groupControl:time" as well, but I do not know how.
>
> Any solution known? (Probabily something in the direction
of: model.2 <-
> update( model, fixed = 0 + group * time ) )
>
> Thanks!
>
> Chris
>
>
>
>
>
> This is a print of the dataset:
>
> subject group value day
> 1 N03 Stroke small 0.47545500 0
> 2 N04 Stroke small 0.38866500 0
> 3 N19 Stroke small 0.64749800 0
> 4 N20 Stroke small 0.50468600 0
> 5 N22 Stroke small 0.55872300 0
> 6 N03 Stroke small 0.01979970 3
> 7 N04 Stroke small 0.05607250 3
> 8 N19 Stroke small -0.04506370 3
> 9 N20 Stroke small -0.33935400 3
> 10 N22 Stroke small 0.22052700 3
> 11 N03 Stroke small 0.29805300 7
> 12 N04 Stroke small -0.24908100 7
> 13 N19 Stroke small -0.02657290 7
> 14 N20 Stroke small -0.19483200 7
> 15 N22 Stroke small 0.50948000 7
> 16 N03 Stroke small 0.13056600 21
> 17 N04 Stroke small 0.33759500 21
> 18 N19 Stroke small 0.14929200 21
> 19 N20 Stroke small 0.25033100 21
> 20 N22 Stroke small 0.71456800 21
> 21 N03 Stroke small 0.39007100 49
> 22 N04 Stroke small 0.33254400 49
> 23 N19 Stroke small 0.27767600 49
> 24 N20 Stroke small 0.33467500 49
> 25 N22 Stroke small 0.52203500 49
> 26 N03 Stroke small 0.29851100 70
> 27 N04 Stroke small 0.50900200 70
> 28 N19 Stroke small 0.51781700 70
> 29 N20 Stroke small 0.69543700 70
> 30 N22 Stroke small 0.49337000 70
> 31 N01 Stroke large NA 0
> 32 N07 Stroke large 0.54930600 0
> 33 N09 Stroke large 0.59703600 0
> 34 N10 Stroke large 0.72751400 0
> 35 N17 Stroke large 0.63878400 0
> 36 N23 Stroke large 0.65749100 0
> 37 N24 Stroke large 0.60945900 0
> 38 N28 Stroke large NA 0
> 39 N01 Stroke large -0.31610900 3
> 40 N07 Stroke large -0.33615700 3
> 41 N09 Stroke large -0.24906400 3
> 42 N10 Stroke large 0.33868700 3
> 43 N17 Stroke large -0.31357300 3
> 44 N23 Stroke large -0.13162800 3
> 45 N24 Stroke large -0.45343700 3
> 46 N28 Stroke large -0.18206700 3
> 47 N01 Stroke large -0.05309070 7
> 48 N07 Stroke large -0.83318300 7
> 49 N09 Stroke large -0.49667100 7
> 50 N10 Stroke large -0.48083200 7
> 51 N17 Stroke large -0.28447000 7
> 52 N23 Stroke large 0.01842660 7
> 53 N24 Stroke large -0.50464400 7
> 54 N28 Stroke large 0.16456100 7
> 55 N01 Stroke large 0.24652600 21
> 56 N07 Stroke large -0.31566500 21
> 57 N09 Stroke large 0.39618900 21
> 58 N10 Stroke large -0.30702200 21
> 59 N17 Stroke large -0.28860100 21
> 60 N23 Stroke large -0.23851000 21
> 61 N24 Stroke large -0.00913697 21
> 62 N28 Stroke large 0.43462600 21
> 63 N01 Stroke large -0.20660100 49
> 64 N07 Stroke large -0.13044900 49
> 65 N09 Stroke large 0.24625000 49
> 66 N10 Stroke large -0.28206200 49
> 67 N17 Stroke large 0.29186400 49
> 68 N23 Stroke large -0.14246600 49
> 69 N24 Stroke large -0.11297700 49
> 70 N28 Stroke large 0.32027300 49
> 71 N01 Stroke large -0.00106427 70
> 72 N07 Stroke large -0.17264000 70
> 73 N09 Stroke large 0.26417500 70
> 74 N10 Stroke large -0.11202200 70
> 75 N17 Stroke large 0.16687700 70
> 76 N23 Stroke large -0.24308300 70
> 77 N24 Stroke large 0.00322026 70
> 78 N28 Stroke large 0.34928100 70
> 79 C01 Control NA 0
> 80 C02 Control NA 0
> 81 C03 Control NA 0
> 82 C04 Control NA 0
> 83 C05 Control NA 0
> 84 C06 Control NA 0
> 85 C07 Control NA 0
> 86 C09 Control NA 0
> 87 C10 Control NA 0
> 88 C32 Control NA 0
> 89 C01 Control 0.32387500 3
> 90 C02 Control 0.48334200 3
> 91 C03 Control 0.70698800 3
> 92 C04 Control 0.00572262 3
> 93 C05 Control 0.40416000 3
> 94 C06 Control 0.36343800 3
> 95 C07 Control 0.05064140 3
> 96 C09 Control 0.84621500 3
> 97 C10 Control 0.80675300 3
> 98 C32 Control NA 3
> 99 C01 Control 0.23174400 7
> 100 C02 Control 0.36959100 7
> 101 C03 Control 0.43762800 7
> 102 C04 Control 0.34187100 7
> 103 C05 Control 0.74288400 7
> 104 C06 Control 0.17692600 7
> 105 C07 Control 0.60067600 7
> 106 C09 Control 0.80314900 7
> 107 C10 Control 0.81695500 7
> 108 C32 Control 0.19029400 7
> 109 C01 Control 0.45062600 21
> 110 C02 Control 0.62884500 21
> 111 C03 Control 0.33693200 21
> 112 C04 Control 0.76098800 21
> 113 C05 Control 0.59837500 21
> 114 C06 Control 0.39328800 21
> 115 C07 Control 0.55099400 21
> 116 C09 Control 0.75411500 21
> 117 C10 Control 0.72495100 21
> 118 C32 Control 0.66503400 21
> 119 C01 Control 0.63903900 49
> 120 C02 Control NA 49
> 121 C03 Control 0.59655200 49
> 122 C04 Control 0.42958700 49
> 123 C05 Control 0.68408700 49
> 124 C06 Control 0.45482700 49
> 125 C07 Control 0.37217700 49
> 126 C09 Control 0.75770400 49
> 127 C10 Control 0.62059200 49
> 128 C32 Control 0.68320900 49
> 129 C01 Control 0.66179300 70
> 130 C02 Control 0.34183000 70
> 131 C03 Control 0.58543900 70
> 132 C04 Control 0.62621700 70
> 133 C05 Control 0.40610400 70
> 134 C06 Control 0.32596100 70
> 135 C07 Control 0.14847100 70
> 136 C09 Control 0.79177000 70
> 137 C10 Control 0.71970900 70
> 138 C32 Control 0.56702700 70
>
> This is our model:
>
> model <- lme( na.action = na.omit, data = data, fixed =
value ~ group *
> time, random = ~1 | subject, correlation = corCAR1( form =
~time |
> subject )
> )
>
>
>
> anova( model )
>
> numDF denDF F-value p-value
> (Intercept) 1 87 59.08836 <.0001
> group 2 20 34.50706 <.0001
> time 1 87 19.45032 <.0001
> group:time 2 87 4.53603 0.0134
>
>
>
> intervals( model )
>
> Approximate 95% confidence intervals
>
> Fixed effects:
> lower est.
upper
> (Intercept) 0.3677066515 0.4905816494
0.613456647
> groupStroke large -0.9027833601 -0.7106686760
-0.518553992
> groupStroke small -0.6705657199 -0.4490365094
-0.227507299
> time -0.0013629996 0.0009963115
0.003355623
> groupStroke large:time -0.0003754957 0.0031296769
0.006634850
> groupStroke small:time 0.0019261801 0.0059657552
0.010005330
> attr(,"label")
> [1] "Fixed effects:"
>
> Random Effects:
> Level: subject
> lower est. upper
> sd((Intercept)) 0.07377088 0.1227132 0.2041257
>
> Correlation structure:
> lower est. upper
> Phi 0.2035765 0.5971507 0.8957905
> attr(,"label")
> [1] "Correlation structure:"
>
> Within-group standard error:
> lower est. upper
> 0.1779472 0.2071400 0.2411220
>
> [[alternative HTML version deleted]]
>
>
>
> ------------------------------
>
> _______________________________________________
> R-sig-mixed-models mailing list
> [6]R-sig-mixed-models at r-project.org
> [7]https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
>
> End of R-sig-mixed-models Digest, Vol 42, Issue 22
> **************************************************
>
References
1. http://www.mail-archive.com/r-help@r-project.org/msg65720.html
2. mailto:nikko at hailmail.net
3. mailto:chris.kleier at gmail.com
4. mailto:r-sig-mixed-models at r-project.org
5. mailto:AANLkTilMkK9HJZqXDZimDzKCswXElxw__dUVQpSnW8FQ at mail.gmail.com
6. mailto:R-sig-mixed-models at r-project.org
7. https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
More information about the R-sig-mixed-models
mailing list