mars.to.earth {earth} | R Documentation |
Convert a mars
object to an earth
object
mars.to.earth(object)
object |
A "mars" object, created using mars in the mda package.
|
The value is the same format as that returned by earth
but
with skeletal versions of rss.per.subset
,
gcv.per.subset
, and prune.terms
.
You can fully initialise these components by calling update.earth
after mars.to.earth
, but if you do this selected.terms
may change.
However with pmethod="backward"
a change is unlikely —
selected.terms
would change only if GCVs are so close that numerical errors
have an effect.
Perhaps the most notable difference between
mars
and earth
objects is that mars
returns the
MARS basis matrix in a field called "x
"
whereas earth
returns "bx
" with only the selected terms.
Also, earth
returns "dirs
" rather than "factors
",
and in earth
this matrix can have entries of value 2 for linear predictors.
For details of other differences between mars
and earth
objects,
see the comments in the source code of mars.to.earth()
.
Weights
mda::mars
normalises wp
to (euclidean) length 1;
earth
normalises
wp
to length equal to the number of responses i.e. the number
of columns in y
. This change was made so an all 1s wp
(or in fact any all constant wp
) is equivalent to using no wp
.
Note that the w
argument is is actually ignored
internally by mda::mars
.
If the original call to mda::mars
used the w
or wp
arguments,
mars.to.earth
will run update.earth
to force consistency.
This could modify the model, so a warning is issued.
if (require(mda)) { a <- mars(trees[,-3], trees[,3]) a <- mars.to.earth(a) summary(a, digits = 2) # the standard earth functions can now be used # yields (note the reconstructed call): # Call: earth(x=trees[, -3], y=trees[, 3]) # # y # (Intercept) 19.76 # h(Girth-12) 5.40 # h(12-Girth) -2.56 # h(Height-76) 0.72 # # Selected 4 of 5 terms, and 2 of 2 predictors # Importance: Girth, Height # Number of terms at each degree of interaction: 1 3 (additive model) # GCV 13 RSS 251 GRSq 0.95 RSq 0.97 }