This app helps you construct a causal graph along with priors for the relationships between variables
in the causal graph (see instructional video above and workflow below). It is designed for non-experts by using a question-and-answer format to
populate the causal graph with the researcher's knowledge about the research question. Constructing a causal graph before doing a study can help you understand how much
causal learning you can gain from a variety of interventions--especially if you preregister the pre-study causal graph. You can then compare the pre-study graph to a post-study graph
to gain very precise measures of causal learning after doing a study (using entropy as a metric). Of course, the
causal graphs are useful for many other kinds of analyses, such as diagnosing issues in research design and meta-analysis.
To facilitate inserting the pre-study graph into a preregistration, this app provides options for downloading Latex/Markdown/Word version of the causal graph as a
table with associated priors on relationships between nodes. Alternatively, you can download an R object from this package or other packages
that help you analyze causal graphs--CausalQueries and theorytools.
The theorytools package has specific support for creating files suitable for preregistration using FAIR principles.
After performing the study, you can re-upload the pre-study causal graph--either from the Latex/Markdown/Word file or as a elicitcausal/CausalQueries/theorytools R object--
and then update the graph with what you learned from the study. The app will calculate the post-study learning using entropy metrics as described in the paper below.
1Draw your causal DAG (Optional).
The tool requires a causal graph in dagitty notation. If you don't know how to do that, go ahead and open the
Draw Causal Graph
tab. Click
+ Add Node
in the canvas toolbar to create a variable
(a name dialog will appear). Then click
↗ Add Edge
and drag from one node to another to draw a causal arrow. Select a node and
click
Edit Node
to rename it. When your graph is ready,
click
Use This Graph in Pre-Study
to load it
automatically into the pre-study tab.
2Review the graph in the Pre-Study tab.
Go to the
Define Graph Pre-Study
tab and confirm the
causal graph specification looks correct. All variables in the graph are treated as
binary (0 / 1) to simplify the workflow.
3Choose an elicitation mode.
Select
Probability sliders
to drag values between
0% (never happens) and 100% (always happens), or
Ranking
to drag parent nodes into
positive or negative relationship buckets and rank them by strength. Ranking is easier, especially with multiple variables, than direct probabilities but also less precise. Sliders are coupled so that all values for a given node
sum to 1. Ranking mode derives probabilities automatically from a logistic model.
4Input variable relationships.
Click
Elicit Probabilities
and work through
the modal dialogs, one per node, to add your prior beliefs about how variables are related to each other. Use Previous / Next to revise answers
before clicking Done.
5Download (optional).
After completing elicitation, use the download buttons to save the
result as a Word/Latex/Markdown file or as an elicitcausal RDS file that can be further analyzed in R. You can also export as a CausalQueries and/or theorytools model RDS file.
6Repeat for Post-Study.
Go to the
Define Graph Post-Study
tab and
repeat the process after completing the study. You can either upload the file you saved to re-load the pre-study graph or input the pre-study graph probabilities manually (such as if you are interactively checking different research designs). You should update the graph with any new information that changes your beliefs about how variables are related to each other.
7Compare.
Open the
Causal Learning Pre/Post
tab to
see the amount of causal learning that occurred from pre- to post-study. We use the entropy metric to provide a quantified summary of learning. An entropy reduction means we became more certain of the graph (type I causal learning), while an increase means we became less certain (type II causal learning).
Causal Graph/DAG specification format
Nodes are separated by spaces or newlines. Directed edges use
->
. Examples:
dag { X -> Y }
dag { X -> Y; Z -> Y } # collider
dag { X -> Y -> Z; X -> Z } # fork + direct path
Entropy interpretation
H = 0%
— complete certainty (probability 0 or 1 for all states).
H = n × 69.66%
— maximum uncertainty over 2ⁿ states (all equally likely); equals n × log₁.₀₁(2) for n binary nodes.
ΔH < 0
(post − pre) — beliefs became more precise after the study.
ΔH > 0
— beliefs became more uncertain; the study introduced new complexity.
Causal Graph Canvas
Use the toolbar above the canvas: click
+ Add Node
to create a node (a name dialog will appear),
↗ Add Edge
then drag between nodes to draw an arrow.
Select a node and click
Edit Node
to rename it.
Select a node or edge and click
✖ Delete
to remove it.
Controls
DAG specification preview:
Causal Graph
●
Elicited
●
Active
●
Pending
Write your causal graph in dagitty format in the text box below. If you need help, try building your causal graph visually at
dagitty.net
, then copy the model code (Model → Export → dagitty code)
and paste it below. The graph updates automatically.