Skip to contents

table_regression_models() returns the registry of model classes supported by table_regression(), one row per engine, with each class's family, average-marginal-effects estimand, exponentiate semantics, and labelled table blocks. The same registry drives this page's table, so the published list cannot drift from the code.

This page is also the reference for per-family behaviour (the sections below). It is reachable as ?table_regression_models, ?table_regression_mixed, ?table_regression_ordinal, ?table_regression_counts, ?table_regression_categorical, ?table_regression_survival, ?table_regression_robust, or ?table_regression_bayesian.

If a class is not listed: fit the model and call table_regression(fit) anyway – unsupported classes error with a clear message naming the supported set. Feature requests are welcome on the issue tracker.

Usage

table_regression_models()

Value

A data frame with one row per supported engine and columns family, class, engine, ame, exponentiate, blocks.

Supported classes

FamilyClassEngineAMEExponentiateBlocks
Linear and generalized linearlmstats::lm()yes--
Linear and generalized linearglmstats::glm()yesOR / IRR / RR (link)-
Linear and generalized linearnegbinMASS::glm.nb()yesIRR-
Linear and generalized linearrlmMASS::rlm()yes--
Linear and generalized linearnlsstats::nls()no--
Robust, IV, quantile, panellm_robustestimatr::lm_robust()yes--
Robust, IV, quantile, paneliv_robustestimatr::iv_robust()yes--
Robust, IV, quantile, panelivregAER::ivreg()yes--
Robust, IV, quantile, paneltobitAER::tobit()yes--
Robust, IV, quantile, panelrqquantreg::rq()yes--
Robust, IV, quantile, panelfixestfixest::feols(), fixest::feglm(), fixest::fepois(), fixest::fenegbin()yesfeglm: OR / IRR-
Mixed effectslmerModlme4::lmer()yes-Random effects
Mixed effectsglmerModlme4::glmer()yesOR / IRR (link)Random effects
Mixed effectsglmmTMBglmmTMB::glmmTMB()yeslink-dependent (IRR for count families)Random effects; Zero-inflation; Dispersion
Mixed effectslmenlme::lme()yes-Random effects
Mixed effectsglsnlme::gls()yes--
OrdinalpolrMASS::polr()per categoryOR (logit)Thresholds
Ordinalclmordinal::clm()per categoryOR (logit)Thresholds; Non-proportional effects
Categoricalmultinomnnet::multinom()per outcomeORper-outcome blocks
Categoricalmlogitmlogit::mlogit()noORper-alternative rows
Counts, two-partzeroinflpscl::zeroinfl()yes (combined response)IRR (count) + OR (logit zero part)Zero-inflation
Counts, two-parthurdlepscl::hurdle()yes (combined response)IRR (count) + OR (logit zero part)Zero hurdle
Survivalcoxphsurvival::coxph()RMST / risk diffHR-
Survivalsurvregsurvival::survreg()yesTR (log-scale distributions)-
Survivalcphrms::cph()noHR-
Survivalflexsurvregflexsurv::flexsurvreg()noTR / HR (dist)distribution parameters
Survey-weightedsvyglmsurvey::svyglm()yes (design-based)OR / IRR-
Additive, proportions, selectiongammgcv::gam(), mgcv::bam()yesOR / IRR (link)-
Additive, proportions, selectionbetaregbetareg::betareg()yesOR (mean link)-
Additive, proportions, selectionselectionsampleSelection::selection()no-selection component
rmsolsrms::ols()yes--
rmslrmrms::lrm()yesOR-
rmsGlmrms::Glm()yeslink-dependent-
Bayesianstanregrstanarm::stan_glm(), rstanarm::stan_glmer()nolink-dependentRandom effects (if multilevel)
Bayesianbrmsfitbrms::brm()nolink-dependentRandom effects (if multilevel)

Shared semantics (all classes)

  • A robust vcov request is honoured through the class's field-standard backend, or refused with a clear error naming the supported set; the footer always names the estimator actually applied.

  • exponentiate = TRUE is link-gated: it produces a labelled ratio (OR / IRR / HR / RR / MR / TR) only where the link warrants one. Identity-link fits warn and are left untouched; non-ratio links (probit, cauchit, inverse, ...) are refused with a clear error.

  • Class-specific structure renders as labelled subordinate blocks of rows in the same table, each explained by a footer line.

  • Fit statistics default to the family's field standard (show_fit_stats overrides; class-inappropriate tokens are rejected with a pointer to the right ones).

  • Everything is available programmatically: broom::tidy(), glance(), as_structured(), as.data.frame().

Mixed effects

