From ripley at stats.ox.ac.uk  Fri Jul  4 10:02:21 2008
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Fri, 4 Jul 2008 09:02:21 +0100 (BST)
Subject: [Rd] update on dnbinom with large "size"
In-Reply-To: <486D8C99.2050006@ufl.edu>
References: <486D8C99.2050006@ufl.edu>
Message-ID: <alpine.LFD.1.10.0807040851240.21565@gannet.stats.ox.ac.uk>

On Thu, 3 Jul 2008, Ben Bolker wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
> ~  turns out I don't need to look at the C code.
>
> ~  if one uses the mu/size parameterization of the
> negative binomial, R computes size/(size+mu) to
> switch parameterizations.  If size>>mu this
> gets rounded to 1 ... should be easy enough
> to test and return NA under these circumstances?

It is all vectorized, so not so easy.  But why is NA appropriate, when a 
Poisson approximation seems more appropriate?

The same issue affects [pqr]nbinom, of course.

The short-term advice is of course 'don't do that' but use a suitable 
approximation such as Poisson.  Maybe there are reasons to support values 
of size > 1e10, but I suspect only for completeness and maybe it is better 
to at least give a warning.

>
> function (x, size, prob, mu, log = FALSE)
> {
> ~    if (!missing(mu)) {
> ~        if (!missing(prob))
> ~            stop("'prob' and 'mu' both specified")
> ~        prob <- size/(size + mu)
> ~    }
> ~    .Internal(dnbinom(x, size, prob, log))
> }
>
> ~  Ben Bolker
>
>
> - --------------------------
> ~  Check it out:
>
> curve(dnbinom(1,mu=0.5,size=x),log="x",from=1,to=1e18)
> abline(h=dpois(1,lambda=0.5),col=2,lty=2)
> text(1,dpois(1,lambda=0.5)+0.02,"Poisson",col=2,pos=4)
>
> ~  I will take a look in the C code when I get
> a chance to see if I can offer
> a patch, but in the meantime wanted to alert people to
> this "feature" ...  (it looks like I will have to go
> through dnbinom and dbinom_raw to see where the problem
> is ...)
>
> ~   Ben Bolker
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFIbYyRc5UpGjwzenMRAh57AJ49SUuWs1++D7sacUnFZud2MAROhACfThzD
> OmM9WuuFZrk4kO1s9MafLlk=
> =wzaH
> -----END PGP SIGNATURE-----
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] update on dnbinom with large "size"
Prof Brian Ripley