Posnegbin                package:VGAM                R Documentation

_P_o_s_i_t_i_v_e-_N_e_g_a_t_i_v_e _B_i_n_o_m_i_a_l _D_i_s_t_r_i_b_u_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Density, distribution function, quantile function and random
     generation for the positive-negative binomial distribution.

_U_s_a_g_e:

     dposnegbin(x, size, prob=NULL, munb=NULL, log=FALSE)
     pposnegbin(q, size, prob=NULL, munb=NULL)
     qposnegbin(p, size, prob=NULL, munb=NULL)
     rposnegbin(n, size, prob=NULL, munb=NULL)

_A_r_g_u_m_e_n_t_s:

    x, q: vector of quantiles.

       p: vector of probabilities.

       n: number of random values to return. If 'length(n) > 1' then
          the length is taken to be the number required.

size, prob, munb, log: Same arguments as that of an ordinary negative
          binomial distribution (see 'dnbinom'). Some arguments have
          been renamed slightly.

          Short vectors are recycled. The  parameter '1/size' is known
          as a dispersion parameter; as 'size' approaches infinity, the
          negative binomial distribution approaches a Poisson
          distribution.

_D_e_t_a_i_l_s:

     The positive-negative binomial distribution is a negative binomial
     distribution but with the probability of a zero being zero. The
     other probabilities are scaled to add to unity. The mean therefore
     is

                           munb / (1-p(0))

     where munb the mean of an ordinary negative binomial distribution.
     The arguments of 'rposnegbin()' are fed into 'rnbinom' until n
     positive values are obtained.

_V_a_l_u_e:

     'dposnegbin' gives the density, 'pposnegbin' gives the
     distribution function, 'qposnegbin' gives the quantile function,
     and 'rposnegbin' generates n random deviates.

_N_o_t_e:

     The running time of 'rposnegbin()' is slow when 'munb' is very
     close to zero.

_A_u_t_h_o_r(_s):

     T. W. Yee

_R_e_f_e_r_e_n_c_e_s:

     Welsh, A. H., Cunningham, R. B., Donnelly, C. F. and Lindenmayer,
     D. B. (1996) Modelling the abundances of rare species: statistical
     models for counts with extra zeros. _Ecological Modelling_, *88*,
     297-308.

_S_e_e _A_l_s_o:

     'posnegbinomial', 'rnbinom', 'zanegbinomial'.

_E_x_a_m_p_l_e_s:

     munb = 5; size = 4; n = 1000
     table(y <- rposnegbin(n, munb=munb, size=size))
     mean(y)    # sample mean
     munb / (1 - (size/(size+munb))^size) # population mean
     munb / pnbinom(0, mu=munb, size=size, lower.tail=FALSE) # same as before

     x <- (-1):17
     (ii = dposnegbin(x, munb=munb, size=size))
     max(abs(cumsum(ii) - pposnegbin(x, munb=munb, size=size)))  # Should be 0

     ## Not run: 
     x = 0:10
     barplot(rbind(dposnegbin(x, munb=munb, size=size), dnbinom(x, mu=munb, size=size)),
             beside = TRUE, col = c("blue","green"),
             main=paste("dposnegbin(munb=", munb, ", size=", size, ") (blue) vs",
                             " dnbinom(mu=", munb, ", size=", size, ") (green)", sep=""),
             names.arg = as.character(x))
     ## End(Not run)

     # Another test for pposnegbin()
     nn = 5000
     mytab = cumsum(table(rposnegbin(nn, munb=munb, size=size))) / nn
     myans = pposnegbin(sort(as.numeric(names(mytab))), munb=munb, size=size)
     max(abs(mytab - myans))  # Should be 0

