1 The Problem of Analytic Multiplicity
A published result usually reports one estimate from one analysis. Behind that single number sits a branching set of decisions: how the outcome and exposure were coded, which covariates entered the model, how missing values were handled, which observations met inclusion criteria, and what functional form linked predictors to outcome. Each decision has several defensible answers, and different combinations can yield different estimates. The distribution of results across all defensible analyses is a property of the study, and describing it is the aim of this book.
1.1 Same data, different answers
When many independent teams analyse the same data to answer the same question, their estimates spread out. In a coordinated study of whether football referees give more red cards to darker-skinned players, twenty-nine teams reached conclusions ranging from no association to a strong one, all from a single dataset (Silberzahn et al. 2018). A later effort on immigration and preferences for social policy found comparable dispersion across seventy-three teams (Breznau et al. 2022). The variation came from analytic choices, each one reasonable on its own.
Observational epidemiology faces the same exposure. The vibration-of-effects framework fit thousands of models that differed only in their adjustment sets and showed that both the effect size and its p-value can swing widely across those models, sometimes reversing sign (Patel et al. 2015). Applying the framework to established cohorts confirmed that many reported associations are fragile to defensible changes in specification (Klau et al. 2021).
1.2 The response
Two complementary methods make the decision space visible. Multiverse analysis enumerates the defensible specifications and reports the full set of estimates (Steegen et al. 2016). Vibration-of-effects analysis turns that lens on one target association and quantifies how much it moves as the model changes (Patel et al. 2015). Specification-curve analysis orders the estimates and tests them as a set (Simonsohn et al. 2020).
This book implements those methods in R through the companion package forkflow. The workflow is five verbs: enumerate the specifications, fit a model across the whole grid, summarise the resulting distribution, visualise it, and report it reproducibly. The chapters that follow build each verb in turn, close with a worked survival-analysis example, and end with practical guidance.