Fixed effects: Satterthwaite t (lmer + lmerTest), Wald z (glmer, glmmTMB), containment-df t (lme). Random effects render as a Random effects block of rows (SD / correlation / residual with SE and CI; re_scale, re_columns), deliberately with no per-row p-value (boundary-invalid Wald; Self & Liang 1987) – the footer carries the chi-bar-squared LR test of the whole random part, and re_test = "lrt" / "rlrt" adds an opt-in boundary-correct per-term test. N (groups) and ICC are fit-stat rows; Nakagawa marginal / conditional R-squared are the default R-squared family. CR* robust via clubSandwich (glmmTMB: conditional part only, disclosed).

Ordinal models

Cut-points render as a Thresholds block (log-odds scale, never exponentiated; show_thresholds). Partial-proportional-odds clm terms render as a Non-proportional effects block, one coefficient per cut-point. exponentiate yields proportional odds ratios under logit; ci_method = "profile" profiles the predictor coefficients. AME is per-category (the marginal effect on each P(Y = k)). Defaults include McFadden and Nagelkerke pseudo-R-squared. See vignette("table-regression-ordinal").

Counts and two-part models

Two-part models show their full model: the zero component renders as a Zero-inflation block (zeroinfl, glmmTMB ziformula: probability of a structural zero) or a Zero hurdle block (hurdle: probability of a nonzero count – the opposite direction, hence the distinct label), and a Dispersion block when dispformula has covariates. Component coefficients join the p_adjust family and take stars; a zero component is exponentiated only under a logit link (odds ratio). AME is the combined-response effect on E(Y). CR* for pscl fits covers both components via sandwich::vcovCL(). Opt out with show_components = FALSE.

Categorical outcomes

multinom renders per non-reference outcome; exponentiate yields odds ratios of each outcome against the reference outcome – the baseline-category logits are log-odds (Agresti; SAS prints "Odds Ratio Estimates" under its generalized-logit link; Stata's mlogit, rrr labels the same quantity a relative-risk ratio). AME is per-outcome. nested = TRUE compares nested multinom fits by likelihood-ratio test (the anova.multinom() convention). mlogit renders per-alternative rows; AME is refused (no slopes() method exists for its data format). CR* is available with one cluster value per choice situation, and n counts choice situations; HC* is refused (sandwich::vcovHC() mis-scales the meat for mlogit's per-chooser score structure).

Survival models

Cox models exponentiate to hazard ratios; survreg log-scale distributions to time ratios (identity-scale distributions are left untouched). AME is refused for Cox fits (no marginal-probability effect on the hazard scale); their absolute-effect columns are the "rmst" and "risk_diff" families instead – covariate-adjusted RMST and cumulative-incidence differences by g-computation, with the mandatory tau / at_time horizons (right-censored single-record coxph fits without strata() or tt()). CR* uses the Lin-Wei grouped-dfbeta sandwich (coxph) or rms::robcov() (cph, needs x = TRUE, y = TRUE). nested = TRUE compares nested Cox fits by likelihood-ratio test.

Robust, IV, quantile and panel models

estimatr fits keep their own robust SEs (never overwritten); quantreg::rq() honours its se = method, including rank-inversion CIs; fixest fits report their fixed-effects structure in the footer.

Bayesian models

Posterior median, posterior SD, and equal-tailed credible intervals; deliberately no p-value column and no stars.

Examples

