Prof Brian Ripley wrote:

On Sun, 20 Feb 2005, Lorin Hochstein wrote:

Hello all,

(Apologies in advance if my terminology is incorrect, I'm relatively new to R and statistics).

I have data from a factorial design with two treatments (CRF-23), and I'm trying to compute treatment-contrast interactions through analysis of variance.

[snip]


Let's say I want to compute some contrasts on B and see if there is an interaction with A. I try to specify a matrix with the columns being the different contrasts on B:


contrasts.B <- matrix(c(1,-1,0,1,0,-1,0,1,-1),nrow=3)


There are only be two independent contrasts for a three-level factor, so you need to choose what you really want.

As it turns out, the contrasts I'm trying to compute are not independent. (This is just an exercise in a textbook...)



(I really want the result for each contrast separately, so should I be passing one vector as an argument to contrasts?)


I am not at all sure what you want to do.  Here is one possibility

contrasts(B) <- contrasts.B[, 1:2]
fit <- aov(score~A*B)
summary(fit, split=list(B=1:2), expand.split = T)

Ah, this gives me what we want! Unfortunately, since no pair of contrasts I have are independent, I have to compute them one at a time. This seems to work.


for(i in 1:3) {
 contrasts(B) <- contrasts.B[, i]
 fit <- aov(score~A*B)
 s <- summary(fit, split=list(B=1:2), expand.split = T)
 f <- s[[1]]$"F value"[6]
 print(f)
}



If you want to look at the patterns of contrasts, use model.tables(), and to assess a single contrast, use se.contrast (but beware of lack of independence, even collinearity, if using multiple contrasts). Here is one way:


cont <- c(1, -1)[A] * c(1, -1, 0)[B]
sum(cont) # 0
sum(cont*score)
se.contrast(fit, as.matrix(cont))

I'd like to understand this approach as well, but I can't reproduce my results using se.contrast. In particular, I get the same standard error even though I tried to use different contrasts:


> c1 <- c(1,-1)[A]*c(1,-1,0)[B]
> c2 <- c(1,-1)[A]*c(1,0,-1)[B]
> c3 <- c(1,-1)[A]*c(0,1,-1)[B]
> se.contrast(fit, as.matrix(c1))
Contrast 1
 14.24547
> se.contrast(fit,as.matrix(c2))
Contrast 1
 14.24547
> se.contrast(fit,as.matrix(c3))
Contrast 1
 14.24547



Lorin

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to