R: Get the earth basis matrix

model.matrix.earth {earth} | R Documentation

## Get the earth basis matrix

### Description

Get the basis matrix of an `earth` model.

### Usage

    ## S3 method for class 'earth'
    model.matrix(object = stop("no 'object' argument"),
        x = NULL, subset = NULL, which.terms = NULL,
        trace = 0,
        ...,
        Env = parent.frame(),
        Callers.name = "model.matrix.earth")

### Arguments

`object` | An `earth` model. This is the only required argument.
`x` | Default is NULL, meaning use the original data used to build the `earth` model (after taking the original `subset`, if any). Else `x` 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`. (There is some leniency here. For example, column names aren't necessary if `x` has the same number of predictors originally used to build the `earth` model.)
`subset` | Which rows to use in `x`. Default is NULL, meaning use all of `x`.
`which.terms` | Which terms to use. Default is NULL, meaning all terms in the earth model (i.e. the terms in `object$selected.terms`).
`trace` | Default 0. Set to non-zero to see which data `model.matrix.earth` is using.
`...` | Unused, but provided for generic/method consistency.
`Env` | For internal use.
`Callers.name` | For internal use (used by earth in trace messages).

### Value

A basis matrix `bx` of the same form returned by `earth`. The format of `bx` is described in `earth.object`.

If `x`, `subset`, and `which.terms` are all NULL (the default), this function returns the model's `bx`. In this case, it is perhaps easier to simply use `object$bx`.

The matrix `bx` can be used as the input matrix to `lm` or `glm`, as shown below in the example. In fact, that is what earth does internally after the pruning pass — it calls `lm.fit`, and additionally `glm` if earth's `glm` argument is used.

### See Also

`earth`

### Examples

    data(trees)
    earth.mod <- earth(Volume ~ ., data = trees)
    summary(earth.mod, decomp = "none") # "none" to print terms in same order as lm.mod below

    bx <- model.matrix(earth.mod)         # equivalent to bx <- earth.mod$bx
    lm.mod <- lm(trees$Volume ~ bx[,-1])  # -1 to drop intercept
    summary(lm.mod)                       # yields same coeffs as above summary
                                          # displayed t values are not meaningful

[Package earth version 5.1.2 Index]