[Rd] Random Count Generation with rnbinom

2014-02-22 Thread Dario Strbenac
The documentation states :

An alternative parametrization (often used in ecology) is by the mean ‘mu’, and 
‘size’, the dispersion parameter.

However, this fails :

> rnbinom(10, mu = 100, size = 0)
 [1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Warning message:
In rnbinom(10, mu = 100, size = 0) : NAs produced

For dispersion set to 0, it should work like drawing from a Poisson 
distribution.

It also produces incorrect draws for non-zero dispersions :

> rnbinom(10, mu = 100, size = 0.01)
 [1] 0 0 0 0 0 0 0 0 0 0

It also fails for underdispersed count models :

> rnbinom(10, mu = 100, size = -0.1)
 [1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Warning message:
In rnbinom(10, mu = 100, size = -0.1) : NAs produced

> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_AU.UTF-8   LC_NUMERIC=C  
 [3] LC_TIME=en_AU.UTF-8LC_COLLATE=en_AU.UTF-8
 [5] LC_MONETARY=en_AU.UTF-8LC_MESSAGES=en_AU.UTF-8   
 [7] LC_PAPER=en_AU.UTF-8   LC_NAME=C 
 [9] LC_ADDRESS=C   LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C   

attached base packages:
[1] stats graphics  grDevices utils datasets  methods   base 

loaded via a namespace (and not attached):
[1] tools_3.0.2

--
Dario Strbenac
PhD Student
University of Sydney
Camperdown NSW 2050
Australia
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Random Count Generation with rnbinom

2014-02-22 Thread Achim Zeileis

On Sun, 23 Feb 2014, Dario Strbenac wrote:


The documentation states :

An alternative parametrization (often used in ecology) is by the mean ?mu?, and 
?size?, the dispersion parameter.

However, this fails :


rnbinom(10, mu = 100, size = 0)

[1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Warning message:
In rnbinom(10, mu = 100, size = 0) : NAs produced

For dispersion set to 0, it should work like drawing from a Poisson 
distribution.


No, Poisson is the case for size converging to Inf. Compare:

R> dnbinom(1:4, mu = 1, size = 1e9)
[1] 0.36787945 0.18393972 0.06131324 0.01532831
R> dpois(1:4, lambda = 1)
[1] 0.36787944 0.18393972 0.06131324 0.01532831

This is easy to see from the explanation in the manual page:

  The variance is 'mu + mu^2/size' in this parametrization.

So for size = Inf this yields mu, i.e., equidispersion. And for finite 
positive size, there is always overdispersion.



It also produces incorrect draws for non-zero dispersions :


rnbinom(10, mu = 100, size = 0.01)

[1] 0 0 0 0 0 0 0 0 0 0


This conforms with the documentation

  The case 'size == 0' is the distribution concentrated at zero.
  This is the limiting distribution for 'size' approaching zero,
  even if 'mu' rather than 'prob' is held constant. Notice though,
  that the mean of the limit distribution is 0, whatever the value
  of 'mu'.


It also fails for underdispersed count models :


rnbinom(10, mu = 100, size = -0.1)

[1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Warning message:
In rnbinom(10, mu = 100, size = -0.1) : NAs produced


And here the manual explains:

size: target for number of successful trials, or dispersion
  parameter (the shape parameter of the gamma mixing
  distribution).  Must be strictly positive, need not be
  integer.



sessionInfo()

R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
[1] LC_CTYPE=en_AU.UTF-8   LC_NUMERIC=C 
[3] LC_TIME=en_AU.UTF-8LC_COLLATE=en_AU.UTF-8 
[5] LC_MONETARY=en_AU.UTF-8LC_MESSAGES=en_AU.UTF-8 
[7] LC_PAPER=en_AU.UTF-8   LC_NAME=C 
[9] LC_ADDRESS=C   LC_TELEPHONE=C 
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C 


attached base packages:
[1] stats graphics  grDevices utils datasets  methods   base 


loaded via a namespace (and not attached):
[1] tools_3.0.2

--
Dario Strbenac
PhD Student
University of Sydney
Camperdown NSW 2050
Australia
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel