statmod (version 1.4.13)

glmgam.fit: Fit Generalized Linear Model by Fisher Scoring with Levenberg Damping

Description

Fit a generalized linear model with secure convergence. Provided for gamma glm with identity links or negative binomial glm with log-links.

Usage

glmgam.fit(X, y, start=NULL, tol=1e-6, maxit=50, trace=FALSE)
glmnb.fit(X, y, dispersion, offset=0, start=NULL, tol=1e-6, maxit=50, trace=FALSE)

Arguments

X
design matrix, assumed to be of full column rank. Missing values not allowed.
y
numeric vector of responses. Negative or missing values not allowed.
dispersion
numeric vector of over-dispersion parameters for negative binomial. If of length 1, then same over-dispersion is assumed for all observations.
offset
offset vector for linear model
start
numeric vector of starting values for the regression coefficients
tol
small positive numeric value giving convergence tolerance
maxit
maximum number of iterations allowed
trace
logical value. If TRUE then output diagnostic information at each iteration.

Value

  • List with the following components:
  • coefficientsnumeric vector of regression coefficients
  • fittednumeric vector of fitted values
  • devianceresidual deviance
  • iternumber of iterations used to convergence. If convergence was not achieved then iter is set to maxit+1.

Details

These functions implement a modified Fisher scoring algorithm for generalized linear models, similar to the Levenberg-Marquardt algorithm for nonlinear least squares. The Levenberg-Marquardt modification checks for a reduction in the deviance at each step, and avoids the possibility of divergence. The result is a very secure algorithm that converges for almost all datasets. glmgam.fit is in principle similar to glm.fit(X,y,family=Gamma(link="identity")) but with much more secure convergence. This function is used by mixedModel2Fit. glmnb.fit is in principle similar to glm.fit(X,y,family=negative.binomial(link="log",theta=1/dispersion)) but with more secure convergence.

Examples

Run this code
y <- rgamma(10,shape=5)
X <- cbind(1,1:10)
fit <- glmgam.fit(X,y,trace=TRUE)

Run the code above in your browser using DataCamp Workspace