VGAM (version 1.0-4)

gaussianff: Gaussian (Normal) Family Function

Description

Fits a generalized linear model to a response with Gaussian (normal) errors. The dispersion parameter may be known or unknown.

Usage

gaussianff(dispersion = 0, parallel = FALSE, zero = NULL)

Arguments

parallel

A logical or formula. If a formula, the response of the formula should be a logical and the terms of the formula indicates whether or not those terms are parallel.

dispersion

Dispersion parameter. If 0 then it is estimated and the moment estimate is put in object@misc$dispersion; it is assigned the value $$ \sum_{i=1}^n \; (y_i - \eta_i)^T W_i (y_i - \eta_i) / (nM-p) $$ where \(p\) is the total number of parameters estimated (for RR-VGLMs the value used is the number of columns in the large \(X\) model matrix; this may not be correct). If the argument is assigned a positive quantity then it is assumed to be known with that value.

zero

An integer-valued vector specifying which linear/additive predictors are modelled as intercepts only. The values must be from the set {1,2,…,\(M\)} where \(M\) is the number of columns of the matrix response.

Value

An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm, rrvglm and vgam.

Details

This function is usually used in conjunction with vglm, else vlm is recommended instead. The notation \(M\) is used to denote the number of linear/additive predictors. This function can handle any finite \(M\), and the default is to use ordinary least squares. A vector linear/additive model can be fitted by minimizing $$ \sum_{i=1}^n \; (y_i - \eta_i)^T W_i (y_i - \eta_i) $$ where \(y_i\) is a \(M\)-vector, \(\eta_i\) is the vector of linear/additive predictors. The \(W_i\) is any positive-definite matrix, and the default is the order-\(M\) identity matrix. The \(W_i\) can be inputted using the weights argument of vlm/vglm/vgam etc., and the format is the matrix-band format whereby it is a \(n \times A\) matrix with the diagonals are passed first, followed by next the upper band, all the way to the \((1,M)\) element. Here, \(A\) has maximum value of \(M(M+1)/2\) and a minimum value of \(M\). Usually the weights argument of vlm/vglm/vgam/rrvglm is just a vector, in which case each element is multiplied by a order-\(M\) identity matrix. If in doubt, type something like weights(object, type="working") after the model has been fitted.

References

McCullagh, P. and Nelder, J. A. (1989) Generalized Linear Models, 2nd ed. London: Chapman & Hall.

Yee, T. W. and Wild, C. J. (1996) Vector generalized additive models. Journal of the Royal Statistical Society, Series B, Methodological, 58, 481--493.

See Also

uninormal, huber2, lqnorm, binormal, SURff. vlm, vglm, vgam, rrvglm.

Examples

Run this code
# NOT RUN {
gdata <- data.frame(x2 = sort(runif(n <- 40)))
gdata <- transform(gdata, y1 = 1 + 2*x2 + rnorm(n, sd = 0.1),
                          y2 = 3 + 4*x2 + rnorm(n, sd = 0.1),
                          y3 = 7 + 4*x2 + rnorm(n, sd = 0.1))
fit <- vglm(cbind(y1,y2) ~ x2, gaussianff, data = gdata)
coef(fit, matrix = TRUE)

# For comparison:
coef( lmfit <-  lm(y1 ~ x2, data = gdata))
coef(glmfit <- glm(y2 ~ x2, data = gdata, gaussian))
vcov(fit)
vcov(lmfit)

t(weights(fit, type = "prior"))       # Unweighted observations
head(weights(fit, type = "working"))  # Identity matrices

# Reduced-rank VLM (rank-1)
fit2 <- rrvglm(cbind(y1, y2, y3) ~ x2, gaussianff, data = gdata)
Coef(fit2)
# }

Run the code above in your browser using DataLab