From: Spencer Graves <spencer.graves_at_pdf.com>

Date: Wed 23 Nov 2005 - 22:01:29 GMT

}

> qbinom.(pb01,1, .5, log=T, lower.tail=F)

[1] 0 1

Warning message:

NaNs produced in: qbinom(p, size, prob, lower.tail, log.p)

}

.Internal(qbinom(p, size, prob, lower.tail, log.p)) }

Date: Wed 23 Nov 2005 - 22:01:29 GMT

Hi, All:

For most but not all cases, qbinom is the inverse of pbinom. Consider the following example, which generates an exception:

> (pb01 <- pbinom(0:1, 1, .5, log=T, lower.tail=FALSE))

[1] -0.6931472 -Inf

Since "lower.tail=FALSE", Pr{X>1} = 0 in this context, and log(0) = -Inf, consistent with the documentation.

However, the inverse of this does NOT recover 0:1:

> qbinom(pb01,1, .5, log=T, lower.tail=F)

[1] 0 NaN

Shouldn't the NaN here be 1? If yes, this is relatively easy to fix. Consider for example the following:

qbinom. <-

function (p, size, prob, lower.tail = TRUE, log.p = FALSE){

q. <- .Internal(qbinom(p, size, prob, lower.tail, log.p)) q.[p==(-Inf)] <- 1 q.

}

> qbinom.(pb01,1, .5, log=T, lower.tail=F)

[1] 0 1

Warning message:

NaNs produced in: qbinom(p, size, prob, lower.tail, log.p)

It's also easy to eliminate the Warning. Consider for example the following:

qbinom. <-

function (p, size, prob, lower.tail = TRUE, log.p = FALSE){

if(any(p.inf <- p==(-Inf))&&(!lower.tail)&&log.p){

n <- max(length(p), length(size), length(prob)) p <- rep(p, length=n) size <- rep(size, length=n) prob <- rep(prob, length=n) q. <- size q.[p>(-Inf)] <- .Internal(qbinom(p[!p.inf], size[!p.inf], prob[!p.inf], lower.tail, log.p)) return(q.)

}

.Internal(qbinom(p, size, prob, lower.tail, log.p)) }

I suspect that for the right person, it would likely be easy to fix this in the .Internal qbinom code. However, that's beyond my current R skill level.

Thanks for all your efforts to make R what it is today. Best Wishes, spencer graves

-- Spencer Graves, PhD Senior Development Engineer PDF Solutions, Inc. 333 West San Carlos Street Suite 700 San Jose, CA 95110, USA spencer.graves@pdf.com www.pdf.com <http://www.pdf.com> Tel: 408-938-4420 Fax: 408-280-7915 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-develReceived on Thu Nov 24 09:13:32 2005

*
This archive was generated by hypermail 2.1.8
: Mon 20 Feb 2006 - 03:21:34 GMT
*