binom.test inside ctest
gb writes:
Bendix,
that's what I meant. There are in fact _two_ border points, when you look at the two-sided test, 35 and 65. I thougt of taking half of each point, but expressed it in a sloppy way.
The perhaps more interesting thing to discuss is whether this is a reasonable thing to do or not. Would the one-sided analogue to add half of the probability of the only border point to the p-value be equally reasonable? What do the experts say? References?
To start with, the result of binom.test(65, 100, p=0.5) which is
currently reported is not what is intended. As Peter Dalgaard pointed
out, we need to add some fuzz to protect against differences of order
10^(-18) ...
There was some discussion on what the ``correct'' 2-sided p-value in the
discrete case is. Some references simply use twice the smaller
one-sided probability. I think the best approach is to use the prob
of ``observing a value at least as extreme as the one observed'', or
more precisely of ``observing a value no more likely than the one
observed''. I.e., if X is the test statistic and d its probability
density function and x the value observed, then
p-value = sum_{y: d(y) <= d(x)} d(y)
(see the comment
## Do
## d <- dbinom(0 : n, n, p)
## sum(d[d <= dbinom(x, n, p)])
## a bit more efficiently ...
in the code for binom.test().)
I don't have a reference available ... so if anyone else has ...
Simon Fear <fears at roycastle.liv.ac.uk> pointed me to an alternative
definition given in a paper by Vollset [sorry but I think I deleted the
exact reference] which
defines an exact two-sided P value as
P = 2[f P(X=x) + min{P(X<x),P(X>x)}]
where P() is evaluated under the null. This with f=.5 gives
double the mid-P value, if f is one you get the definition in
Cox and Snell. Either way, it is not the analogue of what we
(and many others) have preferred for the Fisher's test.
I have been wanting for some time to take a closer look into this, and
maybe implement the above for the discrete tests in ctest. No time thus
far ... if someone else wants to give this a shot, pls feel free.
-k
Göran
On Tue, 12 Sep 2000, BXC (Bendix Carstensen) wrote:
-----Original Message----- From: gb [mailto:gb at stat.umu.se] Sent: 12. september 2000 08:40 To: Mai Zhou Cc: r-help at stat.math.ethz.ch Subject: Re: [R] binom.test inside ctest Mai, it seems as if binom.test only adds half the probability of of the border point 65 to the p-value. If you try
(1-pbinom(64, 100, p = 0.5)) + pbinom(34, 100, p=0.5)
[1] 0.002653786 you get the same result as binom.test.
Göran, Rather, it adds the border point only once: I think the general idea is:
db <- dbinom(0:100,100,p=0.5) obs.p <- dbinom(65,100,p=0.5) sum(db[db<obs.p])+obs.p
[1] 0.002653786 Bendix
Göran On Tue, 12 Sep 2000, Mai Zhou wrote:
I got binom.test(65, 100, p=0.5) p-value = 0.002654 I thought in this case (when p=0.5 so a symmetric distribution) we should get p-value = 2*( 1-pbinom(64, 100, p=0.5) ) = 0.003517642 Can somebody explain why the difference? Thanks. Mai Zhou
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. -.-.-.-.-.-.-.-.-
r-help mailing list -- Read
Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To:
r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. _._._._._._._._._
-- Göran Broström tel: +46 90 786 5223 Department of Statistics fax: +46 90 786 6614 Umeå University SE-90187 Umeå, Sweden e-mail: gb at stat.umu.se
---------------------- Bendix Carstensen Senior Statistician Steno Diabetes Centre Niels Steensens Vej 2 DK-2820 Gentofte Denmark tel: +45 44 43 87 38 mob: +45 28 25 87 38 fax: +45 44 43 73 13 bxc at novo.dk www.biostat.ku.dk/~bxc ----------------------
-- Göran Broström, professor tel: +46 90 786 5223 Department of Statistics fax: +46 90 786 6614 Umeå University SE-90187 Umeå, Sweden e-mail: gb at stat.umu.se
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._