R: Predict with an earth model

predict.earth {earth} | R Documentation

## Predict with an earth model

### Description

Predict with an `earth` model.

### Usage

    ## S3 method for class 'earth'
    predict(object = stop("no 'object' argument"), newdata = NULL,
            type = c("link", "response", "earth", "class", "terms"),
            interval = "none", level = .95,
            thresh = .5, trace = FALSE, ...)

### Arguments

`object` | An `earth` object. This is the only required argument.
`newdata` | Make predictions using `newdata`, which can be a data frame, a matrix, or a vector with length equal to a multiple of the number of columns of the original input matrix `x`. Default is NULL, meaning return values predicted from the training set. NAs are allowed in `newdata` (and the predicted value will be NA unless the NAs are in variables that are unused in the earth model).
`type` | Type of prediction. One of `"link"` (default), `"response"`, `"earth"`, `"class"`, or `"terms"`. See the Note below.
`interval` | Return prediction or confidence levels. Default is `"none"`. Use `interval="pint"` to get prediction intervals on new data. Requires that the earth model was built with `varmod.method`. This argument gets passed on as the `type` argument to `predict.varmod`. See its help page for details.
`level` | Confidence level for the `interval` argument. Default is `0.95`, meaning construct 95% confidence bands (estimate the 2.5% and 97.5% levels).
`thresh` | Threshold, a value between 0 and 1 when predicting a probability. Only applies when `type="class"`. Default is 0.5. See the Note below.
`trace` | Default `FALSE`. Set to `TRUE` to see which data, subset, etc. `predict.earth` is using.
`...` | Unused, but provided for generic/method consistency.

### Value

The predicted values (a matrix for multiple response models).

If `type="terms"`, a matrix with each column showing the contribution of a predictor.

If `interval="pint"` or `"cint"`, a matrix with three columns:
`fit`: the predicted values
`lwr`: the lower confidence or prediction limit
`upr`: the upper confidence or prediction limit

If `interval="se"`, the standard errors.

### Note

Predicting with standard earth models

Use the default `type="link"`, or possibly `type="class"`.

Actually, the `"link"`, `"response"`, and `"earth"` choices all return the same value unless the `glm` argument was used in the original call to `earth`.

Predicting with earth-GLM models

This section applies to earth models with a GLM component, i.e., when the `glm` argument was used in the original call to `earth`.

The `"link"` and `"response"` options: see `predict.glm` for a description of these. In brief: for logistic models use `type="response"` to get probabilities, and `type="link"` to get log-odds.

Use option `"earth"` to get the linear fit (this gives the prediction you would get if your original call to earth had no `glm` argument).

Predicting with "class"

Use option `"class"` to get the predicted class. With option `"class"`, this function first makes predictions with `type="response"` and then assigns the predicted values to classes as follows:

(i) When the response is a logical, predict `TRUE` if the predicted probability is greater than `thresh` (default `0.5`).

(ii) When the response is a numeric, predict `TRUE` if the predicted value is greater than `thresh`. Actually, this is identical to the above case, although `thresh` here may legitimately be a value outside the 0...1 range.

(iii) When the response is a two level factor, predict the second level if its probability is more than `thresh`. In other words, with the default `thresh=0.5` predict the most probable level.

(iv) When the response is a three or more level factor, predict the most probable level (and `thresh` is ignored).

Predicting with "terms"

The `"terms"` option returns a `"link"` response suitable for `termplot`. Only the additive terms and the first response (for multi-response models) are returned. Also, `"terms"` always returns the earth terms, and ignores the GLM component of the model, if any.

### See Also

`earth`, `predict`

### Examples

    data(trees)
    earth.mod <- earth(Volume ~ ., data = trees)
    predict(earth.mod) # same as earth.mod$fitted.values
    predict(earth.mod, data.frame(Girth=10, Height=80)) # yields 17.6
    predict(earth.mod, c(10,80))                        # equivalent

[Package earth version 5.1.2 Index]