My Authors
Read all threads
Curious about causal inference and DAGs?

Our preview draft of "DAG With Omitted Objects Displayed (DAGWOOD)" available, and we are looking for any and all critique we can get! Comments are open in the draft!

docs.google.com/document/d/1zU…

But what is a DAGWOOD? A thread!

1/n
DAGs are a great way to display the causal model that is assumed.

However, they are not so great at displaying the actual assumptions behind that model.

Those two are VERY different.

In a DAG, those assumptions are hidden in the white space between nodes and arcs.

2/n
DAGWOODs are a way of taking a DAG and codifying, exploring, and displaying those assumptions. DAGWOODs can even help build DAGs from scratch!

As a bonus, the framework we developed helps unify language and concepts from econometrics and epidemiology.

How?

3/n
Start with a "root DAG," or the DAG that you are working with for actual analysis, containing ONLY things in your exposure / outcome / adjustment / instrument set.

DAGWOODs take that, generate a list of alternative DAGs, and give them back as assumptions and an overlay.

4/n
We call those alternative DAGs "branch DAGs" (get it?). There are two types for now (exclusion restrictions and misdirection restrictions). Both follow the same rules, but represent different ideas.

Oh, you noticed that we invoked the phrase "exclusion restriction" did you?

5/n
An exclusion restriction is the assumption that there does not exist ANY causal connection between two DAG nodes (i.e. sharp causal null), except through the rest of the DAG.

It's an assumption of absence. In a DAG, it's represented by the negative space.

6/n
The language is most used in instrumental variables in econometrics, but broadly also describes things like missing confounders.

Yeah, that's right; unmeasured confounding is an exclusion restriction y'all. We're all making the same assumptions (ish).

7/n.
So, we take the root DAG, and for every pair of nodes add a direct causal arc and/or a bidirectional arc (i.e. confounder).

If each results in a valid DAG that is biased or a different effect type relative to the root DAG, it's a DAGWOOD exclusion restriction branch DAG.

8/n
In order for the root model to be unbiased, NONE of those ERs must exist.

But of course, y'all know what some of those missing things might be, so we can have those too, in the form of known unknown or unknown unknown pathways.

Importantly: they are each SETS.

9/n
Each unknown unknown is a potentially infinite set by itself, and known unknowns nest with any known unknowns. Each one is a key assumption for the causal model.

But wait there's more! There isn't just MISSING stuff; there's also misdirected stuff!

10/n
What if the thing you assumed is a confounder is along the causal pathway from exposure to outcome? Worse, what if it's a collider? What if there is reverse causality (e.g. hidden time nodes)?

Those are misdirection restrictions!

11/n
So we take that root DAG again, and for each pair of nodes that are already connected, flip it, and apply the same "rules" as above. In some cases, that's a branch DAG by itself. If not, flip arcs attached to the downstream node and test, and keep going until you get one.

12/n
So you can start to see that even a simple DAG with one confounder and one effect modifier involves a LOT of assumptions. And everything that you add to the root DAG to control for stuff adds EVEN MORE.

Causal inference is hard.

13/n
Now, put all that together, and we can display it all in an overlay.

Take all the arcs from the DIFFERENCES between the root and branch DAGs, and make it into an overlay to put on top of the root DAG.

No more empty space assumptions; here there be DAGons.

14/n
Those branch DAGs are each assumptions that must be justifiable (and preferably individually justifIED) for the root DAG to be unbiased/valid.

DAGWOODs don't change the causal inference rules one bit; they just make us face them directly.

15/n
But there's two other things you can do with DAGWOODs!

Have a model you want to critique, and want to know where to focus? Put it in a DAGWOOD, and you get a list of the ways the model itself could be biased.

BUT WAIT THERE IS MORE!

16/n
What if you want to actually BUILD a model? Not a whole lot of guidance as to how to actually do that, but DAGWOODs can help!

Start with a simple root model, generate a DAGWOOD, look at what the model assumes. If something is off, change the model, and repeat.

17/n
Maybe you need a confounder node to deal with an exclusion restriction. Maybe you aren't so sure one of those confounders you adjust for isn't actually a collider.

Iterate away until the model is fully specified or it's deemed implausible. Either way, progress!

18/n
Causal inference is only as good as our assumptions, but those assumptions are often hard to see.

We hope that DAGWOODs help by pulling those assumptions out of the white space so we can fix them when we can, and acknowledge that they are unfixable when we can't.

19/n
But we would LOVE your help!

What did we get wrong?

Can we change the language to make things clearer?

Are we missing any key concepts?

Please leave comments in the draft! We'll compile/correct, we'll submit to a preprint soon.

docs.google.com/document/d/1zU…
Also, please leave your name with or separately from your comments! Would like to give you an acknowledgement in the manuscript if you contributed!
Some fun meta commentary: there is at least one embarrassing thing in here that is pretty much just straight up wrong that has already been caught in the comments.

NEAT!
To be absolutely clear:

I WANT YOU TO DESTROY THIS PAPER.

I want your comments to blot out the sun.

Just absolutely tear it to shreds in as horrific a way as possible.

And then I want to politely thank you for your help in making it better!
SO MANY great comments y'all! THANK YOU, and keep 'em coming!

docs.google.com/document/d/1zU…
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Noah Haber

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!