predictvglm {VGAM} | R Documentation

## Predict Method for a VGLM fit

### Description

Predicted values based on a vector generalized linear model (VGLM) object.

### Usage

    predictvglm(object, newdata = NULL,
                type = c("link", "response", "terms"),
                se.fit = FALSE, deriv = 0, dispersion = NULL,
                untransform = FALSE,
                type.fitted = NULL, percentiles = NULL, ...)

### Arguments

`object` | Object of class inheriting from `"vlm"`, e.g., `vglm`.
`newdata` | An optional data frame in which to look for variables with which to predict. If omitted, the fitted linear predictors are used.

`type`

The value of this argument can be abbreviated. The type of prediction required. The default is the first one, meaning on the scale of the linear predictors. This should be a n x M matrix.

The alternative `"response"` is on the scale of the response variable, and depending on the family function, this may or may not be the mean. Often this is the fitted value, e.g., `fitted(vglmObject)` (see `fittedvlm`). Note that the response is output from the `@linkinv` slot, where the `eta` argument is the n x M matrix of linear predictors.

The `"terms"` option returns a matrix giving the fitted values of each term in the model formula on the linear predictor scale. The terms have been centered.

`se.fit` | logical: return standard errors?
`deriv` | Non-negative integer. Currently this must be zero. Later, this may be implemented for general values.
`dispersion` | Dispersion parameter. This may be inputted at this stage, but the default is to use the dispersion parameter of the fitted model.

`type.fitted` | Some VGAM family functions have an argument by the same name. If so, then one can obtain fitted values by setting `type = "response"` and choosing a value of `type.fitted` from what's available. If `type.fitted = "quantiles"` is available then the `percentiles` argument can be used to specify what quantile values are requested.
`percentiles` | Used only if `type.fitted = "quantiles"` is available and is selected.
`untransform` | Logical. Reverses any parameter link function. This argument only works if `type = "link", se.fit = FALSE, deriv = 0`. Setting `untransform = TRUE` does not work for all VGAM family functions; only ones where there is a one-to-one correspondence between a simple link function and a simple parameter might work.
`...` | Arguments passed into `predictvlm`.

### Details

Obtains predictions and optionally estimates standard errors of those predictions from a fitted `vglm` object.

This code implements smart prediction (see `smartpred`).

### Value

If `se.fit = FALSE`, a vector or matrix of predictions. If `se.fit = TRUE`, a list with components

`fitted.values` | Predictions
`se.fit` | Estimated standard errors
`df` | Degrees of freedom
`sigma` | The square root of the dispersion parameter

### Warning

This function may change in the future.

### Note

Setting `se.fit = TRUE` and `type = "response"` will generate an error.

The arguments `type.fitted` and `percentiles` are provided in this function to give more convenience than modifying the `extra` slot directly.

### Author(s)

Thomas W. Yee

### References

Yee, T. W. and Hastie, T. J. (2003) Reduced-rank vector generalized linear models. Statistical Modelling, 3, 15–41.

### See Also

`predict`, `vglm`, `predictvlm`, `smartpred`, `calibrate`.

### Examples

    # Illustrates smart prediction
    pneumo <- transform(pneumo, let = log(exposure.time))
    fit <- vglm(cbind(normal, mild, severe) ~ poly(c(scale(let)), 2),
                propodds, data = pneumo, trace = TRUE, x.arg = FALSE)
    class(fit)

    (q0 <- head(predict(fit)))
    (q1 <- predict(fit, newdata = head(pneumo)))
    (q2 <- predict(fit, newdata = head(pneumo)))
    all.equal(q0, q1)  # Should be TRUE
    all.equal(q1, q2)  # Should be TRUE

    head(predict(fit))
    head(predict(fit, untransform = TRUE))

    p0 <- head(predict(fit, type = "response"))
    p1 <- head(predict(fit, type = "response", newdata = pneumo))
    p2 <- head(predict(fit, type = "response", newdata = pneumo))
    p3 <- head(fitted(fit))
    all.equal(p0, p1)  # Should be TRUE
    all.equal(p1, p2)  # Should be TRUE
    all.equal(p2, p3)  # Should be TRUE

    predict(fit, type = "terms", se = TRUE)

[Package VGAM version 1.1-1 Index]