Skip to contents

choose one of the following, and the other will be estimated:

  • exposure_confounder_effect

  • confounder_outcome_effect

Usage

tip(
  effect_observed,
  exposure_confounder_effect = NULL,
  confounder_outcome_effect = NULL,
  verbose = getOption("tipr.verbose", TRUE),
  correction_factor = "none"
)

tip_with_continuous(
  effect_observed,
  exposure_confounder_effect = NULL,
  confounder_outcome_effect = NULL,
  verbose = getOption("tipr.verbose", TRUE),
  correction_factor = "none"
)

tip_c(
  effect_observed,
  exposure_confounder_effect = NULL,
  confounder_outcome_effect = NULL,
  verbose = getOption("tipr.verbose", TRUE),
  correction_factor = "none"
)

Arguments

effect_observed

Numeric positive value. Observed exposure - outcome effect (assumed to be the exponentiated coefficient, so a risk ratio, odds ratio, or hazard ratio). This can be the point estimate, lower confidence bound, or upper confidence bound.

exposure_confounder_effect

Numeric. Estimated difference in scaled means between the unmeasured confounder in the exposed population and unexposed population

confounder_outcome_effect

Numeric positive value. Estimated relationship between the unmeasured confounder and the outcome

verbose

Logical. Indicates whether to print informative message. Default: TRUE

correction_factor

Character string. Options are "none", "hr", "or". For common outcomes (>15%), the odds ratio or hazard ratio is not a good estimate for the risk ratio. In these cases, we can apply a correction factor. If you are supplying a hazard ratio for a common outcome, set this to "hr"; if you are supplying an odds ratio for a common outcome, set this to "or"; if you are supplying a risk ratio or your outcome is rare, set this to "none" (default).

Value

Data frame.

Examples

## to estimate the relationship between an unmeasured confounder and outcome
## needed to tip analysis
tip(1.2, exposure_confounder_effect = -2)
#>  The observed effect (1.2) WOULD be tipped by 1 unmeasured confounder with the
#>   following specifications:
#>  estimated difference in scaled means between the unmeasured confounder in the
#>   exposed population and unexposed population: -2
#>  estimated relationship between the unmeasured confounder and the outcome:
#>   0.91
#> # A tibble: 1 × 5
#>   effect_adjusted effect_observed exposure_confounder_e…¹ confounder_outcome_e…²
#>             <dbl>           <dbl>                   <dbl>                  <dbl>
#> 1               1             1.2                      -2                  0.913
#> # ℹ abbreviated names: ¹​exposure_confounder_effect, ²​confounder_outcome_effect
#> # ℹ 1 more variable: n_unmeasured_confounders <dbl>

## to estimate the number of unmeasured confounders specified needed to tip
## the analysis
tip(1.2, exposure_confounder_effect = -2, confounder_outcome_effect = .99)
#>  The observed effect (1.2) WOULD be tipped by 9 unmeasured confounders with
#>   the following specifications:
#>  estimated difference in scaled means between the unmeasured confounder in the
#>   exposed population and unexposed population: -2
#>  estimated relationship between the unmeasured confounder and the outcome:
#>   0.99
#> # A tibble: 1 × 5
#>   effect_adjusted effect_observed exposure_confounder_e…¹ confounder_outcome_e…²
#>             <dbl>           <dbl>                   <dbl>                  <dbl>
#> 1               1             1.2                      -2                   0.99
#> # ℹ abbreviated names: ¹​exposure_confounder_effect, ²​confounder_outcome_effect
#> # ℹ 1 more variable: n_unmeasured_confounders <dbl>

## Example with broom
if (requireNamespace("broom", quietly = TRUE) &&
    requireNamespace("dplyr", quietly = TRUE)) {
  glm(am ~ mpg, data = mtcars, family = "binomial") %>%
   broom::tidy(conf.int = TRUE, exponentiate = TRUE) %>%
   dplyr::filter(term == "mpg") %>%
   dplyr::pull(conf.low) %>%
   tip(confounder_outcome_effect = 2.5)
}
#>  The observed effect (1.13) WOULD be tipped by 1 unmeasured confounder with
#>   the following specifications:
#>  estimated difference in scaled means between the unmeasured confounder in the
#>   exposed population and unexposed population: 0.13
#>  estimated relationship between the unmeasured confounder and the outcome: 2.5
#> # A tibble: 1 × 5
#>   effect_adjusted effect_observed exposure_confounder_e…¹ confounder_outcome_e…²
#>             <dbl>           <dbl>                   <dbl>                  <dbl>
#> 1               1            1.13                   0.133                    2.5
#> # ℹ abbreviated names: ¹​exposure_confounder_effect, ²​confounder_outcome_effect
#> # ℹ 1 more variable: n_unmeasured_confounders <dbl>