# predict.earth

##### Predict with an earth model

Predict with an `earth`

model.

- Keywords
- models

##### Usage

```
# S3 method for 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

##### Examples

```
# NOT RUN {
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
# }
```

*Documentation reproduced from package earth, version 5.1.2, License: GPL-3*