Hi all, I was trying to use glht() from multcomp package to construct a contrast on interaction term in a linear model to do some comparisons. I am little uncertain on how to construct contrasts on a 3-way interaction containing a continuous variable, and hope someone can confirm what I did is correct or wrong: The linear model has a continuous dependent variable “y”, with treatment factor “Trt” with value 0 and 1, a factor variable “A” with value 0 and 1, a continuous variable “x”. A simpler model is: set.seed(10) dat <- cbind(y=c(rnorm(10,3),rnorm(10,4),rnorm(10,3.1),rnorm(10,6)), x=runif(40,5,15), expand.grid(A=rep(factor(0:1),each=10),Trt=factor(0:1))) fit <- lm(y ~ x + Trt * A,dat) My purpose is to test whether treatment effect is significant given each level of factor A, so I used contrasts: library(multcomp) K <- rbind(c(0,0,1,0,0), c(0,0,1,0,1)) rownames(K) <- c('Trt 1-0|A=0','Trt 1-0|A=1') colnames(K) <- names(coef(fit)) K (Intercept) x Trt1 A1 Trt1:A1 Trt 1-0|A=0 0 0 1 0 0 Trt 1-0|A=1 0 0 1 0 1 (glht.fit <- summary(glht(fit, linfct K), test=adjusted(type='none'))) Linear Hypotheses: Estimate Std. Error t value Pr(>|t|) Trt 1-0|A=0 =0 -0.2720 0.3616 -0.752 0.45701 Trt 1-0|A=1 =0 1.0690 0.3564 2.999 0.00496 ** Now I suspect independent variable “x” may play a role in the treatment effect at each level of A, so I would like to add in a 3-way interaction between Trt, A and x: fit <- lm(y ~ x * Trt * A,dat) If my purpose is to test whether treatment is significant at each level of factor A and certain value of covariate “x”, for example, when x=10, would following code give me what I wanted? K <- rbind(c(0,0,1,0,10,0,0,0), c(0,0,1,0,10,0,1,10)) rownames(K) <- c('Trt 1-0|A=0 x=10','Trt 1-0|A=1 x=10') colnames(K) <- names(coef(fit)) K (Intercept) x Trt1 A1 x:Trt1 x:A1 Trt1:A1 x:Trt1:A1 Trt 1-0|A=0 x=10 0 0 1 0 10 0 0 0 Trt 1-0|A=1 x=10 0 0 1 0 10 0 1 10 (glht.fit <- summary(glht(fit, linfct K), test=adjusted(type='none'))) Linear Hypotheses: Estimate Std. Error t value Pr(>|t|) Trt 1-0|A=0 x=10 == 0 -0.3526 0.3254 -1.083 0.286731 Trt 1-0|A=1 x=10 == 0 1.4621 0.3328 4.394 0.000115 *** So the above test was testing whether treatment effect is significant at each level of factor A when x=10, am I correct? Appreciate if someone would confirm this? Thanks John [[alternative HTML version deleted]]