library(ggdag)
library(ggplot2)
coord_dag <- list(
x = c(Z1 = 0, Z2 = 0.5, D = 0, Z3 = 1, M = 0.5, Y = 1, Z4 = 0.5),
y = c(Z1 = 1, Z2 = 1, D = 0.5, Z3 = 0.5, M = 0.5, Y = 0, Z4 = 0)
)
dag <- dagify(
D ~ Z1,
D ~ Z2,
Z3 ~ Z2,
M ~ D,
Y ~ M,
Y ~ Z3,
Z4 ~ D,
Z4 ~ Y,
coords = coord_dag
)
dag_data <- dag |> tidy_dagitty()
dag_data$data$colour <- ifelse(dag_data$data$name %in% c("Z2", "M"),
"#FF7E15", "#00C1D4")
dag_data |>
ggplot(aes(x = x, y = y, xend = xend, yend = yend)) +
geom_dag_point(aes(colour = colour), size = 22) +
scale_colour_identity() +
geom_dag_edges(edge_colour = "#005e73", edge_width = 0.8) +
geom_dag_text(colour = "white", size = 4, fontface = "bold") +
expand_limits(x = c(-0.2, 1.2), y = c(-0.2, 1.2)) +
coord_cartesian(clip = "off") +
theme_dag(legend.position = "none")