Why does R return a low p-value for ANOVA on a set of 1s?

118 views Asked by At

I'm trying to use repeated rounds of ANOVA to sort a large dataset into different categories. For each element in the dataset I have twelve data points which represent three replicates each of four conditions, which arise as two combinitions of two variable1. The data is some relative expression compared to a control, which means that for the control itself all twelve values are 1:

>at
    v1 v2  values
 1.  a  X  1
 2.  b  X  1
 3.  a  X  1
 4.  b  X  1
 5.  a  X  1
 6.  b  X  1
 7.  a  Y  1
 8.  b  Y  1
 9.  a  Y  1
10.  b  Y  1
11.  a  Y  1
12.  b  Y  1

which I analyze this way (the Tukey wrapper gives me Information about whether it is up or down in addition to whether it is different, which is why I'm using it):

    stats <- TukeyHSD(aov(values~v1+v2, data=at))

> stats
Tukey multiple comparisons of means
95% family-wise confidence level

Fit: aov(formula = values ~ v1 + v2, data = at)

$v1
            diff           lwr          upr     p adj
a-b 4.440892e-16 -1.359166e-16 1.024095e-15 0.1173068

$v2
             diff           lwr          upr     p adj
X-Y -4.440892e-16 -1.024095e-15 1.359166e-16 0.1173068

I expected the p value to be very close or equal to 1 since clearly the null hypothesis that the two groups of both of these tests are the same is correct. Instead the p-value is very low with 0.117! Clearly the difference and the bounds are tiny (e-16) so I'm guessing the problem is to do with the internal storage of the numbers as slightly off 1, but I'm not sure how to solve the problem. Any suggestions? Thanks a lot!

I'm adding some sample data:

           aX1   bX1   aX2   bX2   aX3   bX3   aY1   bY1   aY2   bY2   aY3   bY3
element1   0.112 0     0.172 0.072 0.058 0.055 0     0     0.046 0     0.042 0   
element2   0.859 0.294 0.565 0     0.669 0     0.11  0     1.707 0     1.324 0
element3   1.255 0.721 3.645 1.636 5.36  6.701 0     0.097 0.533 0.209 0.358 2.219
0

There are 0 answers