Hi there,
The following data is obtained from a long-term experiments.
> mydata <- read.table(textConnection("
+ y year Trt
+ 9.37 1993 A
+ 8.21 1995 A
+ 8.11 1999 A
+ 7.22 2007 A
+ 7.81 2010 A
+ 10.85 1993 B
+ 12.83 1995 B
+ 13.21 1999 B
+ 13.70 2007 B
+ 15.15 2010 B
+ 5.69 1993 C
+ 5.76 1995 C
+ 6.39 1999 C
+ 5.73 2007 C
+ 5.55 2010 C"), header = TRUE)
> closeAllConnections()
The experiments is designed without replication, thus I have to use
ANCOVA or linear mixed effect model to analyze the data. In the model,
variable year is coded as a continuous variable, and Trt is factor variable.
> mydata.aov <- aov(y~Trt*year, mydata)
> anova(mydata.aov)
Analysis of Variance Table
Response: y
Df Sum Sq Mean Sq F value Pr(>F)
Trt 2 140.106 70.053 197.9581 3.639e-08 ***
year 1 0.610 0.610 1.7246 0.221600
Trt:year 2 8.804 4.402 12.4387 0.002567 **
Residuals 9 3.185 0.354
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05
'.' 0.1 ' ' 1
As you have seen, the interaction effect is significant. I hope to use
TukeyHSD() or glht() to do multiple comparison on Trt:year. However, for
variable year is not a factor, they all give error messages.
I try to follow the demo("MMC.WoodEnergy") in HH package, as
follwoing:
> library(HH)
> mca.1993 <- mcalinfct(mydata.aov, "Trt")
> non.zero <- mca.1993[,5:6] != 0
> mca.1993[,5:6][non.zero] <- 1993 * sign(mca.1993[,5:6][non.zero])
> summary(glht(mydata.aov, linfct=mca.1993))
Simultaneous Tests for General Linear Hypotheses
Fit: aov(formula = y ~ Trt * year, data = mydata)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
B - A == 0 2.8779 0.5801 4.961 0.00215 **
C - A == 0 -2.8845 0.5801 -4.972 0.00191 **
C - B == 0 -5.7624 0.5801 -9.933 < 0.001 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05
'.' 0.1 ' ' 1
(Adjusted p values reported -- single-step method)
It can give comparison between levels of Trt within one year, e.g., 1993.
Is it possible to do multiple comparison for the following pairs:
A.1995 - A.1993
B.1995 - A.1993
C.1995 - A.1993
Any suggestions or comments will be really appreciated. Thanks in advance!
Regards,
Jinsong
Inline below. -- Bert On Sun, Dec 11, 2011 at 4:15 AM, Jinsong Zhao <jszhao at yeah.net> wrote:> Hi there, > > The following data is obtained from a long-term experiments. > >> mydata <- read.table(textConnection(" > + ? ? ? ?y year Trt > + ? ? 9.37 1993 ? A > + ? ? 8.21 1995 ? A > + ? ? 8.11 1999 ? A > + ? ? 7.22 2007 ? A > + ? ? 7.81 2010 ? A > + ? ?10.85 1993 ? B > + ? ?12.83 1995 ? B > + ? ?13.21 1999 ? B > + ? ?13.70 2007 ? B > + ? ?15.15 2010 ? B > + ? ? 5.69 1993 ? C > + ? ? 5.76 1995 ? C > + ? ? 6.39 1999 ? C > + ? ? 5.73 2007 ? C > + ? ? 5.55 2010 ? C"), header = TRUE) >> closeAllConnections() > > The experiments is designed without replication, thus I have to use ANCOVA > or linear mixed effect model to analyze the data. In the model, variable > year is coded as a continuous variable, and Trt is factor variable. > >> mydata.aov <- aov(y~Trt*year, mydata) >> anova(mydata.aov) > Analysis of Variance Table > > Response: y > ? ? ? ? ?Df ?Sum Sq Mean Sq ?F value ? ?Pr(>F) > Trt ? ? ? ?2 140.106 ?70.053 197.9581 3.639e-08 *** > year ? ? ? 1 ? 0.610 ? 0.610 ? 1.7246 ?0.221600 > Trt:year ? 2 ? 8.804 ? 4.402 ?12.4387 ?0.002567 ** > Residuals ?9 ? 3.185 ? 0.354 > --- > Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > > As you have seen, the interaction effect is significant. I hope to use > TukeyHSD() or glht() to do multiple comparison on Trt:year. However, for > variable year is not a factor, they all give error messages. > > I try to follow the demo("MMC.WoodEnergy") in HH package, as follwoing: > >> library(HH) >> mca.1993 <- mcalinfct(mydata.aov, "Trt") >> non.zero <- mca.1993[,5:6] != 0 >> mca.1993[,5:6][non.zero] <- 1993 * sign(mca.1993[,5:6][non.zero]) >> summary(glht(mydata.aov, linfct=mca.1993)) > > ? ? ? ? Simultaneous Tests for General Linear Hypotheses > > Fit: aov(formula = y ~ Trt * year, data = mydata) > > Linear Hypotheses: > ? ? ? ? ? Estimate Std. Error t value Pr(>|t|) > B - A == 0 ? 2.8779 ? ? 0.5801 ? 4.961 ?0.00215 ** > C - A == 0 ?-2.8845 ? ? 0.5801 ?-4.972 ?0.00191 ** > C - B == 0 ?-5.7624 ? ? 0.5801 ?-9.933 ?< 0.001 *** > --- > Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > (Adjusted p values reported -- single-step method) > > It can give comparison between levels of Trt within one year, e.g., 1993. > > Is it possible to do multiple comparison for the following pairs: > > A.1995 - A.1993 > B.1995 - A.1993 > C.1995 - A.1993 > > Any suggestions or comments will be really appreciated. Thanks in advance!Graph the data sensibly to figure out what's going on. Statistical machinationsand anova tables with P values alone are not sufficient and can be opaque or misleading. If you do not know what "sensibly" is (or even if you do), consult: http://addictedtor.free.fr/graphiques/ Cheers, Bert> > Regards, > Jinsong > > ______________________________________________ > R-help at 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.-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Richard M. Heiberger
2011-Dec-11 17:48 UTC
[R] multiple comparison of interaction of ANCOVA
Thank you for you use of HH. I think the right graph for this data is the much simpler ancova function library(HH) ancova(y ~ year * Trt, data=mydata) where we see that the three treatments have totally different slopes. The WoodEnergy example doesn't apply here. The WoodEnergy example illustrates a way of finding differences among treatments for a fixed value of the covariate when the slopes are similar. Rich On Sun, Dec 11, 2011 at 7:15 AM, Jinsong Zhao <jszhao@yeah.net> wrote:> Hi there, > > The following data is obtained from a long-term experiments. > > > mydata <- read.table(textConnection(" > + y year Trt > + 9.37 1993 A > + 8.21 1995 A > + 8.11 1999 A > + 7.22 2007 A > + 7.81 2010 A > + 10.85 1993 B > + 12.83 1995 B > + 13.21 1999 B > + 13.70 2007 B > + 15.15 2010 B > + 5.69 1993 C > + 5.76 1995 C > + 6.39 1999 C > + 5.73 2007 C > + 5.55 2010 C"), header = TRUE) > > closeAllConnections() > > The experiments is designed without replication, thus I have to use ANCOVA > or linear mixed effect model to analyze the data. In the model, variable > year is coded as a continuous variable, and Trt is factor variable. > > > mydata.aov <- aov(y~Trt*year, mydata) > > anova(mydata.aov) > Analysis of Variance Table > > Response: y > Df Sum Sq Mean Sq F value Pr(>F) > Trt 2 140.106 70.053 197.9581 3.639e-08 *** > year 1 0.610 0.610 1.7246 0.221600 > Trt:year 2 8.804 4.402 12.4387 0.002567 ** > Residuals 9 3.185 0.354 > --- > Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > > As you have seen, the interaction effect is significant. I hope to use > TukeyHSD() or glht() to do multiple comparison on Trt:year. However, for > variable year is not a factor, they all give error messages. > > I try to follow the demo("MMC.WoodEnergy") in HH package, as follwoing: > > > library(HH) > > mca.1993 <- mcalinfct(mydata.aov, "Trt") > > non.zero <- mca.1993[,5:6] != 0 > > mca.1993[,5:6][non.zero] <- 1993 * sign(mca.1993[,5:6][non.zero]) > > summary(glht(mydata.aov, linfct=mca.1993)) > > Simultaneous Tests for General Linear Hypotheses > > Fit: aov(formula = y ~ Trt * year, data = mydata) > > Linear Hypotheses: > Estimate Std. Error t value Pr(>|t|) > B - A == 0 2.8779 0.5801 4.961 0.00215 ** > C - A == 0 -2.8845 0.5801 -4.972 0.00191 ** > C - B == 0 -5.7624 0.5801 -9.933 < 0.001 *** > --- > Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > (Adjusted p values reported -- single-step method) > > It can give comparison between levels of Trt within one year, e.g., 1993. > > Is it possible to do multiple comparison for the following pairs: > > A.1995 - A.1993 > B.1995 - A.1993 > C.1995 - A.1993 > > Any suggestions or comments will be really appreciated. Thanks in advance! > > Regards, > Jinsong > > ______________________________**________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide http://www.R-project.org/** > posting-guide.html <http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]