Learn R Programming

multibias (version 1.5.3)

adjust_uc_om: Adust for uncontrolled confounding and outcome misclassification.

Description

adjust_uc_om returns the exposure-outcome odds ratio and confidence interval, adjusted for uncontrolled confounding and outcome misclassificaiton. Two different options for the bias parameters are available here: 1) parameters from separate models of U and Y (u_model_coefs and y_model_coefs) or 2) parameters from a joint model of U and Y (u1y0_model_coefs, u0y1_model_coefs, and u1y1_model_coefs).

Usage

adjust_uc_om(
  data,
  exposure,
  outcome,
  confounders = NULL,
  u_model_coefs = NULL,
  y_model_coefs = NULL,
  u1y0_model_coefs = NULL,
  u0y1_model_coefs = NULL,
  u1y1_model_coefs = NULL,
  level = 0.95
)

Value

A list where the first item is the odds ratio estimate of the effect of the exposure on the outcome and the second item is the confidence interval as the vector: (lower bound, upper bound).

Arguments

data

Dataframe for analysis.

exposure

String name of the exposure variable.

outcome

String name of the outcome variable.

confounders

String name(s) of the confounder(s). A maximum of three confounders is allowed.

u_model_coefs

The regression coefficients corresponding to the model: logit(P(U=1)) = α0 + α1X + α2Y, where U is the binary unmeasured confounder, X is the exposure, Y is the binary true outcome. The number of parameters therefore equals 3.

y_model_coefs

The regression coefficients corresponding to the model: logit(P(Y=1)) = δ0 + δ1X + δ2Y* + δ2+jCj, where Y represents binary true outcome, X is the exposure, Y* is the binary misclassified outcome, C represents the vector of measured confounders (if any), and j corresponds to the number of measured confounders. The number of parameters therefore equals 3 + j.

u1y0_model_coefs

The regression coefficients corresponding to the model: log(P(U=1,Y=0)/P(U=0,Y=0)) = γ1,0 + γ1,1X + γ1,2Y* + γ1,2+jCj, where U is the binary unmeasured confounder, Y is the binary true outcome, X is the exposure, Y* is the binary misclassified outcome, C represents the vector of measured confounders (if any), and j corresponds to the number of measured confounders.

u0y1_model_coefs

The regression coefficients corresponding to the model: log(P(U=0,Y=1)/P(U=0,Y=0)) = γ2,0 + γ2,1X + γ2,2Y* + γ2,2+jCj, where U is the binary unmeasured confounder, Y is the binary true outcome, X is the exposure, Y* is the binary misclassified outcome, C represents the vector of measured confounders (if any), and j corresponds to the number of measured confounders.

u1y1_model_coefs

The regression coefficients corresponding to the model: log(P(U=1,Y=1)/P(U=0,Y=0)) = γ3,0 + γ3,1X + γ3,2Y* + γ3,2+jCj, where U is the binary unmeasured confounder, Y is the binary true outcome, X is the exposure, Y* is the binary misclassified outcome, C represents the vector of measured confounders (if any), and j corresponds to the number of measured confounders.

level

Value from 0-1 representing the full range of the confidence interval. Default is 0.95.

Details

Values for the regression coefficients can be applied as fixed values or as single draws from a probability distribution (ex: rnorm(1, mean = 2, sd = 1)). The latter has the advantage of allowing the researcher to capture the uncertainty in the bias parameter estimates. To incorporate this uncertainty in the estimate and confidence interval, this function should be run in loop across bootstrap samples of the dataframe for analysis. The estimate and confidence interval would then be obtained from the median and quantiles of the distribution of odds ratio estimates.

Examples

Run this code
# Using u_model_coefs and y_model_coefs -------------------------------------
adjust_uc_om(
  df_uc_om,
  exposure = "X",
  outcome = "Ystar",
  confounders = "C1",
  u_model_coefs = c(-0.22, 0.61, 0.70),
  y_model_coefs = c(-2.85, 0.73, 1.60, 0.38)
)

# Using u1y0_model_coefs, u0y1_model_coefs, u1y1_model_coefs ----------------
adjust_uc_om(
  df_uc_om,
  exposure = "X",
  outcome = "Ystar",
  confounders = "C1",
  u1y0_model_coefs = c(-0.19, 0.61, 0.00, -0.07),
  u0y1_model_coefs = c(-3.21, 0.60, 1.60, 0.36),
  u1y1_model_coefs = c(-2.72, 1.24, 1.59, 0.34)
)

Run the code above in your browser using DataLab