Tutorials › Marginal Structural Models › Backdoor Paths Across Treatment Histories

Causal Diagrams for Longitudinal Data · Tutorial 69 of 501

Backdoor Paths Across Treatment Histories

Trace how treatment history creates backdoor paths to later outcomes, and distinguish covariates on those paths from covariates that automatically belong in an adjustment set.

Intermediate 12 min read

What You'll Learn

  • Define a backdoor path from a visit-specific treatment to a later outcome.
  • Trace paths through earlier treatments and time-varying covariates in a longitudinal DAG.
  • Identify measured pre-treatment covariates that lie on at least one such path.
  • Use incoming arrows to organize a systematic path audit.
  • Distinguish path membership from a conclusion about confounding or adjustment.
  • Recognize common graph-tracing errors and their consequences.

Why Trace Paths Across Treatment Histories?

In a longitudinal study, treatment at one visit may depend on earlier treatment and on covariates that also predict a later outcome. The relevant graph therefore need not look like a single treatment node pointing to an outcome. A route from treatment \(A_t\) to outcome \(Y_T\) may begin with an arrow into \(A_t\), pass through earlier treatment or measured covariates, and reach \(Y_T\). Tracing these routes helps locate possible sources of noncausal association for the treatment-outcome comparison at visit \(t\).

The task here is deliberately limited: identify backdoor paths and the measured pre-treatment covariates that occur on them. Path membership is a graphical fact. By itself, it does not show whether a path is blocked by conditioning, whether a variable should be adjusted for, or whether a causal effect is identified.

Definition: A directed acyclic graph (DAG) consists of nodes and directed arrows, with no directed cycle. A path between two nodes is a sequence of distinct nodes in which each consecutive pair is joined by an edge; when tracing a path, the direction of an edge may point either way along the sequence. A backdoor path from \(A_t\) to \(Y_T\), for \(t<T\), is a path from \(A_t\) to \(Y_T\) whose first edge has its arrow pointing into \(A_t\). A measured covariate lies on that path if its node appears between the two endpoints.

Write \(A_t\) for treatment at visit \(t\), \(Y_T\) for a later outcome, and \(L_t\) for a covariate measured before \(A_t\). More generally, \(\bar A_t=(A_1,\ldots,A_t)\) denotes treatment history and \(\bar L_t=(L_1,\ldots,L_t)\) denotes the listed covariate history. These symbols identify the timeline; the arrows in the specified DAG determine which routes exist.

A backdoor path is not required to consist only of arrows pointing toward the outcome. After its first arrow points into \(A_t\), the path can turn in either direction. It can include earlier treatments, measured covariates, or other nodes, and it can contain arrows that point into a node from both sides of the path. The defining feature is the arrowhead at the treatment endpoint.

A Systematic Way to Trace the Paths

Start with the arrows entering the treatment node. Each such arrow identifies a parent of \(A_t\), and every backdoor path must leave \(A_t\) through one of those parents. From that parent, follow adjacent edges toward \(Y_T\), respecting the requirement that a path cannot repeat a node. Record each distinct route and mark which nodes are measured covariates observed before \(A_t\). The route may travel backward in time and then forward again, as when it passes from a current covariate to an earlier treatment and onward to the outcome.

Result: Every backdoor path from \(A_t\) to \(Y_T\) begins with an edge \(P\to A_t\), where \(P\) is a parent of \(A_t\). Consequently, enumerating incoming neighbors of \(A_t\) is a complete first step in a backdoor-path audit.

Proof. By definition, a backdoor path starts at \(A_t\) with an edge whose arrow points into \(A_t\). The other endpoint of that edge is, by definition, a parent of \(A_t\). Thus every such path begins through one of the incoming neighbors. Conversely, starting from an incoming neighbor does not guarantee that a route reaches \(Y_T\); the rest of the path must still be traced in the DAG. This proves the stated first-step rule. \(\square\)

There is also a useful sufficient condition for finding a path through a measured covariate. It does not claim to find every possible backdoor path; it gives a reliable pattern to look for.

Result: Suppose \(L\) is a parent of \(A_t\), and there is a directed path from \(L\) to \(Y_T\) that does not pass through \(A_t\). Then \(A_t\leftarrow L\to\cdots\to Y_T\) is a backdoor path from \(A_t\) to \(Y_T\).

