earth (version 5.3.0)

evimp: Estimate variable importances in an earth object


Estimate variable importances in an earth object


evimp(object, trim=TRUE, sqrt.=TRUE)



An earth object.


If TRUE (default), delete rows in the returned matrix for variables that don't appear in any subsets.


Default is TRUE, meaning take the sqrt of the GCV and RSS importances before normalizing to 0 to 100. Taking the square root gives a better indication of relative importances because the raw importances are calculated using a sum of squares. Use FALSE to not take the square root.


This function returns a matrix showing the relative importances of the variables in the model. There is a row for each variable. The row name is the variable name, but with -unused appended if the variable does not appear in the final model.

The columns of the matrix are (not all of these are printed by print.evimp):

  • col: Column index of the variable in the x argument to earth.

  • used: 1 if the variable is used in the final model, else 0. Equivalently, 0 if the row name has an -unused suffix.

  • nsubsets: Variable importance using the "number of subsets" criterion. Is the number of subsets that include the variable (see "Three Criteria" in the chapter on evimp in the earth vignette “Notes on the earth package”).

  • gcv: Variable importance using the GCV criterion (see "Three Criteria").

  • gcv.match: 1, except is 0 where the rank using the gcv criterion differs from that using the nsubsets criterion. In other words, there is a 0 for values that increase as you go down the gcv column.

  • rss: Variable importance using the RSS criterion (see "Three Criteria").

  • rss.match: Like gcv.match but for the rss.

The rows are sorted on the nsubsets criterion. This means that values in the nsubsets column decrease as you go down the column (more accurately, they are non-increasing). The values in the gcv and rss columns are also non-increasing, except where the gcv or rss rank differs from the nsubsets ranking.

See Also

earth, plot.evimp


earth.mod <- earth(O3 ~ ., data=ozone1, degree=2)
ev <- evimp(earth.mod, trim=FALSE)
# }