Fits multivariable regression models for binary, count, or continuous outcomes and returns a publication-ready summary table using `gtsummary`. Depending on the specified `approach`, the function estimates adjusted Odds Ratios (OR), Risk Ratios (RR), Incidence Rate Ratios (IRR), or Beta coefficients.
Arguments
- data
A data frame containing the analysis variables.
- outcome
The name of the outcome variable. Must be a character string.
- exposures
A character vector of predictor variables to include.
- approach
Modeling approach to use. One of: - `"logit"` for logistic regression (OR), - `"log-binomial"` for log-binomial regression (RR), - `"poisson"` for Poisson regression (IRR), - `"robpoisson"` for robust Poisson regression (RR), - `"linear"` for linear regression (Beta coefficients), - `"negbin"` for negative binomial regression (IRR).
Value
An object of class `multi_reg`, extending `gtsummary::tbl_regression`. Additional components can be accessed using:
x$models
: List of fitted model objects.x$model_summaries
: List of summary outputs.x$reg_check
: Regression diagnostics (only for linear models).x$table
: Returns the main regression table.
Accessors
$models
List of fitted model objects.
$model_summaries
A tibble of tidy regression summaries for each model.
Examples
if (requireNamespace("mlbench", quietly = TRUE)) {
data(PimaIndiansDiabetes2, package = "mlbench")
pima <- dplyr::mutate(PimaIndiansDiabetes2,
diabetes = ifelse(diabetes == "pos", 1, 0))
model <- multi_reg(
data = pima,
outcome = "diabetes",
exposures = c("age", "mass"),
approach = "logit"
)
print(model)
}
#> <div id="aiqzbmhjzp" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
#> <style>#aiqzbmhjzp table {
#> font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
#> -webkit-font-smoothing: antialiased;
#> -moz-osx-font-smoothing: grayscale;
#> }
#>
#> #aiqzbmhjzp thead, #aiqzbmhjzp tbody, #aiqzbmhjzp tfoot, #aiqzbmhjzp tr, #aiqzbmhjzp td, #aiqzbmhjzp th {
#> border-style: none;
#> }
#>
#> #aiqzbmhjzp p {
#> margin: 0;
#> padding: 0;
#> }
#>
#> #aiqzbmhjzp .gt_table {
#> display: table;
#> border-collapse: collapse;
#> line-height: normal;
#> margin-left: auto;
#> margin-right: auto;
#> color: #333333;
#> font-size: 16px;
#> font-weight: normal;
#> font-style: normal;
#> background-color: #FFFFFF;
#> width: auto;
#> border-top-style: solid;
#> border-top-width: 2px;
#> border-top-color: #A8A8A8;
#> border-right-style: none;
#> border-right-width: 2px;
#> border-right-color: #D3D3D3;
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #A8A8A8;
#> border-left-style: none;
#> border-left-width: 2px;
#> border-left-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_caption {
#> padding-top: 4px;
#> padding-bottom: 4px;
#> }
#>
#> #aiqzbmhjzp .gt_title {
#> color: #333333;
#> font-size: 125%;
#> font-weight: initial;
#> padding-top: 4px;
#> padding-bottom: 4px;
#> padding-left: 5px;
#> padding-right: 5px;
#> border-bottom-color: #FFFFFF;
#> border-bottom-width: 0;
#> }
#>
#> #aiqzbmhjzp .gt_subtitle {
#> color: #333333;
#> font-size: 85%;
#> font-weight: initial;
#> padding-top: 3px;
#> padding-bottom: 5px;
#> padding-left: 5px;
#> padding-right: 5px;
#> border-top-color: #FFFFFF;
#> border-top-width: 0;
#> }
#>
#> #aiqzbmhjzp .gt_heading {
#> background-color: #FFFFFF;
#> text-align: center;
#> border-bottom-color: #FFFFFF;
#> border-left-style: none;
#> border-left-width: 1px;
#> border-left-color: #D3D3D3;
#> border-right-style: none;
#> border-right-width: 1px;
#> border-right-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_bottom_border {
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_col_headings {
#> border-top-style: solid;
#> border-top-width: 2px;
#> border-top-color: #D3D3D3;
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> border-left-style: none;
#> border-left-width: 1px;
#> border-left-color: #D3D3D3;
#> border-right-style: none;
#> border-right-width: 1px;
#> border-right-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_col_heading {
#> color: #333333;
#> background-color: #FFFFFF;
#> font-size: 100%;
#> font-weight: normal;
#> text-transform: inherit;
#> border-left-style: none;
#> border-left-width: 1px;
#> border-left-color: #D3D3D3;
#> border-right-style: none;
#> border-right-width: 1px;
#> border-right-color: #D3D3D3;
#> vertical-align: bottom;
#> padding-top: 5px;
#> padding-bottom: 6px;
#> padding-left: 5px;
#> padding-right: 5px;
#> overflow-x: hidden;
#> }
#>
#> #aiqzbmhjzp .gt_column_spanner_outer {
#> color: #333333;
#> background-color: #FFFFFF;
#> font-size: 100%;
#> font-weight: normal;
#> text-transform: inherit;
#> padding-top: 0;
#> padding-bottom: 0;
#> padding-left: 4px;
#> padding-right: 4px;
#> }
#>
#> #aiqzbmhjzp .gt_column_spanner_outer:first-child {
#> padding-left: 0;
#> }
#>
#> #aiqzbmhjzp .gt_column_spanner_outer:last-child {
#> padding-right: 0;
#> }
#>
#> #aiqzbmhjzp .gt_column_spanner {
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> vertical-align: bottom;
#> padding-top: 5px;
#> padding-bottom: 5px;
#> overflow-x: hidden;
#> display: inline-block;
#> width: 100%;
#> }
#>
#> #aiqzbmhjzp .gt_spanner_row {
#> border-bottom-style: hidden;
#> }
#>
#> #aiqzbmhjzp .gt_group_heading {
#> padding-top: 8px;
#> padding-bottom: 8px;
#> padding-left: 5px;
#> padding-right: 5px;
#> color: #333333;
#> background-color: #FFFFFF;
#> font-size: 100%;
#> font-weight: initial;
#> text-transform: inherit;
#> border-top-style: solid;
#> border-top-width: 2px;
#> border-top-color: #D3D3D3;
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> border-left-style: none;
#> border-left-width: 1px;
#> border-left-color: #D3D3D3;
#> border-right-style: none;
#> border-right-width: 1px;
#> border-right-color: #D3D3D3;
#> vertical-align: middle;
#> text-align: left;
#> }
#>
#> #aiqzbmhjzp .gt_empty_group_heading {
#> padding: 0.5px;
#> color: #333333;
#> background-color: #FFFFFF;
#> font-size: 100%;
#> font-weight: initial;
#> border-top-style: solid;
#> border-top-width: 2px;
#> border-top-color: #D3D3D3;
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> vertical-align: middle;
#> }
#>
#> #aiqzbmhjzp .gt_from_md > :first-child {
#> margin-top: 0;
#> }
#>
#> #aiqzbmhjzp .gt_from_md > :last-child {
#> margin-bottom: 0;
#> }
#>
#> #aiqzbmhjzp .gt_row {
#> padding-top: 8px;
#> padding-bottom: 8px;
#> padding-left: 5px;
#> padding-right: 5px;
#> margin: 10px;
#> border-top-style: solid;
#> border-top-width: 1px;
#> border-top-color: #D3D3D3;
#> border-left-style: none;
#> border-left-width: 1px;
#> border-left-color: #D3D3D3;
#> border-right-style: none;
#> border-right-width: 1px;
#> border-right-color: #D3D3D3;
#> vertical-align: middle;
#> overflow-x: hidden;
#> }
#>
#> #aiqzbmhjzp .gt_stub {
#> color: #333333;
#> background-color: #FFFFFF;
#> font-size: 100%;
#> font-weight: initial;
#> text-transform: inherit;
#> border-right-style: solid;
#> border-right-width: 2px;
#> border-right-color: #D3D3D3;
#> padding-left: 5px;
#> padding-right: 5px;
#> }
#>
#> #aiqzbmhjzp .gt_stub_row_group {
#> color: #333333;
#> background-color: #FFFFFF;
#> font-size: 100%;
#> font-weight: initial;
#> text-transform: inherit;
#> border-right-style: solid;
#> border-right-width: 2px;
#> border-right-color: #D3D3D3;
#> padding-left: 5px;
#> padding-right: 5px;
#> vertical-align: top;
#> }
#>
#> #aiqzbmhjzp .gt_row_group_first td {
#> border-top-width: 2px;
#> }
#>
#> #aiqzbmhjzp .gt_row_group_first th {
#> border-top-width: 2px;
#> }
#>
#> #aiqzbmhjzp .gt_summary_row {
#> color: #333333;
#> background-color: #FFFFFF;
#> text-transform: inherit;
#> padding-top: 8px;
#> padding-bottom: 8px;
#> padding-left: 5px;
#> padding-right: 5px;
#> }
#>
#> #aiqzbmhjzp .gt_first_summary_row {
#> border-top-style: solid;
#> border-top-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_first_summary_row.thick {
#> border-top-width: 2px;
#> }
#>
#> #aiqzbmhjzp .gt_last_summary_row {
#> padding-top: 8px;
#> padding-bottom: 8px;
#> padding-left: 5px;
#> padding-right: 5px;
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_grand_summary_row {
#> color: #333333;
#> background-color: #FFFFFF;
#> text-transform: inherit;
#> padding-top: 8px;
#> padding-bottom: 8px;
#> padding-left: 5px;
#> padding-right: 5px;
#> }
#>
#> #aiqzbmhjzp .gt_first_grand_summary_row {
#> padding-top: 8px;
#> padding-bottom: 8px;
#> padding-left: 5px;
#> padding-right: 5px;
#> border-top-style: double;
#> border-top-width: 6px;
#> border-top-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_last_grand_summary_row_top {
#> padding-top: 8px;
#> padding-bottom: 8px;
#> padding-left: 5px;
#> padding-right: 5px;
#> border-bottom-style: double;
#> border-bottom-width: 6px;
#> border-bottom-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_striped {
#> background-color: rgba(128, 128, 128, 0.05);
#> }
#>
#> #aiqzbmhjzp .gt_table_body {
#> border-top-style: solid;
#> border-top-width: 2px;
#> border-top-color: #D3D3D3;
#> border-bottom-style: solid;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_footnotes {
#> color: #333333;
#> background-color: #FFFFFF;
#> border-bottom-style: none;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> border-left-style: none;
#> border-left-width: 2px;
#> border-left-color: #D3D3D3;
#> border-right-style: none;
#> border-right-width: 2px;
#> border-right-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_footnote {
#> margin: 0px;
#> font-size: 90%;
#> padding-top: 4px;
#> padding-bottom: 4px;
#> padding-left: 5px;
#> padding-right: 5px;
#> }
#>
#> #aiqzbmhjzp .gt_sourcenotes {
#> color: #333333;
#> background-color: #FFFFFF;
#> border-bottom-style: none;
#> border-bottom-width: 2px;
#> border-bottom-color: #D3D3D3;
#> border-left-style: none;
#> border-left-width: 2px;
#> border-left-color: #D3D3D3;
#> border-right-style: none;
#> border-right-width: 2px;
#> border-right-color: #D3D3D3;
#> }
#>
#> #aiqzbmhjzp .gt_sourcenote {
#> font-size: 90%;
#> padding-top: 4px;
#> padding-bottom: 4px;
#> padding-left: 5px;
#> padding-right: 5px;
#> }
#>
#> #aiqzbmhjzp .gt_left {
#> text-align: left;
#> }
#>
#> #aiqzbmhjzp .gt_center {
#> text-align: center;
#> }
#>
#> #aiqzbmhjzp .gt_right {
#> text-align: right;
#> font-variant-numeric: tabular-nums;
#> }
#>
#> #aiqzbmhjzp .gt_font_normal {
#> font-weight: normal;
#> }
#>
#> #aiqzbmhjzp .gt_font_bold {
#> font-weight: bold;
#> }
#>
#> #aiqzbmhjzp .gt_font_italic {
#> font-style: italic;
#> }
#>
#> #aiqzbmhjzp .gt_super {
#> font-size: 65%;
#> }
#>
#> #aiqzbmhjzp .gt_footnote_marks {
#> font-size: 75%;
#> vertical-align: 0.4em;
#> position: initial;
#> }
#>
#> #aiqzbmhjzp .gt_asterisk {
#> font-size: 100%;
#> vertical-align: 0;
#> }
#>
#> #aiqzbmhjzp .gt_indent_1 {
#> text-indent: 5px;
#> }
#>
#> #aiqzbmhjzp .gt_indent_2 {
#> text-indent: 10px;
#> }
#>
#> #aiqzbmhjzp .gt_indent_3 {
#> text-indent: 15px;
#> }
#>
#> #aiqzbmhjzp .gt_indent_4 {
#> text-indent: 20px;
#> }
#>
#> #aiqzbmhjzp .gt_indent_5 {
#> text-indent: 25px;
#> }
#>
#> #aiqzbmhjzp .katex-display {
#> display: inline-flex !important;
#> margin-bottom: 0.75em !important;
#> }
#>
#> #aiqzbmhjzp div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
#> height: 0px !important;
#> }
#> </style>
#> <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
#> <thead>
#> <tr class="gt_col_headings">
#> <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="label"><span class='gt_from_md'><strong>Characteristic</strong></span></th>
#> <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" scope="col" id="estimate"><span class='gt_from_md'><strong>Adjusted OR</strong></span></th>
#> <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" scope="col" id="conf.low"><span class='gt_from_md'><strong>95% CI</strong></span></th>
#> <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" scope="col" id="p.value"><span class='gt_from_md'><strong>p-value</strong></span></th>
#> </tr>
#> </thead>
#> <tbody class="gt_table_body">
#> <tr><td headers="label" class="gt_row gt_left">age</td>
#> <td headers="estimate" class="gt_row gt_center">1.05</td>
#> <td headers="conf.low" class="gt_row gt_center">1.03, 1.06</td>
#> <td headers="p.value" class="gt_row gt_center"><0.001</td></tr>
#> <tr><td headers="label" class="gt_row gt_left">mass</td>
#> <td headers="estimate" class="gt_row gt_center">1.11</td>
#> <td headers="conf.low" class="gt_row gt_center">1.09, 1.14</td>
#> <td headers="p.value" class="gt_row gt_center"><0.001</td></tr>
#> </tbody>
#> <tfoot class="gt_sourcenotes">
#> <tr>
#> <td class="gt_sourcenote" colspan="4"><span class='gt_from_md'>Abbreviations: CI = Confidence Interval, OR = Odds Ratio</span></td>
#> </tr>
#> <tr>
#> <td class="gt_sourcenote" colspan="4"><span class='gt_from_md'>N = 757 complete observations included in the multivariate model</span></td>
#> </tr>
#> </tfoot>
#>
#> </table>
#> </div>