Add Support for Additional Model Classes
leeper opened this issue · comments
This is a list of requested model classes to potentially support in prediction. It is sorted by completion status of model support, and then by function name. In order to support a model class, the package needs to provide a predict()
method. If this is not provided, it is not (presently) supportable.
Supported
-
arm::bayesglm()
(inherits from "glm") -
aod::betabin()
,aod::negbin()
,aod::quasibin()
,aod::quasipois()
, -
betareg::betareg()
(class"betareg"
), withpredict()
method (but nose.fit
arg) -
biglm::biglm()
andbiglm::bigglm()
-
brglm::brglm()
(inherits from "glm") -
mda::bruto()
-
ordinal::clm()
- crch censored/truncated regression methods (#4)
-
earth::earth()
-
mda::fda()
-
gam::gam()
-
kernlab::gausspr()
-
gee::gee()
-
stats::glm()
-
glmnet::glmnet()
-
glmx::glmx()
(class"glmx"
) -
MASS::glm.nb()
(inherits from "glm") -
glmx::hetglm()
(class"hetglm"
) -
pscl::hurdle()
-
AER::ivreg()
-
caret::knnreg()
-
kernlab::kqr()
-
kernlab::ksvm()
-
MASS::lda()
-
stats::lm()
- lme4 (
lmer()
,glmer()
, ...) (butlme4:::predict.merMod()
has nose.fit
argument) - nlme
nlme:::predict.lme()
has nose.fit
ortype
argumentsnlme:::predict.gls()
has nose.fit
argument.
-
stats::loess()
(predict()
method usesse
rather thanse.fit
) -
MASS::lqs()
-
mda::mars()
-
MASS::mca()
-
mclogit::mclogit()
(class"mclogit"
), which is basically "glm" -
mda::mda()
-
mlogit::mlogit()
-
mnlogit::mnlogit()
-
MNP::mnp()
-
nnet::multinom()
or any nnet model generally -
e1071::naiveBayes()
- nls (requires setting
model = TRUE
in original call; and then gettingterm(object[["model"]])
) -
MASS::polr()
(haspredict()
method withtype = c("class", "probs")
)-
arm::bayespolr()
(covered by general"polr"
method)
-
-
mda::polyreg()
-
caret::predict()
-
MASS::qda()
-
quantreg::rq()
-
rpart::rpart()
-
sampleSelection::selection()
(class"select"
) -
speedglm::speedglm()
andspeedglm::speedlm()
-
survival::survreg()
- coxph class has different
type
values forpredict()
:c("lp", "risk", "expected")
- coxph class has different
-
survey::svyglm()
-
AER::tobit()
-
truncreg::truncreg()
-
pscl::zeroinfl()
Potentially supportable
-
bamlss::bamlss()
-
dynlm::dynlm()
-
gnm::gnm()
-
LARF::larf()
-
bbmle::mle2()
-
mpt::mpt()
- np (non-parametric regression)
- rms
- "stanreg" objects from rstanarm
-
VGAM::vglm()
-
mgcv::bam()
-
mgcv::gam()
-
gamlss::gamlss()
-
mgcv::gamm()
-
VGAM::vgam()
- spdep
-
sphet::spreg()
-
splm::spml()
-
splm::spgm()
Not currently supportable
- censReg (has a
margEff()
generic but nopredict()
method) -
ordinal::clmm()
(nopredict()
method) -
lfe::felm()
(nopredict()
method) - dispmod:
lm.disp()
,glm.binomial.disp()
,glm.poisson.disp()
(nopredict()
method) - geepack:
geeglm()
,geese()
,ordgee()
(nopredict()
methods) - ghyp (ORPHANED)
-
gmm::gmm()
(nopredict()
method) -
gmnl::gmnl()
(nopredict()
method) -
GeneralizedHyperbolic::hyperblm()
(nopredict()
method) -
ivprobit::ivprobit()
(nopredict()
method) -
class::knn()
(does not construct a model object) -
sem::tsls()
(nopredict()
method) -
plm::plm()
(non-exported predict method) -
plm::pglm()
-
survey::svyolr()
(nopredict()
method)
(Note: this is migrated from: leeper/margins#3)
@leeper I'd add the other survey package functions. While many of them are based on survey::svyglm() which are class glm, lm, and svyglm, the survey::svyolr() function is NOT from MASS::polr() and is of class svyolr.
For models produced by plm::plm()
, there is a predict
method available since plm
version 2.6-2.