1 Introduction
Introduction
1.1 Why Causal Dynamics?
Any complex dynamical system (organism, population, ecosystem, clinical cohort, coupled socio-technical process) is a process of becoming.1 Structure constrains what can happen; dynamics unfolds those constraints through time; and observation gives us partial and “noisy” access to the state and process. At a declared descriptive scale, an occurrence may prehend what it incorporates through its causal relations2: each process is affected by its local context, and is in a way, unique. We might be interested in both the unique presentation of an occasion (e.g. what is unique about a patient’s adverse response to treatment), or in its invariances with respect to other occasions of its kind (e.g. what vaccine non-responders have in common). An occasion’s distinctive character emerges through concrescence, as it integrates its prehensions of the actual world and relevant possibilities into a novel unity whose consequences may be observed.
We distinguish an occurrence, an enduring object, and a repeatable pattern. An occasion is a scale-dependent unit of becoming. An enduring object is constituted through an ordered succession of occasions and may influence later occasions; in Whitehead’s account, it is a society whose occasions inherit a defining character (Whitehead 1978). A repeatable pattern is an organisation that may recur across distinct processes or objects; it is not itself an event-like cause. Whether a modelled referent is adequately understood as an enduring object depends on its declared identity criterion and constitution, not on its appearance as a graph node. The Glossary and Concept Reference defines the terminology and the semantic declarations required before a causal claim is made.
Graphs hold selected relations sufficiently still for intervention and counterfactual questions to be well posed. Becoming generates pattern, while statistical identification often requires the pattern to be stated first. We use formal mathematical tools to represent those processes and to track flowing systems, keeping each representation distinct from the process it describes. Association, intervention, and counterfactual queries therefore require a declared representation of the dependencies they presuppose, even when the represented system is changing.
Mathematical structures in this book describe possibilities under stated assumptions: possible assignments, transitions, or trajectories. A model is a representation of those possibilities, not the concrete process itself or evidence that any one possibility was realised.
The model treats formal causation as a claim about the structural conditions under which a process can unfold.3 A graph, equation, or constraint represents such a condition. Mechanism realises a particular form under stated conditions, while a trajectory represents unfolding actualised possibilities.
Causal models need not assign a single outcome to each set of causes. Darwinian evolution offers a scientifically specified account of the creative advance fixed in the production of biological novelty: heritable variation supplies variants, while differential reproduction changes their prevalence across generations. Its general patterns are observable and yield testable predictions, even though particular trajectories remain contingent (Darwin 1859).4 In a stochastic transition model, an innovation term represents process variation; an observation model may separately represent measurement error. Omitted state, aggregation, and model misspecification can also produce unexplained variation, but they are not interchangeable with process stochasticity. Where a model groups unresolved contributions in a term \(u\), that term records a limit of the specified representation, not a single causal mechanism. We distinguish these sources where the scientific question and available data permit; otherwise, we state what remains unresolved.
The conceptual architecture adopted here therefore guides the methodology. It informs which distinctions the technical model must preserve to formalise scientific hypotheses about nature: which structural conditions shape an unfolding, what becomes through time, what remains invariant after constitution, what acts through repeated temporal influence, and what the measurement process makes available to an observer. Those distinctions do not replace statistical identification or empirical validation; rather, they determine what must be represented before those procedures can answer the intended question. Each variable, relation, and intervention, therefore requires a declaration of referent, temporal support, scale, model role, relation type, replacement rule, and unchanged mechanisms. Our framework earns its practical value when that discipline prevents a modelling error, identifies a more informative intervention, or changes a decision under a strong and appropriately matched alternative.
This book formalises a causal data-generating process for quantifying those dynamical causal relations:
- an invariant structural stratum whose hypotheses we can test in principle;
- dynamical states that evolve through time (some latent, typically stochastic, none fully transparent);
- an observable measurement process (noisy and partial) that generates data from those states;
- causal semantics that keep association, intervention, and counterfactual questions distinct and map to different mathematical formulations.
The focus is practical wherever such systems appear: treatment policies in longitudinal data, ecosystem recovery and intervention effort, disease-spread thresholds, networks under perturbation, and analogous problems outside biology.
These applications depend on keeping observation and intervention distinct. An assay is a measurement of a system; a treatment or policy is something done to it. Models should specify both explicitly rather than treat observed values as interventions (Pearl 2009; Imbens and Rubin 2015). Pearl’s structural causal models formalise this distinction. This book brings their intervention and counterfactual semantics together with dynamical models, state-space inference, and graph theory. Its practical implementations will evolve with modelling techniques; the conceptual framework should remain useful. The terminology draws on the cited sources but serves a practical purpose: to specify interventions clearly enough that their consequences can be understood and assessed.
1.2 Why causality and time matter
Correlation is not causation. Causal effects are often estimated from observed associations, but their interpretation requires structure and assumptions. Observed associations can reflect causal effects, selection, and confounding; without causal structure, they do not by themselves identify the consequences of intervention (Pearl 2009). Time changes which causal questions we can answer. Longitudinal systems add feedback and time-varying confounding, and may be multistable: the same interaction graph can support more than one stable long-run pattern. In such cases, the system’s starting state and the timing and strength of intervention can matter as much as what we change (Robins 1986; Robins et al. 2000; Strogatz 2014; Scheffer et al. 2009).
Pearl’s ladder of causation distinguishes three modes of reasoning (Pearl 2009; Pearl and Mackenzie 2018; Bareinboim 2026): perceiving what is, acting upon it, and imagining what might have been for a specific unit. Each query requires a different model of what is available, changed, or held fixed; it is not interchangeable with prehension.5 Chapter 1 develops each level.
| Level | Question | Typical mistake |
|---|---|---|
| L1: Association | What happens if I observe \(X\)? | Treating a predictive model as if it answers policy |
| L2: Intervention | What happens if I do \(X\)? | Ignoring confounding or mechanism change |
| L3: Counterfactual | What would this unit have seen if \(X\) had differed? | Averaging without fixing exogenous context \(\mathbf{u}\) |
Complex dynamical systems make these distinctions acute. Mechanisms, transport across settings (Pearl and Bareinboim 2014; Bareinboim and Pearl 2012, 2013), and experiments that are impossible or unethical all push us toward explicit causal structure (McElreath 2020). Multistability, thresholds, and intervention timing (policy rollout, restoration effort, regulatory networks on fixed wiring) are worked through with code in Chapter 9 and Chapter 15.
The book’s core object is the causal dynamical model: a general framing for structure, time, and observation under Pearl’s levels of causal reasoning. The executable examples use a Julia stack as particular applications of the underlying mathematics. Package roles, the closed temporal lexicon, and the process gloss for API names are collected in Table 8; how to run the examples is under Using this book.
Causality is relational: an effect is specified relative to what generates it. A directed dyad \(X\rightarrow Y\) is the smallest graphical mark of direct relevance, but the structural assignment \(Y\coloneqq f_Y(\mathrm{Pa}(Y),U_Y)\) is the causal mechanism. Effects may depend irreducibly on combinations of parents, thresholds or complexes; graphs are projections of that mechanism-level structure. Chapter 2 retains the dyad as a pedagogical primitive before moving to interactions and larger assemblages.
1.3 Framework at a glance
The word hierarchy has several distinct uses in this book. Pearl’s causal hierarchy orders queries by the information and operations they require. The Structural, Dynamical, and Observable strata organise modelling roles; they do not necessitate an ontological hierarchy. A compositional hierarchy, by contrast, concerns how the modelled system is organised, as in cells within tissues or individuals within populations. These uses are related in some applications, but none entails the others.
We organise the material along two axes that are easy to confuse but must be kept distinct:
- Three modelling strata: Structural, Dynamical, and Observable (mechanism class, realised process, and record-generating observation).
- Three levels of Reason: causal queries (associate, intervene, counterfactualise).
The three strata separate modelling roles: what may influence what, how latent states unfold, and how records are generated. They are not three orthogonal ontological realms. A transition law may be both a structural assignment and a dynamical object, and measurement is itself a physical process even when represented by a simple observation map. The book therefore keeps three axes distinct: ontic interpretation (possibility, process, event), model component (mechanism, transition, measurement law), and epistemic status (assumed, latent-inferred, observed). The strata organise discussion across these axes; they do not imply a hierarchy of reality or require each model component to occupy only one position on each axis (Figure 1.1).
| Stratum | Role | Examples |
|---|---|---|
| Structural | What may influence what; invariances; admissible possibilities; identification | Graphs, SCMs, \(do(\cdot)\), transport |
| Dynamical | How latent states unfold and actualise possibilities | ODEs/SDEs, attractors, feedback |
| Observable | How records arise and how we learn from them | Filtering, G-methods, TMLE, policy evaluation, incomplete observation |
Chapter 1 introduces all three levels; the ranges below point to their main development and applications.
| Level | Question | Where it is developed |
|---|---|---|
| L1 | Forecast / associate | 1–5b, 10–12, 19–21 |
| L2 | Intervene / do | 4–6, 9, 13–15b, 22–24 |
| L3 | Counterfactual / imagine | 4, 7, 16, 25–26, 28 |
1.3.1 Developing and evaluating causal-dynamical models
CDCS treats model development as an iterative process:
\[ \text{build} \to \text{fit} \to \text{criticise} \to \text{expand or repair} \to \text{compare} \to \text{decide}, \]
The decision may prompt another model revision. This follows the model-development discipline set out in Bayesian Workflow (Gelman et al. 2026), and applies whether a component is Bayesian, targeted, variational, mechanistic, or deterministic.
That cycle alone does not establish a causal claim. CDCS adds four requirements to make the claim explicit and assessable:
- specify the strata, referents, temporal support, and graph; state the intervention and estimand;
- assess whether the estimand is identifiable under the declared graph and assumptions, and retain the identification result (the certificate);
- fit and criticise the relevant dynamical, observation, filtering, and estimation components;
- report uncertainty, sensitivity, transport conditions, and the decision the result is intended to support.
The steps can send the analysis back to earlier choices. If predictions or dynamical behaviour fail their checks, the transition or observation model may need revision. If identification fails, or positivity, sensitivity, or transport checks are inadequate, the analyst may need to revise the estimand, graph, intervention, or target population. The certificate records the query, graph fingerprint, identification status, strategy, adjustment set, and assumptions. Downstream estimation can consume this record, but it does not validate the graph or mechanisms. Good predictive performance alone does not establish causal validity. The table relates the model-development cycle to the additional questions CDCS requires:
| Model-development step | Causal-dynamical question |
|---|---|
| Build and fit | Which mechanism, state, observation, or estimation component is represented? |
| Criticise and compare | Which empirical, dynamical, identification, or computational check fails? |
| Expand or repair | Which model component, assumption, estimand, or target needs revision? |
| Decide | What kind of claim is supported, and what decision can it inform? |
Incomplete observation makes these requirements concrete. An assay may be absent, a longitudinal panel may have gaps, or an outcome may be censored. These are different observation processes; where they matter, the model must represent how and when measurements are obtained and how missingness relates to the process. They can also change which estimands are identifiable.
Chapter 1 makes the link among the three strata explicit with a state-space model:
\[ X_{t+1} = f(X_t, A_t, C, U^x_{t+1}), \qquad Y_t = h(X_t, C, U^y_t) \]
Here \(X_t\) is the latent state and \(Y_t\) the measured record. The Structural graph specifies how treatment \(A_t\) and context \(C\) relate to these variables and where an intervention acts; \(f\) gives the state transition, and \(h\) maps state and context to measurements. The exogenous inputs \(U^x\) and \(U^y\) enter the transition and observation mechanisms, respectively.
Chapter 9 examines Markov blankets and organism–environment cuts (FEP) as ways to relate structural boundaries to dynamical processes (Chapter 9). Part II develops the related concepts of robustness, resistance, and resilience.
1.3.2 Creative advance and counterfactual comparison
Evolutionary theory makes novelty scientifically tractable: heritable variation and differential reproduction generate population change whose broad patterns can be predicted even when particular trajectories remain contingent. Counterfactual analysis addresses a different question: given a specified process, how would it have unfolded under another intervention? The alternative is a modelled contrast, not an observed second history.
At the unit level, that contrast requires an explicit rule for relating trajectories across interventions. In the SCM coupling used here, we hold the exogenous realisation \(\mathbf u\) fixed, change the intervention, and propagate through \((G,F)\). Holding \(\mathbf u\) fixed pairs background inputs across the modelled trajectories. It is an assumption about which sources of variation persist across intervention regimes, not an empirical criterion of organismal identity. The choice of coupling therefore belongs to the scientific specification of the counterfactual, rather than following automatically from the observed trajectory.
1.4 Causal dynamical models
Two communities have built powerful but largely separate toolkits. Causal inference excels at interventional and counterfactual questions (Pearl 2009; Imbens and Rubin 2015) but often misses temporal structure, feedback, and attractors. Dynamical systems excel at mechanisms and long-run behaviour (Strogatz 2014; Hirsch et al. 2012) but often lack explicit \(do(\cdot)\) semantics. Real systems need both: time-varying confounding, attractor shifts, and a single object that supports forecasting, interventional simulation, and unit-level counterfactuals (Robins 1986; Robins et al. 2000; Laan and Rubin 2006; Ives and Carpenter 2007).
Questions that need both toolkits
- What happens if we vaccinate earlier? (Chapter 9)
- How much restoration effort to move an ecosystem between attractors? (Chapter 9)
- What would this patient’s trajectory have been under another protocol? (Chapter 28)
A Causal Dynamical Model (CDM) combines mechanistic dynamics, explicit \(do(\cdot)\) and counterfactual semantics (fixed \(\mathbf{u}\)), state-space inference, and graph structure when applicable (Pearl 2009; Durbin and Koopman 2012; Särkkä 2013). CDMs instantiate the three strata and three levels in one generative story. Chapter 28 gives the full notation and a confounded treatment simulation.
1.5 Using this book
This book is a work in progress. Use it as a conceptual and computational treatment of causal dynamics; package manuals and changelogs live in the repositories.
1.5.1 How to read this book
The book uses two complementary orders. Do not confuse them.
Epistemology (geological section). Only the Observable surface is given in measurement. Dynamical and Structural strata lie deeper and are inferred (Framework at a glance). In practice you often start from data and dig down.
Pedagogy (depth-first). Parts I–III teach deepest first: Structural assumptions → Dynamical becoming → Observable estimation. That is the clearest way to keep Pearl’s levels of Reason distinct before time and noise enter.
Unifying object. A Causal Dynamical Model (CDM) is the single generative story that spans all three strata. A minimal spine appears early (Chapter 1); the full synthesis is Chapter 28. Strata are analytical cuts through that object, not three unrelated textbooks.
| Part | Stratum | Rungs owned | Deferred |
|---|---|---|---|
| I | Structural | L1–L3 on graphs / SCMs; bridge to time (Ch. 9) | Continuous dynamics; cohort estimators |
| II | Dynamical | L1–L3 on trajectories under \(do(\cdot)\) and shared \(\mathbf{u}\) | Cross-fitted estimation; reporting |
| III | Observable | L1–L3 from data (G-methods, TMLE, LMTP, decision) | Full CDM synthesis |
| IV | Synthesis | CDM + case studies + practice of Reason (reporting, software) | — |
Within each part the ladder Seeing → Doing → Imagining is replayed on purpose: same queries, thicker stratum. Cross-references mark where Part II’s interventions and Part III’s estimators answer the same L2 question with different information.
Audience: anyone modelling complex dynamical systems with feedback, latent structure, and imperfect observation (ecology, epidemiology, medicine, climate, and related fields), as well as statisticians and ML researchers bridging causality and dynamics, and graduate students in those areas.
Chapter map and progress: see the preface and chapter list. Concept tables (strata, levels, methods, and optional package terminology): Concept Reference Appendix.
Reading tracks
- Practitioner: skim Chapter 1 (including the minimal CDM spine); Chapter 5 for identification; CDM notation; Chapter 12; Observable Part, especially Chapter 20 and Chapter 23; then Chapter 28. Use Chapter 30 for Julia end-to-end patterns.
- Theory: Part I (1–9) thoroughly; then Observable identification and estimation chapters; Part II as needed.
- Research: sequential read through Chapter 28; implementation sections and Part IV practice chapters as required.
Prerequisites: probability, linear algebra, basic ODE or state-space exposure. Julia helps for the worked examples but is not required to follow the conceptual arc. No prior causal inference is assumed.
1.5.2 Why Julia
The book’s ideas are not tied to one language. The worked examples use Julia because it suits reading mathematics and running it in the same place (Bezanson et al. 2017, 2012).
One language, not two. Much technical computing still splits the work: explore in a slow, flexible language (Python, R, MATLAB), then rewrite hot paths in C or C++ for speed. That two-language problem costs time, introduces bugs, and separates the notebook from production code (Bezanson et al. 2012). Julia was designed so the same source can be interactive and fast enough for serious numerics. Here that means one file can hold the SCM, the ODE, and the estimator you run.
Syntax close to the maths. Julia lets you write \(α\), \(σ_w\), and \(X_{t+1}\) in code much as they appear in the equations (Unicode identifiers, broadcasting, linear-algebra operators). A working aim is that the model can be read from the code, rather than translated into an alien API. Notation on the page and in the examples is kept aligned on purpose. Executed chunks call the public APIs; occasional “From CausalDynamics.jl” (or sibling) callouts show a short package excerpt when that implementation is the definition (see snippets/package-source/).
Multiple dispatch. In many languages, a function “belongs” to one object: model.simulate(). In Julia, a function such as simulate or solve can have many methods, and the runtime selects which one to run from the types of all the arguments together (Bezanson et al. 2017). The same verb can therefore mean the right thing for an ODE problem, an SDE, or a discrete-time CDM, without a giant if typeof(x) == ... tree. For causal dynamics that matters because we reuse verbs (do, identify, simulate, solve) across graphs, trajectories, and estimators; dispatch keeps those verbs coherent as the types grow.
Composability. Julia packages are meant to combine rather than to swallow the world. A graph from one library, a solver from SciML, and a plotting backend can meet in a short script without forcing everything through one megapackage (Rackauckas and Nie 2017; Rackauckas 2026). That matches small, clear pieces (identify, estimate, display) that can be rearranged, rather than a single opaque application. Shared abstractions (arrays, tables, ODEProblem / solver interfaces, and similar) make it practical to swap one machine-learning backend or differential-equation solver for another as the ecosystem evolves, without rewriting the rest of the pipeline.
You can follow the conceptual arc without writing Julia. If you prefer another stack, treat the code as executable notation and port the ideas.
Implementation: Examples run in Julia with Quarto native engine: julia; scripts/ensure_packages.jl loads dependencies. The working stack is CausalDynamics.jl (graphs, identification, SCMs, CDM simulation), CausalTargeted.jl (cross-fitted LMTP / MTP grids), CausalMediation.jl (interventional and related mediation), and DAGMakie.jl (DAG visualisation): identify → estimate → display, with certificates bridging the steps. API names for identification and estimation stay Pearl / targeted-learning standard. Temporal identity may use the closed lexicon in Table 8 (occasion, enduring, constitution, constitutive, influence, onset, replacement, deployment). Whitehead glossary is book-side (glossary). For package manuals and changelogs, use the Documenter sites and repositories.
Cross-cutting themes: interventional vs conditional forecasting, transportability, model criticism, and consistent CDM notation.
1.6 Notation
Formal definitions (the canonical tuple \((G,F,P_U,\pi,g,h,\mathcal I,\mathcal S)\), interventions, counterfactuals, networked CDMs, and beyond the Markovian baseline) are in Chapter 28. The Glossary keeps the interpretive boundary between creative advance and Pearl’s \(\mathbf{u}\) explicit.
1.7 References
The familiar summary πάντα ῥεῖ (“everything flows”) is attributed to Heraclitus; his surviving river fragments express the associated flux (Kirk et al. 1983). We follow Heraclitus and Whitehead in understanding the world as process rather than as a collection of static substances (Whitehead 1978).↩︎
Whitehead’s term “prehend” concerns the way an actual occasion takes account of a datum. CDCS uses it narrowly for recipient-specific incorporation represented by a declared mechanism. The modelling use neither attributes consciousness nor makes every graph node an actual occasion; see the Glossary (Whitehead 1978).↩︎
In the classical vocabulary, formal causation concerns the character or organisation by which something is what it is. CDCS uses the term for structural conditions that condition dynamical actualisation. A graph, equation, or constraint is a finite representation of such conditioning. The wider distinction among material, formal, efficient, and final explanatory roles descends from Aristotle, to which we give formal mathematical and statistical representation (Aristotle 1996; Whitehead 1978; Segall 2025, 2026).↩︎
We use Whitehead’s creative advance for the broader production of novelty, treating biological evolution as one observable instance (Whitehead 1929, 1978)↩︎
The comparison is a limited analogy between forms of taking account, not an identification of Pearl’s levels with Whitehead’s metaphysical categories.↩︎