table_regression_models()
#>                              family       class
#> 1     Linear and generalized linear          lm
#> 2     Linear and generalized linear         glm
#> 3     Linear and generalized linear      negbin
#> 4     Linear and generalized linear         rlm
#> 5     Linear and generalized linear         nls
#> 6       Robust, IV, quantile, panel   lm_robust
#> 7       Robust, IV, quantile, panel   iv_robust
#> 8       Robust, IV, quantile, panel       ivreg
#> 9       Robust, IV, quantile, panel       tobit
#> 10      Robust, IV, quantile, panel          rq
#> 11      Robust, IV, quantile, panel      fixest
#> 12                    Mixed effects     lmerMod
#> 13                    Mixed effects    glmerMod
#> 14                    Mixed effects     glmmTMB
#> 15                    Mixed effects         lme
#> 16                    Mixed effects         gls
#> 17                          Ordinal        polr
#> 18                          Ordinal         clm
#> 19                      Categorical    multinom
#> 20                      Categorical      mlogit
#> 21                 Counts, two-part    zeroinfl
#> 22                 Counts, two-part      hurdle
#> 23                         Survival       coxph
#> 24                         Survival     survreg
#> 25                         Survival         cph
#> 26                         Survival flexsurvreg
#> 27                  Survey-weighted      svyglm
#> 28 Additive, proportions, selection         gam
#> 29 Additive, proportions, selection     betareg
#> 30 Additive, proportions, selection   selection
#> 31                              rms         ols
#> 32                              rms         lrm
#> 33                              rms         Glm
#> 34                         Bayesian     stanreg
#> 35                         Bayesian     brmsfit
#>                                                                    engine
#> 1                                                             stats::lm()
#> 2                                                            stats::glm()
#> 3                                                          MASS::glm.nb()
#> 4                                                             MASS::rlm()
#> 5                                                            stats::nls()
#> 6                                                   estimatr::lm_robust()
#> 7                                                   estimatr::iv_robust()
#> 8                                                            AER::ivreg()
#> 9                                                            AER::tobit()
#> 10                                                         quantreg::rq()
#> 11 fixest::feols(), fixest::feglm(), fixest::fepois(), fixest::fenegbin()
#> 12                                                           lme4::lmer()
#> 13                                                          lme4::glmer()
#> 14                                                     glmmTMB::glmmTMB()
#> 15                                                            nlme::lme()
#> 16                                                            nlme::gls()
#> 17                                                           MASS::polr()
#> 18                                                         ordinal::clm()
#> 19                                                       nnet::multinom()
#> 20                                                       mlogit::mlogit()
#> 21                                                       pscl::zeroinfl()
#> 22                                                         pscl::hurdle()
#> 23                                                      survival::coxph()
#> 24                                                    survival::survreg()
#> 25                                                             rms::cph()
#> 26                                                flexsurv::flexsurvreg()
#> 27                                                       survey::svyglm()
#> 28                                               mgcv::gam(), mgcv::bam()
#> 29                                                     betareg::betareg()
#> 30                                           sampleSelection::selection()
#> 31                                                             rms::ols()
#> 32                                                             rms::lrm()
#> 33                                                             rms::Glm()
#> 34                           rstanarm::stan_glm(), rstanarm::stan_glmer()
#> 35                                                            brms::brm()
#>                        ame                            exponentiate
#> 1                      yes                                       -
#> 2                      yes                    OR / IRR / RR (link)
#> 3                      yes                                     IRR
#> 4                      yes                                       -
#> 5                       no                                       -
#> 6                      yes                                       -
#> 7                      yes                                       -
#> 8                      yes                                       -
#> 9                      yes                                       -
#> 10                     yes                                       -
#> 11                     yes                       `feglm`: OR / IRR
#> 12                     yes                                       -
#> 13                     yes                         OR / IRR (link)
#> 14                     yes link-dependent (IRR for count families)
#> 15                     yes                                       -
#> 16                     yes                                       -
#> 17            per category                              OR (logit)
#> 18            per category                              OR (logit)
#> 19             per outcome                                      OR
#> 20                      no                                      OR
#> 21 yes (combined response)      IRR (count) + OR (logit zero part)
#> 22 yes (combined response)      IRR (count) + OR (logit zero part)
#> 23        RMST / risk diff                                      HR
#> 24                     yes            TR (log-scale distributions)
#> 25                      no                                      HR
#> 26                      no                          TR / HR (dist)
#> 27      yes (design-based)                                OR / IRR
#> 28                     yes                         OR / IRR (link)
#> 29                     yes                          OR (mean link)
#> 30                      no                                       -
#> 31                     yes                                       -
#> 32                     yes                                      OR
#> 33                     yes                          link-dependent
#> 34                      no                          link-dependent
#> 35                      no                          link-dependent
#>                                        blocks
#> 1                                           -
#> 2                                           -
#> 3                                           -
#> 4                                           -
#> 5                                           -
#> 6                                           -
#> 7                                           -
#> 8                                           -
#> 9                                           -
#> 10                                          -
#> 11                                          -
#> 12                             Random effects
#> 13                             Random effects
#> 14 Random effects; Zero-inflation; Dispersion
#> 15                             Random effects
#> 16                                          -
#> 17                                 Thresholds
#> 18       Thresholds; Non-proportional effects
#> 19                         per-outcome blocks
#> 20                       per-alternative rows
#> 21                             Zero-inflation
#> 22                                Zero hurdle
#> 23                                          -
#> 24                                          -
#> 25                                          -
#> 26                    distribution parameters
#> 27                                          -
#> 28                                          -
#> 29                                          -
#> 30                        selection component
#> 31                                          -
#> 32                                          -
#> 33                                          -
#> 34             Random effects (if multilevel)
#> 35             Random effects (if multilevel)

# All engines of one family:
subset(table_regression_models(), family == "Mixed effects")
#>           family    class             engine ame
#> 12 Mixed effects  lmerMod       lme4::lmer() yes
#> 13 Mixed effects glmerMod      lme4::glmer() yes
#> 14 Mixed effects  glmmTMB glmmTMB::glmmTMB() yes
#> 15 Mixed effects      lme        nlme::lme() yes
#> 16 Mixed effects      gls        nlme::gls() yes
#>                               exponentiate
#> 12                                       -
#> 13                         OR / IRR (link)
#> 14 link-dependent (IRR for count families)
#> 15                                       -
#> 16                                       -
#>                                        blocks
#> 12                             Random effects
#> 13                             Random effects
#> 14 Random effects; Zero-inflation; Dispersion
#> 15                             Random effects
#> 16                                          -