if (FALSE) { # requireNamespace("dagitty", quietly = TRUE)
d <- ggdag::dagify(
Y ~ X + M + Z,
M ~ X + Z,
C ~ X + Y,
exposure = "X",
outcome = "Y")
# M: mediator / Z: confounder / C: collider
# hypothetical candidate controls
controls <- c("Z", "M", "C")
# Flag controls that would bias the total effect of X on Y:
bad_controls_in(d, controls = c("Z","M","C"), exposure = "X", outcome = "Y")
# expected: c("M", "C") # mediator & collider are "bad controls"; Z is OK
}
Run the code above in your browser using DataLab