Load packages library(tidyverse) library(ggdag) library(dagitty) Define DAG I’ve drawn the DAG in dagitty.net, that’s why the coordinates look weird. dag3_str <- ' dag { bb="-2.865,-5.146,2.956,4.896" U [latet, pos="2.456,-0.958"] X [exposure, pos="-2.365,-4.309"] Y [outcome, pos="-0.271,4.059"] Z1 [pos="-0.491,-1.925"] Z2 [pos="-0.915,1.269"] Z3 [pos="1.713,1.984"] U -> Z1 U -> Z3 X -> Z1 Z2 -> Y Z2 -> Z1 Z2 -> Z3 Z3 -> Y }' Then tidify: dag3 <- dagitty(dag3_str) dag3_tidy <- …