In specific cases fligner.test() can produce a small p-value even when both 
groups have constant variance.

Here is an illustration:

   fligner.test(c(1,1,2,2), c("a","a","b","b"))
   # p-value = NA

But:

   fligner.test(c(1,1,1,2,2,2), c("a","a","a","b","b","b"))
   # p-value < 2.2e-16

This can potentially get dangerous if people perform lots of parallel tests of 
this type (i.e. when doing a test for each gene in genomic studies).

Submitted a proposed patch that should solve the issue by producing an error "data 
is essentially constant"
- which is the same error message found in t-test under similar conditions.

P.S. First time writing to this list. Read all the guides of posting, but sorry 
in advance if I still missed any rules.

---
Karolis Koncevičius
Index: src/library/stats/R/fligner.test.R
===================================================================
--- src/library/stats/R/fligner.test.R  (revision 76710)
+++ src/library/stats/R/fligner.test.R  (working copy)
@@ -55,6 +55,8 @@
 
     ## Careful. This assumes that g is a factor:
     x <- x - tapply(x,g,median)[g]
+    if (all(x == 0))
+      stop("data are essentially constant")
 
     a <- qnorm((1 + rank(abs(x)) / (n + 1)) / 2)
     STATISTIC <- sum(tapply(a, g, "sum")^2 / tapply(a, g, "length"))
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to