| model.matrix.earth {earth} | R Documentation |
Get the basis matrix of an earth object.
## S3 method for class 'earth'
model.matrix(object = stop("no 'object' arg"),
x = NULL, subset = NULL, which.terms = NULL,
...,
env = parent.frame(),
trace = 0,
Callers.name = "model.matrix.earth")
object |
An |
x |
An input matrix with the same number of columns as the |
subset |
Which rows to use in |
which.terms |
Which terms to use.
Default is NULL, meaning use |
... |
Unused, but provided for generic/method consistency. |
env |
For internal use. |
trace |
Default 0. Set to non-zero to see which data |
Callers.name |
For internal use (used by earth in trace messages). |
A basis matrix bx of the same form returned by earth.
If x, subset, and which.terms are all NULL, this
function returns the object's bx. In this case, it is perhaps easier
to simply use object$bx.
The format of bx is described in earth.
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.
data(trees)
a <- earth(Volume ~ ., data = trees)
summary(a, decomp = "none") # "none" to print terms in same seq as a.lm below
# yields:
# Call: earth(formula=Volume~., data=trees)
#
# coefficients
# (Intercept) 27.246
# h(Girth-14) 6.177
# h(14-Girth) -3.266
# h(Height-72) 0.491
#
# Selected 4 of 6 terms, and 2 of 2 predictors
# Importance: Girth, Height
# Number of terms at each degree of interaction: 1 3 (additive model)
# GCV 10.6 RSS 197 GRSq 0.962 RSq 0.976
bx <- model.matrix(a) # equivalent to bx <- a$bx
a.lm <- lm(trees$Volume ~ bx[,-1]) # -1 to drop intercept
summary(a.lm) # yields same coeffs as above summary
# displayed t values are not meaningful
# yields:
# Call:
# lm(formula = trees$Volume ~ bx[, -1])
#
# Residuals:
# Min 1Q Median 3Q Max
# -4.882 -1.770 0.281 1.646 4.983
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 27.246 1.123 24.26 < 2e-16
# bx[, -1]h(Girth-14) 6.177 0.354 17.44 3.2e-16
# bx[, -1]h(14-Girth) -3.266 0.335 -9.76 2.4e-10
# bx[, -1]h(Height-72) 0.491 0.123 3.99 0.00045
#
# Residual standard error: 2.7 on 27 degrees of freedom
# Multiple R-squared: 0.976, Adjusted R-squared: 0.973
# F-statistic: 361 on 3 and 27 DF, p-value: <2e-16