broom.helpers (version 1.0.0)

tidy_add_estimate_to_reference_rows: Add an estimate value to references rows for categorical variables

Description

For categorical variables with a treatment contrast (stats::contr.treatment()) or a SAS contrast (stats::contr.SAS()) will add an estimate equal to 0 (or 1 if exponentiate = TRUE) to the reference row.

Usage

tidy_add_estimate_to_reference_rows(
  x,
  exponentiate = FALSE,
  model = tidy_get_model(x),
  quiet = FALSE
)

Arguments

x

a tidy tibble

exponentiate

logical indicating whether or not to exponentiate the coefficient estimates. It should be consistent with the original call to broom::tidy()

model

the corresponding model, if not attached to x

quiet

logical argument whether broom.helpers should return an error when requested output cannot be generated. Default is FALSE

Details

For categorical variables with a sum contrast (stats::contr.sum()), the estimate value of the reference row will be equal to the sum of all other coefficients multiplied by -1 (eventually exponentiated if exponentiate = TRUE), and obtained with stats::dummy.coef(). For sum contrasts, the model coefficient corresponds to the difference of each level with the grand mean.

For other variables, no change will be made.

If the reference_row column is not yet available in x, tidy_add_reference_rows() will be automatically applied.

See Also

Other tidy_helpers: tidy_add_contrasts(), tidy_add_header_rows(), tidy_add_reference_rows(), tidy_add_term_labels(), tidy_add_variable_labels(), tidy_attach_model(), tidy_identify_variables(), tidy_plus_plus(), tidy_remove_intercept()

Examples

Run this code
# NOT RUN {
df <- Titanic %>%
  dplyr::as_tibble() %>%
  dplyr::mutate(dplyr::across(where(is.character), factor))

df %>%
  glm(
    Survived ~ Class + Age + Sex,
    data = ., weights = .$n, family = binomial,
    contrasts = list(Age = contr.sum, Class = "contr.SAS")
  ) %>%
  tidy_and_attach(exponentiate = TRUE) %>%
  tidy_add_reference_rows() %>%
  tidy_add_estimate_to_reference_rows(exponentiate = TRUE)

if (requireNamespace("gtsummary")) {
  glm(
    response ~ stage + grade * trt,
    gtsummary::trial,
    family = binomial,
    contrasts = list(
      stage = contr.treatment(4, base = 3),
      grade = contr.treatment(3, base = 2),
      trt = contr.treatment(2, base = 2)
    )
  ) %>%
    tidy_and_attach() %>%
    tidy_add_reference_rows() %>%
    tidy_add_estimate_to_reference_rows()
}
# }

Run the code above in your browser using DataCamp Workspace