Negative binomial (NB2): generic synthetic negative binomial data and model
Negative binomial (NB2): generic synthetic negative binomial data and model
nb2_syn is a generic function for developing synthetic NB2 data and a model given user defined specifications.
nb2_syn(nobs =50000, off =0, alpha =1, xv = c(1,0.75,-1.5))
Arguments
nobs: number of observations in model, Default is 50000
alpha: NB2 heterogeneity or ancillary parameter
off: optional: log of offset variable
xv: predictor coefficient values. First argument is intercept. Use as xv = c(intercept , x1_coef, x2_coef, ...)
Details
Create a synthetic negative binomial (NB2) regression model using the appropriate arguments. Model data with predictors indicated as a group with a period (.). Offset optional. If no offset is desired, drop "off= loff" from nb2_syn function call and "+ loff" from glm.nb function call. See examples.
Data can be estimated using the glm.nb() function, or the ml.nb2() function in the COUNT package, or by using the gamlss function in the gamlss package, with "family=NBI" option.
Returns
nby: Negative binomial response; number of counts
sim.data: synthetic data set
References
Hilbe, J.M. (2011), Negative Binomial Regression, second edition, Cambridge University Press.
Author(s)
Andrew Robinson, Universty of Melbourne, Australia, and Joseph M. Hilbe, Arizona State University, Jet Propulsion Laboratory, California Institute of Technology
See Also
poisson_syn, nb1_syn, nbc_syn
Examples
library(MASS)sim.data <- nb2_syn(nobs =500, alpha =.5, xv = c(2,.75,-1.25))mynb2 <- glm.nb(nby ~ . , data = sim.data)summary(mynb2)confint(mynb2)# with offsetoset <- rep(1:5, each=100, times=1)*100loff <- log(oset)sim.data <- nb2_syn(nobs =500, off = loff, alpha =.5, xv = c(1.2,-.75,.25,-1.3))mypof <- glm.nb(nby ~ . + loff, data = sim.data)summary(mypof)confint(mypof)# without offset, exponentiated coefficients, CI'ssim.data <- nb2_syn(nobs =500, alpha =.75, xv = c(1,.5,-1.4))mynbf <- glm.nb(nby ~ . , data = sim.data)exp(coef(mynbf))exp(confint(mynbf))## Not run:# default, without offsetsim.data <- nb2_syn()dnb2 <- glm.nb(nby ~ . , data = sim.data)summary(dnb2)## End(Not run)# use ml.nb2.r functionsim.data <- nb2_syn(nobs =500, alpha =.5, xv = c(2,.75,-1.25))mynb2x <- ml.nb2(nby ~ . , data = sim.data)mynb2x
## Not run:# use gamlss function for modeling data after sim.data createdlibrary(gamlss)sim.data <- nb2_syn(nobs =500, alpha =.5, xv = c(2,.75,-1.25))gamnb <- gamlss(nby ~ ., family=NBI, data = sim.data)gamnb
## End(Not run)