View source: R/model.matrix.earth.R
| model.matrix.earth | R Documentation |
Get the basis matrix of an earth model.
## 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")
object |
An |
x |
Default is NULL, meaning use the original data
used to build the Else |
subset |
Which rows to use in |
which.terms |
Which terms to use.
Default is NULL, meaning all terms in the earth model
(i.e. the terms in |
trace |
Default 0. Set to non-zero to see which data |
... |
Unused, but provided for generic/method consistency. |
Env |
For internal use. |
Callers.name |
For internal use (used by earth in trace messages). |
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.
earth
# Example 1
data(trees)
earth.mod <- earth(Volume ~ ., data = trees) # standard earth model
summary(earth.mod, decomp = "none") # "none" to print terms in same order as lm.mod below
bx <- model.matrix(earth.mod) # earth model's basis mat (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
# Example 2
earth.mod <- earth(Volume~., data=trees) # standard earth model
summary(earth.mod, decomp = "none") # "none" to print terms in same order as lm.mod below
bx <- model.matrix(earth.mod) # earth model's basis mat (equivalent to bx <- earth.mod$bx)
bx <- bx[, -1] # drop intercept column
bx <- as.data.frame(bx) # lm requires a data frame
bx$Volume <- trees$Volume # add Volume to data
lm.mod <- lm(Volume~., data=bx) # standard linear regression on earth's basis mat
summary(lm.mod) # yields same coeffs as above summary
# displayed t values are not meaningful
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.