On 22-Oct-08 17:09:27, Dennis Fisher wrote: > Colleagues, > I am working on a problem at the edge of my knowledge of statistics. > > Basically, I have values for two groups - I am trying to calculate the > 90% confidence limits for the difference between means. I can > implement this without difficulty based on standard equations that are > available in stat textbooks: (difference between means) / (pooled > standard error) > > My problem arises when I try to correct for the value of a covariate. > I can do the ANOVA with the covariate as a factor. But, I don't know > how to use the output to obtain the confidence limits of the > difference. > > I suspect that several participants in this board have implemented > code to so this. I hope that someone is willing to share the code.
Mostly, we haven't, though a few of us once did (in coding lm() and t.test()). Assuming that you will adopt equal variances for the two groups (as in standard ANOVA), you can approach this in at least two different ways. Both illustrated below, for comparison. ## Make up some data, and a Group indicator set.seed(213243) X1 <- rnorm(15) ; X2 <- 0.1+rnorm(25) ; X <- c(X1,X2) Group <- factor(c(rep(0,length(X1)),rep(1,length(X2)))) mean(X1) # [1] 0.1108255 mean(X2) # [1] 0.1002999 mean(X2)-mean(X1) # [1] -0.01052560 summary(lm(X ~ Group))$coef # Estimate Std. Error t value Pr(>|t|) # (Intercept) 0.11082552 0.2543404 0.43573696 0.6654929 # Group1 -0.01052560 0.3217180 -0.03271686 0.9740716 ## Note that the "Group" coefficient is the difference of means here Diff<-summary(lm(X ~ Group))$coef[2,1] ## -0.01052560 SE <-summary(lm(X ~ Group))$coef[2,2] ## 0.3217180 Diff + qt(0.975,38)*c(-1,1)*SE ## d.f. = (15-1)+(25-1) # [1] -0.6618097 0.6407585 ## 95% confidence interval calculated from output of lm() above t.test(X2,X1,var.equal=TRUE) # Two Sample t-test # data: X2 and X1 # t = -0.0327, df = 38, p-value = 0.974 # alternative hypothesis: true difference in means is not equal to 0 # 95 percent confidence interval: # -0.6618097 0.6407585 # sample estimates: # mean of x mean of y # 0.1002999 0.1108255 ## The 95% CI fron t.test() is the same as previously calulculated ## from the ouput of lm(). But t.test() does not directly output ## the difference of means. Hoping this helps Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <[EMAIL PROTECTED]> Fax-to-email: +44 (0)870 094 0861 Date: 22-Oct-08 Time: 19:05:47 ------------------------------ XFMail ------------------------------ ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.