glm4  R Documentation 
glm4
, very similarly as standard R's glm()
is
used to fit generalized linear models, specified by giving a symbolic
description of the linear predictor and a description of the error
distribution.
It is more general, as it fits linear, generalized linear, nonlinear and generalized nonlinear models.
glm4(formula, family, data, weights, subset, na.action,
start = NULL, etastart, mustart, offset,
sparse = FALSE, drop.unused.levels = FALSE, doFit = TRUE,
control = list(...),
model = TRUE, x = FALSE, y = TRUE, contrasts = NULL, ...)
formula 
an object of class 
family 
a description of the error distribution and link
function to be used in the model. This can be a character string
naming a family function, a family function or the result of a call
to a family function. (See 
data 
an optional data frame, list or environment (or object
coercible by 
weights 
an optional vector of ‘prior weights’ to be used
in the fitting process. Should be 
subset 
an optional vector specifying a subset of observations to be used in the fitting process. 
na.action 
a function which indicates what should happen
when the data contain 
start, etastart, mustart 
starting values for the parameters in the linear predictor, the predictor itself and for the vector of means. 
offset 
this can be used to specify an a priori known
component to be included in the linear predictor during fitting.
This should be 
sparse 
logical indicating if the model matrix should be sparse or not. 
drop.unused.levels 
used only when 
doFit 
logical indicating if the model should be fitted (or just returned unfitted). 
control 
a list with options on fitting; currently passed unchanged to
(hidden) function 
model, x, y 
currently ignored; here for back compatibility with

contrasts 
passed to 
... 
potentially arguments passed on to fitter functions; not used currently. 
an object of class glpModel
.
glm()
the standard R function;
lm.fit.sparse()
a sparse least squares fitter.
The resulting class glpModel
documentation.
### All the following is very experimental  and probably will change: 
data(CO2, package="datasets")
## dense linear model
str(glm4(uptake ~ 0 + Type*Treatment, data=CO2, doFit = FALSE), 4)
## sparse linear model
str(glm4(uptake ~ 0 + Type*Treatment, data=CO2, doFit = FALSE,
sparse = TRUE), 4)
## From example(glm): 
## Dobson (1990) Page 93: Randomized Controlled Trial :
str(trial < data.frame(counts=c(18,17,15,20,10,20,25,13,12),
outcome=gl(3,1,9,labels=LETTERS[1:3]),
treatment=gl(3,3,labels=letters[1:3])))
glm.D93 < glm(counts ~ outcome + treatment, family=poisson, data=trial)
summary(glm.D93)
c.glm < unname(coef(glm.D93))
glmM < glm4(counts ~ outcome + treatment, family = poisson, data=trial)
glmM2 < update(glmM, quick = FALSE) # slightly more accurate
glmM3 < update(glmM, quick = FALSE, finalUpdate = TRUE)
# finalUpdate has no effect on 'coef'
stopifnot( identical(glmM2@pred@coef, glmM3@pred@coef),
all.equal(glmM @pred@coef, c.glm, tolerance=1e7),
all.equal(glmM2@pred@coef, c.glm, tolerance=1e12))
## Watch the iterations  and use no intercept > more sparse X
## 1) dense generalized linear model
glmM < glm4(counts ~ 0+outcome + treatment, poisson, trial,
verbose = TRUE)
## 2) sparse generalized linear model
glmS < glm4(counts ~ 0+outcome + treatment, poisson, trial,
verbose = TRUE, sparse = TRUE)
str(glmS, max.lev = 4)
stopifnot( all.equal(glmM@pred@coef, glmS@pred@coef),
all.equal(glmM@pred@Vtr, glmS@pred@Vtr) )
## A Gamma example, from McCullagh & Nelder (1989, pp. 3002)
clotting < data.frame(u = c(5,10,15,20,30,40,60,80,100),
lot1 = c(118,58,42,35,27,25,21,19,18),
lot2 = c(69,35,26,21,18,16,13,12,12))
str(gMN < glm4(lot1 ~ log(u), data=clotting, family=Gamma, verbose=TRUE))
glm. < glm(lot1 ~ log(u), data=clotting, family=Gamma)
stopifnot( all.equal(gMN@pred@coef, unname(coef(glm.)), tolerance=1e7) )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.