Fit a generalized linear model with secure convergence. Provided for gamma glm with identity links or negative binomial glm with log-links.
glmgam.fit(X, y, coef.start=NULL, tol=1e-6, maxit=50, trace=FALSE)
glmnb.fit(X, y, dispersion, weights=NULL, offset=0, coef.start=NULL, start.method="mean",
tol=1e-6, maxit=50, trace=FALSE)
design matrix, assumed to be of full column rank. Missing values not allowed.
numeric vector of responses. Negative or missing values not allowed.
numeric vector of over-dispersion parameters for negative binomial. If of length 1, then same over-dispersion is assumed for all observations.
numeric vector of positive weights, defaults to all one.
offset vector for linear model
numeric vector of starting values for the regression coefficients
method used to find starting values, possible values are "mean"
and "log(y)"
small positive numeric value giving convergence tolerance
maximum number of iterations allowed
logical value. If TRUE
then output diagnostic information at each iteration.
List with the following components:
numeric vector of regression coefficients
numeric vector of fitted values
residual deviance
number of iterations used to convergence. If convergence was not achieved then iter
is set to maxit+1
.
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.
# NOT RUN {
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 DataLab