Proof. The edge \(L\to A_t\), traversed from \(A_t\) to \(L\), is the first edge of the displayed path and points into \(A_t\). By assumption, a directed path from \(L\) reaches \(Y_T\) without passing through \(A_t\). Concatenating the edge \(A_t\leftarrow L\) with that directed path gives a path from \(A_t\) to \(Y_T\) with no repeated node, and its first edge points into \(A_t\). It therefore meets the definition of a backdoor path. \(\square\)

1
Fix the endpoints.
Name the visit-specific treatment \(A_t\) and the later outcome \(Y_T\). Do not switch to a different treatment visit partway through the audit.
2
List incoming arrows.
Write down every parent of \(A_t\). These are the only possible first nodes on a backdoor path.
3
Trace distinct routes.
From each parent, follow edges toward \(Y_T\), allowing arrows to point either way along the path and never repeating a node.
4
Mark timing and measurement.
For each route, record measured covariates observed before \(A_t\), earlier treatments, and any other nodes separately.
5
Interpret narrowly.
Report which covariates lie on a backdoor path. Do not infer from that fact alone that they should all be adjusted for.

Worked Longitudinal Graphs

Worked Example: A Baseline Covariate and a Numerical Association

Suppose the DAG has \(L_1\to A_1\), \(L_1\to Y_3\), and \(A_1\to Y_3\). Thus the route \(A_1\leftarrow L_1\to Y_3\) is a backdoor path. To see how this route can generate association, suppose the variables follow \(L_1\sim N(0,1)\), \(A_1=L_1+\varepsilon_A\), and \(Y_3=2A_1+3L_1+\varepsilon_Y\), where \(\varepsilon_A\) and \(\varepsilon_Y\) are independent \(N(0,1)\) variables, also independent of \(L_1\).

First, \(\operatorname{Var}(A_1)=\operatorname{Var}(L_1)+\operatorname{Var}(\varepsilon_A)=1+1=2\), and \(\operatorname{Cov}(A_1,L_1)=1\). Then \(\operatorname{Cov}(A_1,Y_3)=2\operatorname{Var}(A_1)+3\operatorname{Cov}(A_1,L_1)+\operatorname{Cov}(A_1,\varepsilon_Y)=2(2)+3(1)+0=7\). The linear regression slope of \(Y_3\) on \(A_1\) is therefore \(7/2=3.5\), since the slope is \(\operatorname{Cov}(A_1,Y_3)/\operatorname{Var}(A_1)\). The structural coefficient on \(A_1\) in the outcome equation is \(2\), not \(3.5\). Here the difference is consistent with the backdoor route through \(L_1\): treatment and outcome share a cause. The calculation illustrates a possible consequence of the route, not a general rule for estimating effects.

Worked Example: Treatment-Confounder Feedback Across Visits

Consider a graph with arrows \(A_1\to L_2\), \(A_1\to Y_3\), \(L_2\to A_2\), \(L_2\to Y_3\), \(U\to A_2\), \(U\to Y_3\), and \(A_2\to Y_3\). Here \(L_2\) is measured before treatment \(A_2\), and \(U\) is an additional cause shown in the graph.

For the effect of treatment at visit 2 on \(Y_3\), begin at \(A_2\). Its incoming arrows are \(L_2\to A_2\) and \(U\to A_2\), so the two direct-parent routes to check are through \(L_2\) and \(U\). The route \(A_2\leftarrow L_2\to Y_3\) is a backdoor path containing the measured pre-treatment covariate \(L_2\). Another route is \(A_2\leftarrow L_2\leftarrow A_1\to Y_3\), which contains the earlier treatment \(A_1\) as well as \(L_2\). The route \(A_2\leftarrow U\to Y_3\) is also a backdoor path, but \(U\) is not measured in this example.

The audit separates three facts: \(L_2\) is measured before \(A_2\); it lies on backdoor paths to \(Y_3\); and earlier treatment \(A_1\) also lies on one of those paths. The fact that \(L_2\) was itself affected by \(A_1\) does not erase either path from the graph.

Worked Example: A Pre-Treatment Covariate on a More Complex Route

