# model.matrix.earth

##### Get the earth basis matrix

Get the basis matrix of an `earth`

model.

- Keywords
- models

##### Usage

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

##### Examples

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

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