The BNB()
function defines the beta negative binomial distribution, a three parameter distribution, for a gamlss.family
object to be used in GAMLSS fitting using the function gamlss()
.
The functions dBNB
, pBNB
, qBNB
and rBNB
define the density, distribution function, quantile function and random
generation for the beta negative binomial distribution, BNB()
.
The functions ZABNB()
and ZIBNB()
are the zero adjusted (hurdle) and zero inflated versions of the beta negative binomial distribution, respectively. That is four parameter distributions.
The functions dZABNB
, dZIBNB
, pZABNB
,pZIBNB
, qZABNB
qZIBNB
rZABNB
and rZIBNB
define the probability, cumulative, quantile and random
generation functions for the zero adjusted and zero inflated beta negative binomial distributions, ZABNB()
, ZIBNB()
, respectively.
BNB(mu.link = "log", sigma.link = "log", nu.link = "log")
dBNB(x, mu = 1, sigma = 1, nu = 1, log = FALSE)
pBNB(q, mu = 1, sigma = 1, nu = 1, lower.tail = TRUE, log.p = FALSE)
qBNB(p, mu = 1, sigma = 1, nu = 1, lower.tail = TRUE, log.p = FALSE,
max.value = 10000)
rBNB(n, mu = 1, sigma = 1, nu = 1, max.value = 10000)ZABNB(mu.link = "log", sigma.link = "log", nu.link = "log",
tau.link = "logit")
dZABNB(x, mu = 1, sigma = 1, nu = 1, tau = 0.1, log = FALSE)
pZABNB(q, mu = 1, sigma = 1, nu = 1, tau = 0.1, lower.tail = TRUE,
log.p = FALSE)
qZABNB(p, mu = 1, sigma = 1, nu = 1, tau = 0.1, lower.tail = TRUE,
log.p = FALSE, max.value = 10000)
rZABNB(n, mu = 1, sigma = 1, nu = 1, tau = 0.1, max.value = 10000)
ZIBNB(mu.link = "log", sigma.link = "log", nu.link = "log",
tau.link = "logit")
dZIBNB(x, mu = 1, sigma = 1, nu = 1, tau = 0.1, log = FALSE)
pZIBNB(q, mu = 1, sigma = 1, nu = 1, tau = 0.1, lower.tail = TRUE,
log.p = FALSE)
qZIBNB(p, mu = 1, sigma = 1, nu = 1, tau = 0.1, lower.tail = TRUE,
log.p = FALSE, max.value = 10000)
rZIBNB(n, mu = 1, sigma = 1, nu = 1, tau = 0.1, max.value = 10000)
The link function for mu
The link function for sigma
The link function for nu
The link function for tau
vector of (non-negative integer)
vector of positive means
vector of positive dispersion parameter
vector of a positive parameter
vector of probabilities
logical; if TRUE, probabilities p are given as log(p)
logical; if TRUE (default), probabilities are P[X <= x], otherwise, P[X > x]
vector of probabilities
vector of quantiles
number of random values to return
a constant, set to the default value of 10000 for how far the algorithm should look for q
returns a gamlss.family
object which can be used to fit a Poisson distribution in the gamlss()
function.
The probability function of the BNB
is
The distribution has mean
Rigby, R. A. and Stasinopoulos D. M. (2005). Generalized additive models for location, scale and shape,(with discussion), Appl. Statist., 54, part 3, pp 507-554.
Stasinopoulos D. M., Rigby R.A. and Akantziliotou C. (2006) Instructions on how to use the GAMLSS package in R. Accompanying documentation in the current GAMLSS help files, (see also http://www.gamlss.org/).
Stasinopoulos D. M. Rigby R.A. (2007) Generalized additive models for location scale and shape (GAMLSS) in R. Journal of Statistical Software, Vol. 23, Issue 7, Dec 2007, http://www.jstatsoft.org/v23/i07.
Stasinopoulos D. M., Rigby R.A., Heller G., Voudouris V., and De Bastiani F., (2017) Flexible Regression and Smoothing: Using GAMLSS in R, Chapman and Hall/CRC.
# NOT RUN {
BNB() # gives information about the default links for the beta negative binomial
# plotting the distribution
plot(function(y) dBNB(y, mu = 10, sigma = 0.5, nu=2), from=0, to=40, n=40+1, type="h")
# creating random variables and plot them
tN <- table(Ni <- rBNB(1000, mu=5, sigma=0.5, nu=2))
r <- barplot(tN, col='lightblue')
ZABNB()
ZIBNB()
# plotting the distribution
plot(function(y) dZABNB(y, mu = 10, sigma = 0.5, nu=2, tau=.1),
from=0, to=40, n=40+1, type="h")
plot(function(y) dZIBNB(y, mu = 10, sigma = 0.5, nu=2, tau=.1),
from=0, to=40, n=40+1, type="h")
# }
# NOT RUN {
library(gamlss)
data(species)
species <- transform(species, x=log(lake))
m6 <- gamlss(fish~ pb(x), sigma.fo=~1, data=species, family=BNB)
# }
Run the code above in your browser using DataLab