Suppose \(L_2\to A_2\), \(L_2\to C_2\), \(U\to C_2\), and \(U\to Y_3\), where both \(L_2\) and \(C_2\) are measured before \(A_2\). The route \(A_2\leftarrow L_2\to C_2\leftarrow U\to Y_3\) starts with an arrow into \(A_2\), so it is a backdoor path. Its measured pre-treatment covariates are \(L_2\) and \(C_2\); \(U\) is another node on the path.

The arrow directions at \(C_2\) point inward from both neighboring nodes on this route. This does not change the path’s classification: it still starts with an arrow into treatment and connects treatment to the later outcome. It does warn against equating “lies on a backdoor path” with “is necessarily a confounder” or “must be adjusted for.” Those further questions require assessing the graph under the proposed conditioning, not merely listing its paths.

What Path Membership Does—and Does Not—Tell You

A measured pre-treatment covariate on a backdoor path is a useful finding for an assumption audit. It identifies a route that should be considered when reasoning about treatment assignment and later outcome. It does not, on its own, determine whether the route remains relevant after conditioning on a chosen set of variables. That is a separate graphical question addressed by d-separation.

In longitudinal settings, the same variable can have different roles relative to different treatment visits. A covariate \(L_2\) may be after \(A_1\) but before \(A_2\). It is therefore post-treatment with respect to the first visit and pre-treatment with respect to the second. State the treatment endpoint before calling a variable “pre-treatment.” Similarly, a path from \(A_1\) to \(Y_3\) is not a path audit for the effect of \(A_2\); the starting treatment node changes the set of backdoor paths.

A useful comparison is between path tracing and checking a variable’s association with treatment and outcome in observed data. Empirical association can suggest candidate variables, but it cannot establish the graph’s arrows or reveal every route, especially when causes are unmeasured. Path tracing instead takes a specified causal DAG as its input and reports its implied routes. Neither task replaces the other: a graph encodes assumptions, while data describe observed distributions.

Diagnostics, Common Errors, and Limits

  • Forgetting an incoming parent. A path audit that begins with only one of several arrows into \(A_t\) is incomplete. Recheck the entire set of incoming arrows.
  • Following arrows only forward. A path can travel against an arrow after leaving \(A_t\). Trace adjacency in either direction, while preserving the requirement that the first edge points into treatment.
  • Ignoring treatment history. Earlier treatments can lie on a route into the current treatment and onward to the outcome. Keep each visit-specific treatment node distinct.
  • Calling every path node a confounder. A path may include a covariate that is not a direct common cause of treatment and outcome. Describe it first as a measured covariate on a backdoor path.
  • Using path membership as an adjustment prescription. The audit lists routes; it does not establish whether conditioning blocks them or whether the resulting adjustment is appropriate.
  • Trusting a graph with inconsistent timing. If an arrow runs from a later measurement to an earlier one without a defensible interpretation, check the node definitions and timeline before tracing paths.

The analysis is limited by the correctness and completeness of the DAG. An omitted common cause, a misordered measurement, or an incorrectly asserted arrow can change which paths appear. A graph audit cannot prove its own causal assumptions from the diagram alone. Its value is to make those assumptions explicit and to identify precisely which routes follow from them.

Check Your Understanding

Answer each question by fixing the treatment and outcome nodes first. Solutions are included below.

  1. If \(C\to A_2\) and \(C\to Y_4\), what path connects \(A_2\) to \(Y_4\), and is it a backdoor path?
  2. In the graph \(A_1\to L_2\), \(L_2\to A_2\), and \(A_1\to Y_3\), trace a backdoor path from \(A_2\) to \(Y_3\).
  3. Must every node on a backdoor path be a measured pre-treatment covariate?
  4. What is the first step in a complete audit of backdoor paths from \(A_t\)?
  5. Does finding \(L_t\) on a backdoor path alone prove that adjusting for \(L_t\) is appropriate?

Solutions. (1) The path is \(A_2\leftarrow C\to Y_4\); it is a backdoor path because its first arrow points into \(A_2\). (2) The route is \(A_2\leftarrow L_2\leftarrow A_1\to Y_3\). Its first edge points into \(A_2\), so it is a backdoor path. (3) No. A path can also contain earlier treatments or other nodes, including unmeasured causes. (4) List every parent of \(A_t\), that is, every node with an arrow into \(A_t\). Each backdoor path must begin through one of them. (5) No. Path membership identifies a route to assess; it does not determine whether conditioning blocks that route or whether adjustment is appropriate.

Clinical Biostats