Predict with an earth model

Predict with an earth model.

# 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, …)

An earth object. This is the only required argument.


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 of prediction. One of "link" (default), "response", "earth", "class", or "terms". See the Note below.


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.


Confidence level for the interval argument. Default is 0.95, meaning construct 95% confidence bands (estimate the 2.5% and 97.5% levels).


Threshold, a value between 0 and 1 when predicting a probability. Only applies when type="class". Default is 0.5. See the Note below.


Default FALSE. Set to TRUE to see which data, subset, etc. is using.

Unused, but provided for generic/method consistency.


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.


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="link" to get log-odds and type="response" to get probabilities.

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.

(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

earth.mod <- earth(Volume ~ ., data = trees)
predict(earth.mod)           # same as earth.mod$fitted.values
predict(earth.mod, c(10,80)) # yields 16.8
# }
Documentation reproduced from package earth, version 4.5.1, License: GPL-3

Community examples

Looks like there are no examples yet.