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.