Tidy, Type-Safe 'prediction()' Methods
This is a patch to address failing tests on CRAN.
build_datalist()
. The function now returns an an at_specification
attribute, which is a data frame representation of the at
argument.at
argument in build_datalist()
now accepts a data frame of combinations for limiting the set of levels.build_datalist()
gains an as.data.frame
argument, which - if TRUE
- returns a stacked data frame rather than a list. This argument is now used internally in most prediction()
functions in an effort to improve performance. (#18)prediction()
methods gain a (experimental) calculate_se
argument, which regulates whether to calculate standard errors for predictions. Setting to FALSE
can improve performance if they are not needed.summary.prediction()
method to interact with the average predicted values that are printed when at != NULL
.prediction.knnreg()
method for "knnreg" objects from caret. (#1)prediction.gausspr()
method for "gausspr" objects from kernlab. (#1)prediction.ksvm()
method for "ksvm" objects from kernlab. (#1)prediction.kqr()
method for "kqr" objects from kernlab. (#1)prediction.earth()
method for "earth" objects from earth. (#1)prediction.rpart()
method for "rpart" objects from rpart. (#1)prediction.glmML()
method for "glimML" objects from aod. (#1)prediction.glmQL()
method for "glimQL" objects from aod. (#1)prediction.truncreg()
method for "truncreg" objects from truncreg. (#1)prediction.bruto()
method for "bruto" objects from mda. (#1)prediction.fda()
method for "fda" objects from mda. (#1)prediction.mars()
method for "mars" objects from mda. (#1)prediction.mda()
method for "mda" objects from mda. (#1)prediction.polyreg()
method for "polyreg" objects from mda. (#1)prediction.speedglm()
and prediction.speedlm()
methods for "speedglm" and "speedlm" objects from speedglm. (#1)prediction.bigLm()
method for "bigLm" objects from bigFastlm. (#1)prediction.biglm()
and prediction.bigglm()
methods for "biglm" and "bigglm" objects from biglm, including those based by "ffdf"
from ff. (#1)prediction.train()
method for "train" objects from caret. (#1)prediction.gam()
is now prediction.Gam()
for "Gam" objects from gam. (#1)This release primarily expands the functionality of prediction()
and adds support for additional new model classes. Specifically:
prediction()
methods gain an at
argument (like in margins::margins()
) so that predicted values can be calculated for counterfactual datasets with specified values of covariates. (#13)prediction()
methods for models of multilevel outcomes (e.g., ordered probit, etc.) gain a category
argument to be used to dictate which level is expressed as the "fitted"
column. Predicted probabilities for all levels are returned as named columns; this simply toggles which column is additionally included as the "fitted"
column. (#14)New model classes supported:
prediction.zeroinfl()
method for "zeroinfl" objects from pscl. (#1)prediction.hurdle()
method for "hurdle" objects from pscl. (#1)prediction.lme()
method for "lme" and "nlme" objects from nlme. (#1)prediction.mnp()
method for "mnp" objects from MNP. (#1)prediction.mnlogit()
method for "mnlogit" objects from mnlogit. (#1)prediction.gee()
method for "gee" objects from gee. (#1)prediction.lqs()
method for "lqs" objects from MASS. (#1)prediction.mca()
method for "mca" objects from MASS. (#1)prediction.plm()
method for "plm" objects from plm. (#1)prediction.princomp()
method for "princomp" objects from stats. (#1)prediction.ppr()
method for "ppr" objects from stats. (#1)prediction.naiveBayes()
method for "naiveBayes" objects from e1071. (#1)prediction.rlm()
method for "rlm" objects from MASS. (#1)prediction.qda()
method for "qda" objects from MASS. (#1)prediction.lda()
method for "lda" objects from MASS. (#1)prediction.glm()
method. (#1)prediction.merMod()
.find_data()
now respects the subset
argument in an original model call. (#15)find_data()
now respects the na.action
argument in an original model call. (#15)find_data()
now gracefully fails when a model is specified without a formula. (#16)prediction()
methods no longer add a "fit" or "se.fit" class to any columns. Fitted values are identifiable by the column name only.mean_or_mode()
and median_or_mode()
S3 generics and added .data.frame()
methods for both.mean_or_mode()
and median_or_mode()
where incorrect factor levels were being returned.CONTRIBUTING.md
to reflect expected test-driven development.This release includes support for a number of additional model classes, bringing the complete list to:
stats::lm()
stats::glm()
, MASS::glm.nb()
, glmx::glmx()
, glmx::hetglm()
stats::ar()
stats::arima()
stats::arima0()
betareg::betareg()
ordinal::clm()
survival::coxph()
crch::crch()
gam::gam()
nlme::gls()
crch::hxlr()
AER::ivreg()
stats::loess()
stats::nls()
nnet::nnet()
, nnet::multinom()
MASS::polr()
quantreg::rq()
sampleSelection::selection()
survival::survreg()
e1071::svm()
survey::svyglm()
The release also attempts to better standardize the response object returned by prediction()
, so that it always includes the original data (being passed at data
or retrieved by find_data()
). This should make it easier to pass the output of prediction()
directly into further data manipulation or plotting functions. find_data()
itself is now also generic, making it easier to add model-specific versions.
Various utility functions have also been added:
seq_range()
, generates a sequence of n
values within a specified rangebuild_datalist()
constructs a list of data frames with specified value modifications (an elaboration of expand.grid()
mean_or_mode()
and median_or_mode()
provide simply ways of generating a summary statistic from both factor and numeric variables. Uses cases are of the form: lapply(mtcars, mean_or_mode)
, etc.The test suite has also been expanded.