leeper / prediction

Tidy, Type-Safe 'prediction()' Methods

Home Page:https://cran.r-project.org/package=prediction

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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"), with predict() method (but no se.fit arg)
  • biglm::biglm() and biglm::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(), ...) (but lme4:::predict.merMod() has no se.fit argument)
  • nlme
    • nlme:::predict.lme() has no se.fit or type arguments
    • nlme:::predict.gls() has no se.fit argument.
  • stats::loess() (predict() method uses se rather than se.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 getting term(object[["model"]]))
  • MASS::polr() (has predict() method with type = 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() and speedglm::speedlm()
  • survival::survreg()
    • coxph class has different type values for predict(): c("lp", "risk", "expected")
  • 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 no predict() method)
  • ordinal::clmm() (no predict() method)
  • lfe::felm() (no predict() method)
  • dispmod: lm.disp(), glm.binomial.disp(), glm.poisson.disp() (no predict() method)
  • geepack: geeglm(), geese(), ordgee() (no predict() methods)
  • ghyp (ORPHANED)
  • gmm::gmm() (no predict() method)
  • gmnl::gmnl() (no predict() method)
  • GeneralizedHyperbolic::hyperblm() (no predict() method)
  • ivprobit::ivprobit() (no predict() method)
  • class::knn() (does not construct a model object)
  • sem::tsls() (no predict() method)
  • plm::plm() (non-exported predict method)
  • plm::pglm()
  • survey::svyolr() (no predict() method)

(Note: this is migrated from: leeper/margins#3)

commented

@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.