[R] chisq.test: decreasing p-value

Peter Dalgaard P.Dalgaard at biostat.ku.dk
Wed Mar 11 12:24:14 CET 2009


soeren.vogel at eawag.ch wrote:
> A Likert scale may have produced counts of answers per category.
> According to theory I may expect equality over the categories. A
> statistical test shall reveal the actual equality in my sample.
> 
> When applying a chi square test with increasing number of repetitions
> (simulate.p.value) over a fixed sample, the p-value decreases
> dramatically (looks as if converge to zero).
> 
> (1) Why?
> (2) (If this test is wrong), then which test can check what I want to
> check, that is: are the two distributions of frequencies (observed and
> expected) in principle the same?
> (3) By the way, how to deal with low frequency cells?
> 
> r <- c(10, 100, 500, 1000, 2000, 5000)
> v <- c(35, 40, 45, 45, 40, 35)
> sapply(list(r), function (x) { chisq.test(v, p=c(rep.int(40, 6)),
> rescale.p=T, simulate.p.value=T, B=x)$p.value })

This is a combination of user error and an infelicity in chisq.test.

You are sapply'ing over a list with one element, so essentially you are
doing

chisq.test(v, p=c(rep.int(40, 6)),
 rescale.p=T, simulate.p.value=T, B=r)$p.value

Now B is supposed to be a single integer, so the above cannot be
expected to do anything sensible, but you might have hoped for an error
message. Instead, it seems that you get the result of r[1] replications
divided by r+1:

> chisq.test(v, p=c(rep.int(40, 6)), rescale.p=T, simulate.p.value=T,
B=r)$p.value
[1] 0.636363636 0.069306931 0.013972056 0.006993007 0.003498251 0.001399720

> 7/(r+1)
[1] 0.636363636 0.069306931 0.013972056 0.006993007 0.003498251 0.001399720

What you really wanted was

> sapply(r,function (x) { chisq.test(v, p=c(rep.int(40, 6)),
rescale.p=T, simulate.p.value=T, B=x)$p.value })
[1] 0.9090909 0.8118812 0.7964072 0.7672328 0.8025987 0.7932414



> Thank you, Sören
> 
> 
> --Sören Vogel, PhD-Student, Eawag, Dept. SIAM
> http://www.eawag.ch, http://sozmod.eawag.ch
> 
> ______________________________________________
> 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.


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907




More information about the R-help mailing list