Learn R Programming

msme (version 0.5.1)

nbinomial: A function to fit negative binomial generalized linear models using maximum likelihood.

Description

This function fits generalized linear models by maximizing the joint log-likeliood, which is set in a separate function. Two-parameter members of the negative binomial family are covered. The post-estimation output is designed to work with existing reporting functions.

Usage

nbinomial(formula1, formula2 = ~1, data, family="nb2", mean.link="log", scale.link="inverse_s", offset=0, start=NULL, verbose=FALSE)

Arguments

formula1
an object of class '"formula"' (or one that can be coerced to that class): a symbolic description of the mean function for the model to be fitted. (See the help for 'glm' for more details).
formula2
an object of class '"formula"' (or one that can be coerced to that class): a symbolic description of the scale function for the model to be fitted. (See the help for 'glm' for more details).
data
a data frame containing the variables in the model.
family
a description of the error distribution be used in the model. This must be a character string naming a family.
mean.link
a description of the link function be used for the mean in the model. This must be a character string naming a link function.
scale.link
a description of the link function be used for the scale in the model. This must be a character string naming a link function.
offset
this can be used to specify an _a priori_ known component to be included in the linear predictor during fitting. This should be 0 or a numeric vector of length equal to the number of cases.
start
optional starting points for the parameter estimation.
verbose
logical flag affecting the detail of printing. Defaults to FALSE.

Value

fit
the output of optim.
loglike
the maximized log-likelihood.
X
the design matrix.
y
the response variable.
p
the numbe of parameters estimated.
call
the call used for the function.
obs
the number of observations.
fitted.values
estimated response variable.
linear.predictor
linear predictor.
df.null
the degrees of freedom for the null model.
df.residual
the residual degrees of freedom.
pearson
the Pearson Chi2.
null.pearson
the Pearson Chi2 for the null model.
dispersion
the dispersion.
deviance
the residual deviance.
null.deviance
the residual deviance for the null model.
residuals
the deviance residuals.
presiduals
the Pearson residuals.
coefficients
parameter estimates.
se.beta.hat
standard errors of parameter estimates.
aic
Akaike's Information Criterion.
offset
the offset used.
i
the number of iterations required for convergence.

Details

The containing package, msme, provides the needed functions to use the nbinomial function to fit the negative binomial (2), families, and supports the use of the identity and log link functions.

The object returned by the function is designed to be reported by the print.glm function.

References

Hilbe, J.M., and Robinson, A.P. 2013. Methods of Statistical Model Estimation. Chapman & Hall / CRC.

See Also

glm, irls, ml_glm2,

Examples

Run this code
data(medpar)

# TRADITIONAL NB REGRESSION WITH ALPHA

mynb1 <- nbinomial(los ~ hmo + white, data=medpar)
summary(mynb1)

# TRADITIONAL NB -- SHOWING ALL OPTIONS

mynb2 <- nbinomial(los ~ hmo + white,
                    formula2 = ~ 1,
                    data = medpar,
                    family = "nb2",
                    mean.link = "log",
                    scale.link = "inverse_s")
summary(mynb2)

# R GLM.NB - LIKE INVERTED DISPERSION BASED M

mynb3 <- nbinomial(los ~ hmo + white,
                    formula2 = ~ 1,
                    data = medpar,
                    family = "negBinomial",
                    mean.link = "log",
                    scale.link = "inverse_s")
summary(mynb3)

# R GLM.NB-TYPE INVERTED DISPERSON --THETA ; WITH DEFAULTS

mynb4 <- nbinomial(los ~ hmo + white, family="negBinomial", data =medpar)
summary(mynb4)

# HETEROGENEOUS NB; DISPERSION PARAMETERIZED

mynb5 <- nbinomial(los ~ hmo + white,
                    formula2 = ~ hmo + white,
                    data = medpar,
                    family = "negBinomial",
                    mean.link = "log",
                    scale.link = "log_s")
summary(mynb5)



Run the code above in your browser using DataLab