Re-analysis of data from Seralini et al. July, 2014. Analysis for blog post here: http://weedcontrolfreaks.com/2014/07/seralini-rat-study-revisited/
As a disclaimer, I am not an expert in survival analysis, so I would welcome criticism or comments from those more familiar with this type of analysis. Based on what I could gather, the mortality data released by Seralini was in somewhat of a non-standard format for time to mortality data. I reformatted the data into something I could work with, and have posted the reformatted data in case anyone wants to double check my work. I’ve also provided all of my R code below if you’d like to criticize/modify/improve the analysis.
morts<-read.csv("http://weedcontrolfreaks.com/wp-content/uploads/2014/07/SeraliniSurvival.csv", header=T)
## subset the data into male and female
subset(morts, Sex=="Male")->morts.m
subset(morts, Sex=="Female")->morts.f
head(morts)
## Group Sex Treatment Rat time mortality
## 1 All Male Control A 493 1
## 2 All Male Control B 574 1
## 3 All Male Control C 588 1
## 4 All Male Control D 604 1
## 5 All Male Control E 610 1
## 6 All Male Control F 632 1
I’ve reformatted the data to include the Sex, Treatment, Rat (experimental unit, 10 per treatment), time, and mortality. The mortality column indicates 1 for death, and 0 for still alive. Each rat that died during the experiment has a value of 1 for mortality that corresponds to the time that it died (in days). For the first few control rats in the data set, they died on day 493, 574, 588, etc. If the rat lived for the duration of the study, then it has a 0 in the mortality column that corresponds to day 720, or the end of the experiment.
I then used this file to run a survival analysis on the data. Honestly, I’m not sure which is most appropriate model for such small sample sizes, but a very quick search found that the Cox proportional hazards model has been used to look at the effect of diet on rats. Any readers with experience with survival analysis are welcome to suggest a better method.
require(survival)
## Loading required package: survival
## Loading required package: splines
## Male survival analysis:
summary(coxph(Surv(time,mortality)~Treatment, data=morts.m))
## Call:
## coxph(formula = Surv(time, mortality) ~ Treatment, data = morts.m)
##
## n= 100, number of events= 74
##
## coef exp(coef) se(coef) z Pr(>|z|)
## TreatmentGMO.11 -0.197 0.821 0.507 -0.39 0.697
## TreatmentGMO.11.R -0.356 0.700 0.506 -0.70 0.481
## TreatmentGMO.22 -0.615 0.541 0.506 -1.22 0.224
## TreatmentGMO.22.R -0.317 0.728 0.507 -0.63 0.531
## TreatmentGMO.33 -0.898 0.407 0.530 -1.70 0.090 .
## TreatmentGMO.33.R 0.152 1.164 0.460 0.33 0.742
## TreatmentRa -0.287 0.750 0.487 -0.59 0.555
## TreatmentRb -0.521 0.594 0.506 -1.03 0.304
## TreatmentRc -0.916 0.400 0.530 -1.73 0.084 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## exp(coef) exp(-coef) lower .95 upper .95
## TreatmentGMO.11 0.821 1.218 0.304 2.22
## TreatmentGMO.11.R 0.700 1.428 0.260 1.89
## TreatmentGMO.22 0.541 1.850 0.201 1.46
## TreatmentGMO.22.R 0.728 1.373 0.270 1.97
## TreatmentGMO.33 0.407 2.455 0.144 1.15
## TreatmentGMO.33.R 1.164 0.859 0.472 2.87
## TreatmentRa 0.750 1.333 0.289 1.95
## TreatmentRb 0.594 1.684 0.220 1.60
## TreatmentRc 0.400 2.500 0.142 1.13
##
## Concordance= 0.596 (se = 0.036 )
## Rsquare= 0.078 (max possible= 0.998 )
## Likelihood ratio test= 8.17 on 9 df, p=0.517
## Wald test = 8 on 9 df, p=0.535
## Score (logrank) test = 8.36 on 9 df, p=0.498
For the male rats, there appears to be no strong evidence that their diet influenced mortality. The last 3 lines of the output show p-values ranging from 0.498 to 0.535; results that appear to be consistent with chance. We get similar results looking at the Female rats:
## Female survival analysis:
summary(coxph(Surv(time,mortality)~Treatment, data=morts.f))
## Call:
## coxph(formula = Surv(time, mortality) ~ Treatment, data = morts.f)
##
## n= 100, number of events= 49
##
## coef exp(coef) se(coef) z Pr(>|z|)
## TreatmentGMO.11 0.698 2.010 0.866 0.81 0.420
## TreatmentGMO.11.R 1.053 2.867 0.837 1.26 0.208
## TreatmentGMO.22 1.586 4.883 0.817 1.94 0.052 .
## TreatmentGMO.22.R 1.630 5.102 0.804 2.03 0.043 *
## TreatmentGMO.33 1.399 4.050 0.817 1.71 0.087 .
## TreatmentGMO.33.R 0.850 2.340 0.866 0.98 0.327
## TreatmentRa 1.308 3.700 0.817 1.60 0.109
## TreatmentRb 0.875 2.398 0.866 1.01 0.313
## TreatmentRc 1.150 3.158 0.837 1.37 0.169
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## exp(coef) exp(-coef) lower .95 upper .95
## TreatmentGMO.11 2.01 0.498 0.368 11.0
## TreatmentGMO.11.R 2.87 0.349 0.556 14.8
## TreatmentGMO.22 4.88 0.205 0.984 24.2
## TreatmentGMO.22.R 5.10 0.196 1.056 24.6
## TreatmentGMO.33 4.05 0.247 0.817 20.1
## TreatmentGMO.33.R 2.34 0.427 0.428 12.8
## TreatmentRa 3.70 0.270 0.746 18.3
## TreatmentRb 2.40 0.417 0.439 13.1
## TreatmentRc 3.16 0.317 0.613 16.3
##
## Concordance= 0.62 (se = 0.042 )
## Rsquare= 0.081 (max possible= 0.985 )
## Likelihood ratio test= 8.43 on 9 df, p=0.491
## Wald test = 7.36 on 9 df, p=0.599
## Score (logrank) test = 8.06 on 9 df, p=0.528
For the females, P-values range from 0.491 to 0.528 depending on the test. Again, very little evidence here that the diets had much impact on mortality. Now if we ignore the overall P-value and focus only on individual treatments (generally a bad idea, but humor me), there are some P-values that indicate there were some treatments that may be different from the control. For female rats, the 22% GMO diet + Roundup has a P-value of 0.043, indicating the proportional hazard is “significantly” different from the control. Interpretation of the coefficients from survival analysis is not exactly straightforward, but because the exp(coef)
column is greater than 1, then we would interpret that to mean the rats on that diet are more likely to die compared to control rats. If we ignore the P-values altogether, we can see that all of the exp(coef)
are greater than 1. So if we ignore the variability in the data, we could interpret this to mean that the female rats are more likely to die from all the treatments. And this is basically what Seralini has done in the article, by stating in the abstract: “In females, all treatment groups showed a two- to threefold increase in mortality, and deaths were earlier.”
But if we’re willing to ignore the statistics to draw this conclusion for females, then it seems only fair that we should do the same for the males. And if we look at the exp(coef)
for the male rats, all but one treatment is less than 1. This would indicate that all except 1 treatment reduced the hazard to male rats. I didn’t see this as a headline in any of the press releases. Again, I’m not a rat expert, but I can’t really think of any mechanism by which both GMO feed and Roundup in drinking water would have a negative effect on females but a positive effect on males.
I’ve re-created Seralini’s Figure 6 from the article, but I’ve included the 95% confidence intervals for each treatment. The solid lines are the same as those included by Seralini, and the dotted lines indicate the 95% confidence intervals for each treatment. The thing to notice is that the confidence intervals for all treatments (dotted colored lines) surround the control group (thick black line). The data Seralini provided simply doesn’t support a link between GMOs or Roundup laced diet and premature death. This doesn’t mean that the diets had no effect; it is certainly possible that the GMO or Roundup diets caused Females to die earlier (or even that the GMO diets caused males to live longer). Absence of evidence does not mean evidence of absence. What this means is that the mortality data provided by Seralini are simply not powerful enough to draw any conclusions one way or the other. Which is basically the same problem many folks identified with this study early on, even without the data in hand.
Interestingly, there is a column in the biochemistry data named “BW” which does not show up in any of the description files, and is also never referenced in the published article. I’m guessing here, but it seems like BW is a logical abbreviation for body weight. The only reference to body weight in the republished article is near the beginning of the results section:
There was no rejection by the animals of the diet with or without GM maize, nor any major difference in body weight (data not shown).
If the BW variable in the provided data is body weight, I question the interpretation of no “major difference in body weight.”
read.csv("http://weedcontrolfreaks.com/wp-content/uploads/2014/07/Biochemistry-M15.csv", header=T)->biochem
## Subset males
subset(biochem, GROUP<11)->mbio
## Subset females
subset(biochem, GROUP>10)->fbio
## Female 'BW' analysis of variance
fbw.aov<-aov(BW.15~TRT, data=fbio)
summary(fbw.aov)
## Df Sum Sq Mean Sq F value Pr(>F)
## TRT 9 53684 5965 2.07 0.041 *
## Residuals 84 241850 2879
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## print the means by treatment for females
summarise(group_by(fbio, TRT), mean(BW.15))
## Source: local data frame [10 x 2]
##
## TRT mean(BW.15)
## 1 Control_F 405.6
## 2 C-RupA_F 414.0
## 3 C-RupB_F 390.4
## 4 C-RupC_F 327.1
## 5 GMO11_F 397.1
## 6 GMO11+R_F 397.2
## 7 GMO22_F 383.4
## 8 GMO22+R_F 413.8
## 9 GMO33_F 393.2
## 10 GMO33+R_F 411.8
## show comparisons with P-values less than 0.1
fsigs<-which(TukeyHSD(fbw.aov)$TRT[,4]<0.1)
TukeyHSD(fbw.aov)$TRT[fsigs,]
## diff lwr upr p adj
## C-RupC_F-Control_F -78.52 -158.657 1.608 0.05961
## C-RupC_F-C-RupA_F -86.93 -169.147 -4.719 0.02956
## GMO22+R_F-C-RupC_F 86.72 6.592 166.857 0.02331
## GMO33+R_F-C-RupC_F 84.72 4.592 164.857 0.02959
For the female rats, there was a significant difference between treatments with respect to the BW variable. The highest dose of Roundup in drinking water (coded in the csv file by me as C-RupC) reduced BW by 19% compared to the control group. This difference was right on the border of what would generally be considered “significant” (P=0.059), but the difference was significant for several other comparisons with the high Roundup dose. For the males, there was very similar pattern:
### Male 'BW' analysis of variance
mbw.aov<-aov(BW.15~TRT, data=mbio)
summary(mbw.aov)
## Df Sum Sq Mean Sq F value Pr(>F)
## TRT 9 163282 18142 4.2 0.00018 ***
## Residuals 81 349928 4320
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## print the means by treatment for females
summarise(group_by(mbio, TRT), mean(BW.15))
## Source: local data frame [10 x 2]
##
## TRT mean(BW.15)
## 1 Control_M 673.5
## 2 C-RupA_M 621.3
## 3 C-RupB_M 623.6
## 4 C-RupC_M 518.6
## 5 GMO11_M 658.2
## 6 GMO11+R_M 639.0
## 7 GMO22_M 648.0
## 8 GMO22+R_M 618.2
## 9 GMO33_M 659.7
## 10 GMO33+R_M 623.6
## show comparisons with P-values less than 0.1
msigs<-which(TukeyHSD(mbw.aov)$TRT[,4]<0.1)
TukeyHSD(mbw.aov)$TRT[msigs,]
## diff lwr upr p adj
## C-RupC_M-Control_M -154.92 -250.554 -59.286 4.688e-05
## C-RupC_M-C-RupA_M -102.70 -198.334 -7.066 2.532e-02
## C-RupC_M-C-RupB_M -104.98 -200.614 -9.346 2.010e-02
## GMO11_M-C-RupC_M 139.61 34.226 244.994 1.776e-03
## GMO11+R_M-C-RupC_M 120.43 19.000 221.870 8.089e-03
## GMO22_M-C-RupC_M 129.41 33.776 225.044 1.278e-03
## GMO22+R_M-C-RupC_M 99.65 -5.731 205.037 7.962e-02
## GMO33_M-C-RupC_M 141.10 45.466 236.734 2.937e-04
## GMO33+R_M-C-RupC_M 105.04 6.789 203.298 2.650e-02
The high dose of Roundup in the drinking water reduced male BW by 23%. The high-dose Roundup treatment was significantly different from all of the other treatments, including the control. So my conclusion here would be that drinking a 0.5% Roundup solution every day for 15 months will reduce body weight. I can’t quite figure out why the Seralini article didn’t report this very obvious difference (in fact, they made the opposite claim, that there were no differences).
There are two possible explanations for this discrepancy. If the BW variable actually is rat body weight, then Seralini et al. mischaracterize their data when they state there were no “major differences in body weight (data not shown).” I would argue a 20% reduction in body weight by a treatment is a major difference. The other explanation is that the BW variable in the data file they’ve provided isn’t actually body weight. But I can find no reference to what BW might otherwise be in the article itself or any of the supplemental information. Now, I’m not going to speculate why Seralini would state there were no differences in body weight when the differences were this dramatic, but it does seem very odd.
Although the methods section in the paper states that blood samples were taken 10 different times over the course of the study, the paper only presents data from one time point (15 months). The 15 month data is also the only time point provided in the supplemental materials. In the paper, Seralini et al. justify presenting only a single time point by saying:
“Due to the large quantity of data collected, it cannot all be shown in one report, but we present here the most important findings.”
Even if true for the actual article, I really don’t see how this restriction would apply to the raw data. It seems like they could have easily added data from the other 9 time points into the same Excel file and provided all the raw data quite easily. But they have not, so it is impossible to tell whether the 15 month data are representative, or if this time point was simply the ‘best’ time point for some purpose. The easiest way to counter the early accusations of “cherry picking” data would be to release the rest of the data.
As I read through the statistical methods section of the article for the biochemistry data analysis, I was reminded how complex the analysis of the biochemistry data was. I have to agree with Marion Nestle’s assessment that it was “weirdly complicated.” I have dabbled in multivariate analyses before, and understand the basics of principal component and discriminant analysis (which they reference), but I really have no idea how to implement an OLPS-DA analysis. So I’m not going to even attempt to recreate their multivariate analysis. If anyone has experience with this analysis, I’d be interested to see them re-create and interpret the newly released data.
But we can at least run some more standard statistical tests for some of the variables. In particular, I was interested in some of the variables that Seralini’s multivariate analysis suggested were important. I’ll admit, the top half of Seralini’s Figure 3 confused me almost as much as the description of the multivariate methods. From what I can understand from Seralini’s Figure 3 caption, they only compared the control group with the 33% GMO group, and only for females. I can’t find an explanation for why they chose only one of the treatments and one sex for this analysis; perhaps it was again due to space constraints. Seralini uses Figure 3 to conclude that the “Profiles evidence kidney ion leakages and sex hormonal imbalance versus controls.” Again, I don’t know much about mammalian physiology, so I did a quick Google scholar search for “kidney ion leakage.” That returned no results, so I repeated the search without quotation marks. The ions referenced in recent papers are all over the board, Na+, K+, Cl-, H+, and even many metal ions. Seralini shows both blood serum and urine excreted Na and Cl ions in the figure, and if I’m interpreting the bottom half of figure 3 correctly, those ions had the most predictive effect in the analysis. So it seems certainly worth looking at those ions using a more standard test. Starting with Na, I ran a t-test to compare the same two groups as Seralini, the GMO 33% diet with the control.
t.test(biochem$Na.15[biochem$TRT=="Control_F"], biochem$Na.15[biochem$TRT=="GMO33_F"])
##
## Welch Two Sample t-test
##
## data: biochem$Na.15[biochem$TRT == "Control_F"] and biochem$Na.15[biochem$TRT == "GMO33_F"]
## t = 3.019, df = 6.517, p-value = 0.02118
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 1.626 14.260
## sample estimates:
## mean of x mean of y
## 142.8 134.9
The GMO 33% treatment had a serum sodium level about 5.5% lower than the control group (P=0.02). This does seem consistent with Seralini’s results. But what about male rats, which Seralini didn’t present?
t.test(biochem$Na.15[biochem$TRT=="Control_M"], biochem$Na.15[biochem$TRT=="GMO33_M"])
##
## Welch Two Sample t-test
##
## data: biochem$Na.15[biochem$TRT == "Control_M"] and biochem$Na.15[biochem$TRT == "GMO33_M"]
## t = -2.661, df = 10.89, p-value = 0.02233
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -21.573 -2.027
## sample estimates:
## mean of x mean of y
## 137.4 149.2
There also appears to be a significant difference between the control group and the GMO 33% diet for males (P=0.02). But, the difference is in the opposite direction! The 33% GMO diet that reduced blood sodium levels in females, apparently increased the blood serum sodium levels in males by 8.6%. I’m not sure which of these relates to kidney ion leakage, but it seems that both an increase and a decrease in the same ion can’t be indicative of the same problem.
Because of the structure of the experiment, we should be able to confirm these results by looking at two other treatments; both sexes were also fed the 33% GMO diet that had been treated in the field with Roundup. I would expect that any effect of the GMO diet in the absence of Roundup should still exist in the presence of Roundup. So I compared these treatments also with the controls to confirm the results were due to treatment and not random variability.
t.test(biochem$Na.15[biochem$TRT=="Control_F"], biochem$Na.15[biochem$TRT=="GMO33+R_F"])
##
## Welch Two Sample t-test
##
## data: biochem$Na.15[biochem$TRT == "Control_F"] and biochem$Na.15[biochem$TRT == "GMO33+R_F"]
## t = -2.635, df = 17.18, p-value = 0.01727
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -3.2402 -0.3598
## sample estimates:
## mean of x mean of y
## 142.8 144.6
t.test(biochem$Na.15[biochem$TRT=="Control_M"], biochem$Na.15[biochem$TRT=="GMO33+R_M"])
##
## Welch Two Sample t-test
##
## data: biochem$Na.15[biochem$TRT == "Control_M"] and biochem$Na.15[biochem$TRT == "GMO33+R_M"]
## t = 1.825, df = 14.47, p-value = 0.08878
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.54 19.45
## sample estimates:
## mean of x mean of y
## 137.4 128.4
Somehow, spraying Roundup on the GMO corn in the field reversed the blood serum sodium level results. In both sexes. I can think of absolutely no reasonable explanation for this result other than random chance. And analysis of the blood serum chloride shows similarly random results:
Based on the released data I’ve looked through, I can see no reasonable, consistent relationship between the experimental treatments and the response variables in the newly released data. Granted, I’ve not taken the time to look at every response presented in the released data. But Seralini et al. state that the data presented in the article (and the data they released) represents “the most important findings.”
Below, I’ve run an ANOVA on each individual variable in the biochemistry data set released by Seralini et al. Analyzing the data this way is the very definition of a “fishing expedition,” and this method is almost certain to lead to finding “statistical” differences that are meaningless. I’m providing the ANOVAs (and code) here without much comment. Please interpret with caution.
### Function to put P-values from all separate ANOVA
many.aov<-function(df, firstcol=4){
max.n<-length(colnames(biochem))
ns<-max.n-firstcol
out<-data.frame(matrix(NA, nrow=ns, ncol=2))
names(out)<-c("Var","P-value")
for( i in firstcol:max.n) {
y<-colnames(df)
yi<-y[[i]]
p.i<-anova(lm(df[[yi]]~df$TRT, na.action=na.omit))[[5]]
out[i,]<-c(paste(yi),round(p.i[1],4))
}
out
}
The function above simply runs an ANOVA on each variable, and prints the variable names & P-values. This certainly isn’t a great idea, since the P-values are not adjusted for multiple comparisons. But we can at least see which variables might be worth looking at more in depth.
# Print all P-values from Female ANOVAs
many.aov(fbio)
## Var P-value
## 1 <NA> <NA>
## 2 <NA> <NA>
## 3 <NA> <NA>
## 4 RBC.15 0.4658
## 5 Hct.15 0.8535
## 6 Hgb.15 0.7275
## 7 MCHC.15 0.0248
## 8 MCH.15 0.5699
## 9 MCV.15 0.0631
## 10 WBC.15 0.8196
## 11 Lymph.15 0.1112
## 12 Mono.15 0.0033
## 13 Neutro.15 0.2422
## 14 Plt.15 0.0321
## 15 Fibrin.15 0.3458
## 16 APTT.15 0.7861
## 17 PT.15 0.6496
## 18 Cholest.15 0.1158
## 19 Trigly.15 0.058
## 20 Glycem.15 0.298
## 21 Prot.15 0.3664
## 22 Album.15 0.0146
## 23 Glob.15 0.0146
## 24 A.G.15 0.0136
## 25 AST.15 0.1191
## 26 ALT.15 0.5508
## 27 Na.15 0
## 28 K.15 0.0023
## 29 Cl.15 0
## 30 Ca.15 0
## 31 P.15 0.0337
## 32 Urea.15 0.002
## 33 Creat.15 0.2178
## 34 UCreat.15 0.0022
## 35 UCreatex.15 0.0051
## 36 UClair.15 0.012
## 37 UNa.15 1e-04
## 38 UNaex.15 1e-04
## 39 UK.15 0.0304
## 40 UKex.15 0.0325
## 41 UCl.15 0
## 42 UClex.15 0
## 43 UCa.15 0.2389
## 44 UCaex.15 0.0642
## 45 UP.15 6e-04
## 46 UPex.15 0.2479
## 47 UVol.15 0.0075
## 48 UpH.15 0.5149
## 49 Testo.15 0
## 50 Oestra.15 0
## 51 BW.15 0.0411
# P-values from Male ANOVAs
many.aov(mbio)
## Var P-value
## 1 <NA> <NA>
## 2 <NA> <NA>
## 3 <NA> <NA>
## 4 RBC.15 0.3396
## 5 Hct.15 0.5622
## 6 Hgb.15 0.6255
## 7 MCHC.15 0.0035
## 8 MCH.15 0.0128
## 9 MCV.15 0.4415
## 10 WBC.15 0.5329
## 11 Lymph.15 0.0025
## 12 Mono.15 8e-04
## 13 Neutro.15 0.0073
## 14 Plt.15 0.0937
## 15 Fibrin.15 0.8115
## 16 APTT.15 0
## 17 PT.15 0.0022
## 18 Cholest.15 0.6433
## 19 Trigly.15 0.5206
## 20 Glycem.15 0.005
## 21 Prot.15 0
## 22 Album.15 0.1169
## 23 Glob.15 0.1169
## 24 A.G.15 0.099
## 25 AST.15 0.0208
## 26 ALT.15 0.2141
## 27 Na.15 0
## 28 K.15 0.016
## 29 Cl.15 0
## 30 Ca.15 2e-04
## 31 P.15 0.0114
## 32 Urea.15 0.1193
## 33 Creat.15 0.9805
## 34 UCreat.15 0
## 35 UCreatex.15 0.0985
## 36 UClair.15 0.2562
## 37 UNa.15 0
## 38 UNaex.15 3e-04
## 39 UK.15 0
## 40 UKex.15 0.0011
## 41 UCl.15 0.001
## 42 UClex.15 1e-04
## 43 UCa.15 0
## 44 UCaex.15 0.0035
## 45 UP.15 0
## 46 UPex.15 0.0378
## 47 UVol.15 0.0011
## 48 UpH.15 0
## 49 Testo.15 0.4316
## 50 Oestra.15 2e-04
## 51 BW.15 2e-04
Most statisticians agree that using 0.05 is a pretty arbitrary cutoff, but it is probably the most standard value for “significance.” If you want to print just the P-values that are less than 0.05, you can run the following code.
# Just print the P-values less than 0.05 (Females)
many.aov(fbio)[which(as.numeric(many.aov(fbio)[,2])<0.05),]
# Just print the P-values less than 0.05 (Males)
many.aov(mbio)[which(as.numeric(many.aov(mbio)[,2])<0.05),]
And finally, the following code will print the significant Tukey’s HSD treatment comparisons for all variables with ANOVA overall F values that are less than 0.05. For variables where only 1 comparison is significant, the code isn’t printing out which comparison is significant. I’ve not had time to troubleshoot why. But if there is only one comparison significant for a variable, it is probably not very important given the treatment structure in the experiment.
tuk<-function(df) {
yn<-colnames(df)
vars<-which(as.numeric(many.aov(df)[,2])<0.05)
for( i in 1:length(vars)) {
yi<-vars[[i]]
yz<-yn[[yi]]
y.aov<-aov(df[[yz]]~df$TRT, na.action=na.omit)
y.Tuk<-TukeyHSD(y.aov)
print(paste(yz))
sigT<-y.Tuk$`df$TRT`[,4]<0.05
print(y.Tuk$`df$TRT`[sigT,] )
}
}
# Females:
tuk(fbio)
## [1] "MCHC.15"
## diff lwr upr p adj
## [1] "Mono.15"
## diff lwr upr p adj
## C-RupC_F-Control_F 4.133 0.9495 7.3172 0.002414
## GMO11+R_F-C-RupC_F -3.306 -6.4088 -0.2023 0.027518
## GMO22_F-C-RupC_F -3.867 -7.0505 -0.6828 0.006076
## [1] "Plt.15"
## diff lwr upr p adj
## 3.012e+02 5.965e+01 5.428e+02 4.273e-03
## [1] "Album.15"
## diff lwr upr p adj
## GMO22+R_F-C-RupA_F -4.883 -9.16601 -0.5997 0.01334
## GMO33_F-GMO22+R_F 4.297 0.01399 8.5803 0.04858
## GMO33+R_F-GMO22+R_F 4.490 0.60311 8.3769 0.01145
## [1] "Glob.15"
## diff lwr upr p adj
## GMO22+R_F-C-RupA_F 4.883 0.5997 9.16601 0.01334
## GMO33_F-GMO22+R_F -4.297 -8.5803 -0.01399 0.04858
## GMO33+R_F-GMO22+R_F -4.490 -8.3769 -0.60311 0.01145
## [1] "A.G.15"
## diff lwr upr p adj
## GMO22+R_F-C-RupA_F -0.1113 -0.20754 -0.0150323 0.01133
## GMO22+R_F-GMO22_F -0.0970 -0.19325 -0.0007465 0.04669
## GMO33+R_F-GMO22+R_F 0.1010 0.01365 0.1883486 0.01132
## [1] "Na.15"
## diff lwr upr p adj
## C-RupA_F-Control_F -10.229 -17.9265 -2.5306 1.760e-03
## GMO33_F-Control_F -7.943 -15.6408 -0.2449 3.762e-02
## C-RupB_F-C-RupA_F 10.179 2.0941 18.2630 3.827e-03
## GMO11_F-C-RupA_F 8.317 0.4454 16.1895 2.995e-02
## GMO11+R_F-C-RupA_F 12.829 5.1306 20.5265 2.852e-05
## GMO22+R_F-C-RupA_F 12.029 4.3306 19.7265 1.070e-04
## GMO33+R_F-C-RupA_F 12.029 4.3306 19.7265 1.070e-04
## GMO22_F-GMO11+R_F -7.971 -15.6694 -0.2735 3.637e-02
## GMO33_F-GMO11+R_F -10.543 -18.2408 -2.8449 1.102e-03
## GMO33_F-GMO22+R_F -9.743 -17.4408 -2.0449 3.560e-03
## GMO33+R_F-GMO33_F 9.743 2.0449 17.4408 3.560e-03
## [1] "K.15"
## diff lwr upr p adj
## GMO33+R_F-C-RupA_F 0.6371 0.03809 1.236 0.02805
## GMO33+R_F-C-RupC_F 0.7133 0.08560 1.341 0.01384
## GMO33+R_F-GMO22_F 0.6371 0.03809 1.236 0.02805
## [1] "Cl.15"
## diff lwr upr p adj
## C-RupA_F-Control_F -7.686 -12.7888 -2.5826 0.0002155
## GMO11_F-Control_F -4.956 -9.7134 -0.1977 0.0344213
## GMO22_F-Control_F -7.114 -12.2174 -2.0112 0.0008274
## GMO33_F-Control_F -6.257 -11.3602 -1.1541 0.0054595
## C-RupB_F-C-RupA_F 6.786 1.4264 12.1450 0.0035400
## GMO11+R_F-C-RupA_F 6.686 1.5826 11.7888 0.0021721
## GMO22+R_F-C-RupA_F 5.286 0.1826 10.3888 0.0362858
## GMO33+R_F-C-RupA_F 6.086 0.9826 11.1888 0.0077872
## GMO22_F-C-RupB_F -6.214 -11.5736 -0.8550 0.0109512
## GMO22_F-GMO11+R_F -6.114 -11.2174 -1.0112 0.0073439
## GMO33_F-GMO11+R_F -5.257 -10.3602 -0.1541 0.0381833
## GMO33+R_F-GMO22_F 5.514 0.4112 10.6174 0.0238831
## [1] "Ca.15"
## diff lwr upr p adj
## C-RupB_F-C-RupA_F 8.664 1.4668 15.861790 0.0069217
## GMO11_F-C-RupA_F 8.292 1.2836 15.300483 0.0085882
## GMO11+R_F-C-RupA_F 10.294 3.4409 17.147681 0.0002265
## GMO22+R_F-C-RupA_F 9.154 2.3009 16.007681 0.0016256
## GMO33+R_F-C-RupA_F 8.474 1.6209 15.327681 0.0048854
## C-RupC_F-C-RupB_F -8.117 -15.6273 -0.606082 0.0238567
## GMO33_F-C-RupB_F -7.207 -14.4046 -0.009638 0.0494150
## GMO11_F-C-RupC_F 7.744 0.4149 15.074025 0.0299456
## GMO11+R_F-C-RupC_F 9.747 2.5652 16.928159 0.0012711
## GMO22+R_F-C-RupC_F 8.607 1.4252 15.788159 0.0073213
## GMO33+R_F-C-RupC_F 7.927 0.7452 15.108159 0.0190993
## GMO33_F-GMO11+R_F -8.837 -15.6905 -1.983747 0.0027371
## GMO33_F-GMO22+R_F -7.697 -14.5505 -0.843747 0.0157928
## GMO33+R_F-GMO33_F 7.017 0.1637 13.870538 0.0404224
## [1] "P.15"
## diff lwr upr p adj
## -11.165714 -20.596657 -1.734771 0.008518
## [1] "Urea.15"
## diff lwr upr p adj
## C-RupC_F-Control_F 0.08733 0.01919 0.15547 0.002984
## C-RupC_F-C-RupA_F 0.08619 0.01278 0.15960 0.009434
## GMO33_F-C-RupC_F -0.08905 -0.16246 -0.01564 0.006280
## [1] "UCreat.15"
## diff lwr upr p adj
## -376.2889 -735.0868 -17.4910 0.0321
## [1] "UCreatex.15"
## diff lwr upr p adj
## C-RupC_F-Control_F -3.650 -6.3719 -0.9276 0.001476
## GMO11+R_F-C-RupC_F 3.215 0.4926 5.9369 0.008646
## [1] "UClair.15"
## diff lwr upr p adj
## C-RupC_F-Control_F -387.9 -714.18 -61.52 0.008165
## GMO11+R_F-C-RupC_F 353.3 26.94 679.60 0.023484
## [1] "UNa.15"
## diff lwr upr p adj
## C-RupC_F-Control_F 43.20 8.916 77.484 0.003686
## GMO33_F-Control_F 45.13 9.510 80.747 0.003413
## GMO22_F-C-RupC_F -44.25 -80.389 -8.111 0.005442
## GMO33_F-GMO22_F 46.18 8.771 83.586 0.004880
## [1] "UNaex.15"
## diff lwr upr p adj
## C-RupA_F-Control_F 0.6049 0.14334 1.066530 0.002090
## GMO33_F-Control_F 0.7042 0.20908 1.199259 0.000562
## C-RupC_F-C-RupA_F -0.5628 -1.05100 -0.074670 0.011558
## GMO11+R_F-C-RupA_F -0.4712 -0.93283 -0.009637 0.041479
## GMO33_F-C-RupC_F 0.6621 0.14213 1.182018 0.003180
## GMO33_F-GMO11+R_F 0.5705 0.07538 1.065559 0.011642
## GMO33_F-GMO22_F 0.5687 0.04875 1.088643 0.020897
## [1] "UK.15"
## diff lwr upr p adj
## -49.75000 -96.19957 -3.30043 0.02601
## [1] "UKex.15"
## diff lwr upr p adj
## 0.66495 0.02813 1.30176 0.03350
## [1] "UCl.15"
## diff lwr upr p adj
## C-RupC_F-Control_F 50.90 12.224 89.576 0.001962
## GMO33_F-Control_F 54.76 14.576 94.938 0.001142
## GMO11+R_F-C-RupC_F -43.10 -81.776 -4.424 0.017059
## GMO22_F-C-RupC_F -48.37 -89.143 -7.607 0.008149
## GMO33_F-GMO11+R_F 46.96 6.776 87.138 0.009833
## GMO33_F-GMO22_F 52.23 10.033 94.431 0.004709
## [1] "UClex.15"
## diff lwr upr p adj
## C-RupA_F-Control_F 0.7516 0.21768 1.28557 0.0006702
## GMO33_F-Control_F 0.8564 0.28372 1.42908 0.0002292
## C-RupC_F-C-RupA_F -0.6735 -1.23815 -0.10880 0.0076435
## GMO11+R_F-C-RupA_F -0.6259 -1.15987 -0.09198 0.0094686
## GMO33_F-C-RupC_F 0.7782 0.17681 1.37969 0.0025224
## GMO33_F-GMO11+R_F 0.7307 0.15802 1.30338 0.0030899
## GMO33_F-GMO22_F 0.6661 0.06469 1.26756 0.0182536
## [1] "UP.15"
## diff lwr upr p adj
## C-RupC_F-C-RupA_F 533.1 43.93 1022.3 0.02172
## GMO11+R_F-C-RupA_F 491.1 28.51 953.7 0.02845
## [1] "UVol.15"
## diff lwr upr p adj
## C-RupC_F-C-RupA_F -9.211 -16.9747 -1.447 0.008162
## GMO22_F-C-RupC_F 8.163 0.1738 16.151 0.041150
## GMO22+R_F-C-RupC_F 8.830 1.2513 16.409 0.010199
## GMO33+R_F-C-RupC_F 8.580 1.0013 16.159 0.014287
## [1] "Testo.15"
## diff lwr upr p adj
## C-RupA_F-Control_F 0.14949 0.060127 0.23885 2.240e-05
## C-RupB_F-Control_F -0.11140 -0.200762 -0.02204 4.235e-03
## GMO33_F-Control_F 0.12610 0.033845 0.21835 1.070e-03
## C-RupB_F-C-RupA_F -0.26089 -0.352572 -0.16921 1.591e-10
## C-RupC_F-C-RupA_F -0.13367 -0.225350 -0.04198 3.559e-04
## GMO11+R_F-C-RupA_F -0.14179 -0.231151 -0.05243 6.960e-05
## GMO22_F-C-RupA_F -0.12333 -0.215017 -0.03165 1.381e-03
## GMO22+R_F-C-RupA_F -0.16279 -0.252151 -0.07343 2.959e-06
## GMO33+R_F-C-RupA_F -0.10739 -0.196751 -0.01803 6.895e-03
## C-RupC_F-C-RupB_F 0.12722 0.035539 0.21891 8.362e-04
## GMO11_F-C-RupB_F 0.19790 0.108538 0.28726 1.076e-08
## GMO11+R_F-C-RupB_F 0.11910 0.029738 0.20846 1.596e-03
## GMO22_F-C-RupB_F 0.13756 0.045872 0.22924 2.098e-04
## GMO22+R_F-C-RupB_F 0.09810 0.008738 0.18746 2.004e-02
## GMO33_F-C-RupB_F 0.23750 0.142995 0.33201 2.834e-10
## GMO33+R_F-C-RupB_F 0.15350 0.064138 0.24286 1.226e-05
## GMO33_F-C-RupC_F 0.11028 0.015773 0.20478 9.957e-03
## GMO22+R_F-GMO11_F -0.09980 -0.186779 -0.01282 1.218e-02
## GMO33_F-GMO11+R_F 0.11840 0.026145 0.21065 2.809e-03
## GMO33_F-GMO22_F 0.09994 0.005439 0.19445 2.952e-02
## GMO33_F-GMO22+R_F 0.13940 0.047145 0.23165 1.833e-04
## [1] "Oestra.15"
## diff lwr upr p adj
## C-RupB_F-Control_F -0.09190 -0.16313 -0.02067 2.646e-03
## C-RupC_F-C-RupA_F 0.08144 0.02014 0.14275 1.711e-03
## C-RupC_F-C-RupB_F 0.14029 0.06775 0.21283 6.826e-07
## GMO11_F-C-RupB_F 0.09830 0.02707 0.16953 9.383e-04
## GMO11+R_F-C-RupB_F 0.10220 0.03097 0.17343 4.873e-04
## GMO22_F-C-RupB_F 0.08962 0.01708 0.16216 4.844e-03
## GMO22+R_F-C-RupB_F 0.09070 0.01947 0.16193 3.195e-03
## GMO33+R_F-C-RupB_F 0.09490 0.02367 0.16613 1.638e-03
## GMO33_F-C-RupC_F -0.08051 -0.14371 -0.01732 3.167e-03
## [1] "BW.15"
## diff lwr upr p adj
## C-RupC_F-C-RupA_F -86.93 -169.147 -4.719 0.02956
## GMO22+R_F-C-RupC_F 86.72 6.592 166.857 0.02331
## GMO33+R_F-C-RupC_F 84.72 4.592 164.857 0.02959
# Males:
tuk(mbio)
## [1] "MCHC.15"
## diff lwr upr p adj
## C-RupB_M-Control_M -1.681 -3.2481 -0.1141 0.02560
## GMO11+R_M-C-RupB_M 1.874 0.2164 3.5308 0.01453
## [1] "MCH.15"
## diff lwr upr p adj
## GMO11+R_M-C-RupB_M 1.272 0.06058 2.48387 0.03175
## GMO33_M-GMO11+R_M -1.280 -2.46279 -0.09721 0.02340
## [1] "Lymph.15"
## diff lwr upr p adj
## GMO11+R_M-Control_M 9.337 0.5496 18.13 0.028219
## GMO22_M-Control_M 10.260 1.9747 18.55 0.004694
## GMO22_M-C-RupC_M 8.770 0.4847 17.06 0.029315
## [1] "Mono.15"
## diff lwr upr p adj
## C-RupA_M-Control_M -2.500 -4.774 -0.22578 0.0198201
## C-RupB_M-Control_M -2.510 -4.847 -0.17347 0.0252503
## GMO11+R_M-Control_M -3.497 -5.910 -1.08533 0.0004049
## GMO22_M-Control_M -2.730 -5.004 -0.45578 0.0070587
## GMO33_M-Control_M -2.340 -4.614 -0.06578 0.0385607
## GMO33+R_M-Control_M -2.677 -5.013 -0.34013 0.0124856
## [1] "Neutro.15"
## diff lwr upr p adj
## GMO22_M-Control_M -7.56 -14.08 -1.0396 0.01083
## GMO22_M-C-RupC_M -7.26 -13.78 -0.7396 0.01724
## [1] "APTT.15"
## diff lwr upr p adj
## GMO11_M-C-RupA_M -11.673 -20.63 -2.7137 0.002368
## GMO11+R_M-C-RupA_M -9.933 -18.89 -0.9737 0.018229
## GMO22_M-C-RupA_M -10.743 -18.12 -3.3628 0.000402
## GMO22+R_M-C-RupA_M -9.150 -17.62 -0.6840 0.023858
## GMO33+R_M-C-RupA_M -10.756 -18.33 -3.1833 0.000612
## GMO11_M-C-RupC_M -8.980 -17.78 -0.1818 0.041622
## GMO22_M-C-RupC_M -8.050 -15.23 -0.8663 0.016215
## GMO33+R_M-C-RupC_M -8.062 -15.44 -0.6817 0.021354
## [1] "PT.15"
## diff lwr upr p adj
## GMO11+R_M-C-RupA_M 1.584 0.32381 2.845 0.003951
## GMO22_M-C-RupA_M 1.084 0.04599 2.123 0.033598
## GMO11+R_M-C-RupC_M 1.360 0.12208 2.598 0.020127
## [1] "Glycem.15"
## diff lwr upr p adj
## 42.72222 3.14216 82.30228 0.02402
## [1] "Prot.15"
## diff lwr upr p adj
## GMO11+R_M-C-RupA_M -6.690 -12.7927 -0.5873 2.042e-02
## GMO33+R_M-C-RupA_M -7.462 -13.3736 -1.5509 3.606e-03
## GMO11+R_M-C-RupB_M -7.750 -13.8527 -1.6473 3.316e-03
## GMO33+R_M-C-RupB_M -8.522 -14.4336 -2.6109 4.479e-04
## GMO11+R_M-C-RupC_M -7.570 -13.6727 -1.4673 4.589e-03
## GMO33+R_M-C-RupC_M -8.342 -14.2536 -2.4309 6.468e-04
## GMO33_M-GMO11+R_M 8.550 2.4473 14.6527 7.308e-04
## GMO33+R_M-GMO22_M -6.082 -11.9936 -0.1709 3.857e-02
## GMO33_M-GMO22+R_M 6.529 0.1883 12.8688 3.829e-02
## GMO33+R_M-GMO33_M -9.322 -15.2336 -3.4109 8.263e-05
## [1] "AST.15"
## diff lwr upr p adj
## GMO11+R_M-C-RupA_M 26.05 3.65 48.45 0.010449
## GMO11+R_M-C-RupB_M 26.45 4.05 48.85 0.008679
## [1] "Na.15"
## diff lwr upr p adj
## GMO11+R_M-C-RupA_M -15.40 -28.125 -2.6748 6.360e-03
## GMO33+R_M-C-RupA_M -18.96 -31.282 -6.6294 1.360e-04
## GMO11+R_M-C-RupB_M -14.60 -27.325 -1.8748 1.226e-02
## GMO33+R_M-C-RupB_M -18.16 -30.482 -5.8294 3.055e-04
## GMO11+R_M-C-RupC_M -16.00 -28.725 -3.2748 3.811e-03
## GMO22+R_M-C-RupC_M -13.71 -26.935 -0.4938 3.570e-02
## GMO33+R_M-C-RupC_M -19.56 -31.882 -7.2294 7.315e-05
## GMO33+R_M-GMO11_M -14.89 -29.028 -0.7498 3.086e-02
## GMO33_M-GMO11+R_M 17.20 4.475 29.9252 1.308e-03
## GMO33+R_M-GMO22_M -14.76 -27.082 -2.4294 7.312e-03
## GMO33_M-GMO22+R_M 14.91 1.694 28.1348 1.489e-02
## GMO33+R_M-GMO33_M -20.76 -33.082 -8.4294 2.056e-05
## [1] "K.15"
## diff lwr upr p adj
## -0.777778 -1.398555 -0.157001 0.004002
## [1] "Cl.15"
## diff lwr upr p adj
## C-RupC_M-Control_M 7.800 0.1089 15.4911 4.407e-02
## GMO11+R_M-C-RupA_M -11.550 -19.7076 -3.3924 6.118e-04
## GMO22+R_M-C-RupA_M -11.229 -19.7037 -2.7534 1.782e-03
## GMO33+R_M-C-RupA_M -14.022 -21.9240 -6.1204 6.110e-06
## GMO11+R_M-C-RupB_M -10.750 -18.9076 -2.5924 1.933e-03
## GMO22+R_M-C-RupB_M -10.429 -18.9037 -1.9534 5.112e-03
## GMO33+R_M-C-RupB_M -13.222 -21.1240 -5.3204 2.363e-05
## GMO11+R_M-C-RupC_M -13.150 -21.3076 -4.9924 5.266e-05
## GMO22+R_M-C-RupC_M -12.829 -21.3037 -4.3534 1.842e-04
## GMO33+R_M-C-RupC_M -15.622 -23.5240 -7.7204 3.731e-07
## GMO33+R_M-GMO11_M -9.556 -18.6195 -0.4916 3.051e-02
## GMO22_M-GMO11+R_M 8.550 0.3924 16.7076 3.231e-02
## GMO33_M-GMO11+R_M 12.950 4.7924 21.1076 7.224e-05
## GMO33+R_M-GMO22_M -11.022 -18.9240 -3.1204 7.860e-04
## GMO33_M-GMO22+R_M 12.629 4.1534 21.1037 2.472e-04
## GMO33+R_M-GMO33_M -15.422 -23.3240 -7.5204 5.321e-07
## [1] "Ca.15"
## diff lwr upr p adj
## GMO33+R_M-C-RupA_M -9.807 -19.10 -0.51757 0.030092
## GMO11+R_M-C-RupB_M -9.640 -19.23 -0.05021 0.047733
## GMO33+R_M-C-RupB_M -10.607 -19.90 -1.31757 0.012968
## GMO33+R_M-C-RupC_M -9.307 -18.60 -0.01757 0.049170
## GMO33_M-GMO11+R_M 10.660 1.07 20.24979 0.017558
## GMO33+R_M-GMO33_M -11.627 -20.92 -2.33757 0.004058
## [1] "P.15"
## diff lwr upr p adj
## [1] "UCreat.15"
## diff lwr upr p adj
## C-RupC_M-Control_M 1466 899.8 2032.0 7.384e-11
## C-RupC_M-C-RupA_M 1252 685.6 1817.8 1.267e-08
## C-RupC_M-C-RupB_M 1218 652.3 1784.5 2.965e-08
## GMO11_M-C-RupC_M -1438 -2062.3 -814.7 3.199e-09
## GMO11+R_M-C-RupC_M -1700 -2300.2 -1099.4 2.644e-11
## GMO22_M-C-RupC_M -1356 -1922.5 -790.3 8.720e-10
## GMO22+R_M-C-RupC_M -1268 -1892.0 -644.4 1.638e-07
## GMO33_M-C-RupC_M -1377 -1942.9 -810.7 5.234e-10
## GMO33+R_M-C-RupC_M -1576 -2157.6 -994.4 3.330e-11
## [1] "UNa.15"
## diff lwr upr p adj
## C-RupC_M-Control_M 69.00 24.6836 113.3164 0.0001055
## GMO22+R_M-Control_M 55.34 6.5085 104.1772 0.0141208
## C-RupC_M-C-RupA_M 55.40 11.0836 99.7164 0.0041141
## C-RupC_M-C-RupB_M 62.90 18.5836 107.2164 0.0005825
## GMO22+R_M-C-RupB_M 49.24 0.4085 98.0772 0.0464182
## GMO11_M-C-RupC_M -53.23 -102.0629 -4.3942 0.0216798
## GMO11+R_M-C-RupC_M -72.30 -119.3047 -25.2953 0.0001340
## GMO22_M-C-RupC_M -56.40 -100.7164 -12.0836 0.0032043
## GMO33_M-C-RupC_M -63.20 -107.5164 -18.8836 0.0005368
## GMO33+R_M-C-RupC_M -59.13 -104.6642 -13.6025 0.0023898
## GMO22+R_M-GMO11+R_M 58.64 7.3565 109.9292 0.0127390
## GMO33_M-GMO22+R_M -49.54 -98.3772 -0.7085 0.0439324
## [1] "UNaex.15"
## diff lwr upr p adj
## GMO22+R_M-Control_M 0.5238 0.080155 0.967473 0.0086729
## GMO22+R_M-C-RupA_M 0.4461 0.002455 0.889773 0.0476047
## GMO22+R_M-C-RupB_M 0.6635 0.219855 1.107173 0.0002288
## GMO22+R_M-C-RupC_M 0.6454 0.201755 1.089073 0.0003788
## GMO33_M-GMO22+R_M -0.4533 -0.896973 -0.009655 0.0411477
## [1] "UK.15"
## diff lwr upr p adj
## C-RupC_M-Control_M 117.80 61.625 173.97 6.570e-08
## C-RupC_M-C-RupA_M 104.60 48.425 160.77 1.807e-06
## C-RupC_M-C-RupB_M 98.30 42.125 154.47 8.364e-06
## GMO11_M-C-RupC_M -106.79 -168.687 -44.88 1.168e-05
## GMO11+R_M-C-RupC_M -130.00 -189.582 -70.42 1.937e-08
## GMO22_M-C-RupC_M -110.60 -166.775 -54.43 4.066e-07
## GMO33_M-C-RupC_M -118.50 -174.675 -62.33 5.495e-08
## GMO33+R_M-C-RupC_M -111.06 -168.769 -53.34 7.606e-07
## GMO22+R_M-GMO11+R_M 70.64 5.633 135.65 2.239e-02
## [1] "UKex.15"
## diff lwr upr p adj
## GMO22+R_M-C-RupB_M 0.6378 0.01294 1.263 0.041539
## GMO11_M-C-RupC_M 0.6551 0.03027 1.280 0.032193
## GMO22+R_M-C-RupC_M 0.8187 0.19384 1.443 0.002097
## GMO33+R_M-C-RupC_M 0.6802 0.09770 1.263 0.009927
## [1] "UCl.15"
## diff lwr upr p adj
## C-RupC_M-Control_M 70.50 11.1696 129.83 0.008008
## C-RupC_M-C-RupB_M 59.70 0.3696 119.03 0.047311
## GMO11+R_M-C-RupC_M -83.82 -146.7544 -20.90 0.001633
## GMO22_M-C-RupC_M -62.40 -121.7304 -3.07 0.031220
## GMO33_M-C-RupC_M -64.40 -123.7304 -5.07 0.022654
## GMO33+R_M-C-RupC_M -73.92 -134.8784 -12.97 0.006175
## [1] "UClex.15"
## diff lwr upr p adj
## GMO11_M-C-RupB_M 0.5073 0.018274 0.9963 3.568e-02
## GMO22+R_M-C-RupB_M 0.6169 0.127845 1.1059 3.630e-03
## GMO11_M-C-RupC_M 0.6629 0.173874 1.1519 1.243e-03
## GMO22+R_M-C-RupC_M 0.7725 0.283445 1.2615 7.894e-05
## GMO33+R_M-C-RupC_M 0.4605 0.004557 0.9164 4.575e-02
## [1] "UCa.15"
## diff lwr upr p adj
## C-RupC_M-C-RupA_M 104.7 9.862 199.54 1.891e-02
## C-RupC_M-C-RupB_M 114.3 19.462 209.14 6.691e-03
## GMO11_M-C-RupC_M -144.5 -248.978 -39.96 9.058e-04
## GMO22_M-C-RupC_M -150.5 -245.338 -55.66 7.188e-05
## GMO33_M-C-RupC_M -148.9 -243.738 -54.06 8.927e-05
## GMO22+R_M-GMO11_M 126.4 13.075 239.78 1.690e-02
## GMO22+R_M-GMO22_M 132.5 27.950 236.96 3.396e-03
## GMO33_M-GMO22+R_M -130.9 -235.364 -26.35 4.023e-03
## [1] "UCaex.15"
## diff lwr upr p adj
## GMO22_M-GMO11+R_M -1.755 -3.411 -0.09778 0.02916
## GMO33_M-GMO11+R_M -1.736 -3.392 -0.07888 0.03245
## [1] "UP.15"
## diff lwr upr p adj
## C-RupC_M-Control_M 758.6 261.5 1255.7 1.563e-04
## C-RupC_M-C-RupA_M 757.4 260.3 1254.5 1.611e-04
## C-RupC_M-C-RupB_M 641.3 144.2 1138.4 2.638e-03
## GMO11+R_M-C-RupC_M -849.9 -1377.2 -322.6 5.211e-05
## GMO33_M-C-RupC_M -744.6 -1241.7 -247.5 2.225e-04
## GMO33+R_M-C-RupC_M -624.3 -1135.0 -113.5 5.571e-03
## [1] "UPex.15"
## diff lwr upr p adj
## [1] "UVol.15"
## diff lwr upr p adj
## GMO11_M-C-RupC_M 10.46 1.092 19.82 0.016687
## GMO11+R_M-C-RupC_M 12.87 3.857 21.88 0.000525
## GMO33_M-C-RupC_M 9.61 1.112 18.11 0.014460
## GMO33+R_M-C-RupC_M 10.69 1.962 19.42 0.005426
## [1] "UpH.15"
## diff lwr upr p adj
## C-RupA_M-Control_M 1.500 0.08674 2.91326 2.851e-02
## C-RupB_M-Control_M 1.800 0.38674 3.21326 3.169e-03
## GMO33_M-Control_M 1.500 0.08674 2.91326 2.851e-02
## GMO11+R_M-C-RupA_M -2.075 -3.57399 -0.57601 8.861e-04
## GMO22+R_M-C-RupA_M -1.771 -3.32876 -0.21409 1.353e-02
## GMO33+R_M-C-RupA_M -1.867 -3.31865 -0.41468 2.772e-03
## GMO11+R_M-C-RupB_M -2.375 -3.87399 -0.87601 7.424e-05
## GMO22+R_M-C-RupB_M -2.071 -3.62876 -0.51409 1.670e-03
## GMO33+R_M-C-RupB_M -2.167 -3.61865 -0.71468 2.385e-04
## GMO11+R_M-GMO11_M -2.089 -3.72481 -0.45376 3.038e-03
## GMO22+R_M-GMO11_M -1.786 -3.47488 -0.09655 2.967e-02
## GMO33+R_M-GMO11_M -1.881 -3.47351 -0.28839 8.635e-03
## GMO22_M-GMO11+R_M 1.875 0.37601 3.37399 4.081e-03
## GMO33_M-GMO11+R_M 2.075 0.57601 3.57399 8.861e-04
## GMO22+R_M-GMO22_M -1.571 -3.12876 -0.01409 4.614e-02
## GMO33+R_M-GMO22_M -1.667 -3.11865 -0.21468 1.218e-02
## GMO33_M-GMO22+R_M 1.771 0.21409 3.32876 1.353e-02
## GMO33+R_M-GMO33_M -1.867 -3.31865 -0.41468 2.772e-03
## [1] "Oestra.15"
## diff lwr upr p adj
## C-RupC_M-Control_M 0.03625 0.003473 0.06903 0.028578
## GMO11_M-Control_M 0.09275 0.035979 0.14952 0.002051
## GMO33+R_M-Control_M 0.09475 0.037979 0.15152 0.001743
## GMO11_M-C-RupA_M 0.09450 0.032310 0.15669 0.003519
## GMO33+R_M-C-RupA_M 0.09650 0.034310 0.15869 0.003017
## GMO11_M-C-RupC_M 0.05650 0.001654 0.11135 0.042634
## GMO33+R_M-C-RupC_M 0.05850 0.003654 0.11335 0.035164
## GMO22+R_M-GMO11_M -0.09750 -0.159690 -0.03531 0.002795
## GMO33+R_M-GMO22+R_M 0.09950 0.037310 0.16169 0.002402
## [1] "BW.15"
## diff lwr upr p adj
## C-RupC_M-Control_M -154.9 -250.554 -59.286 4.688e-05
## C-RupC_M-C-RupA_M -102.7 -198.334 -7.066 2.532e-02
## C-RupC_M-C-RupB_M -105.0 -200.614 -9.346 2.010e-02
## GMO11_M-C-RupC_M 139.6 34.226 244.994 1.776e-03
## GMO11+R_M-C-RupC_M 120.4 19.000 221.870 8.089e-03
## GMO22_M-C-RupC_M 129.4 33.776 225.044 1.278e-03
## GMO33_M-C-RupC_M 141.1 45.466 236.734 2.937e-04
## GMO33+R_M-C-RupC_M 105.0 6.789 203.298 2.650e-02
If you’ve actually made it to this point in the document, I applaud you. This is certainly not for the faint of heart. At first glance there do seem to be a lot of “significant” differences, according to Tukey’s HSD. But some perspective is in order. For each sex, there were 48 measured variables. Within each variable, there are 45 possible pairwise comparisons. So there were 2160 possible pairwise comparisons for each sex. By my count, there were a total of 127 “significant” differences for female rats, and 178 “significant” comparisons for male rats. This would be about 7% of the total pairwise comparisons. We used P=0.05 as our cut off value for “significant” differences, so we expect that about 5% of the observed “significant” differences to have occured by chance. So even though 305 differences seems like a lot, it is actually pretty close to what we’d expect to occur due to random variability.
Two other factors are important in interpreting these many, many comparisons; 119 of the “significant” differences involved the high-dose Roundup in the drinking water treatment. This treatment is really not very interesting because we already know that if a rat is given nothing to drink but a commercially formulated pesticide, it is probably not going to fare well. So 39% of the “significant” differences are due to a treatment that isn’t even remotely relevant to real world use of GMOs or pesticides. Unless you plan to drink formulated Roundup at commercial application rates every day for the rest of your life.
And finally, only 47 of the “significant” comparisons were between a treatment and the control group (or about 1.1% of the possible comparisons). The whole reason for using a control group is to compare the treatments against. And these differences were scattered throughout the data set, with no obvious patterns that I could find (except perhaps differences with the above-referenced high dose Roundup treatment).