Suppose a stronger medicine dose is expected to help, or at least not hurt. That is a monotonic dose-response assumption: as the dose increases, the outcome does not reverse direction. An overdose that makes the condition worse breaks the assumption. Monotonicity allows flat stretches and diminishing returns; it does not require a straight line. section 10.6.2 section 6.5.3
In causal analysis, monotonicity matters because it rules out counterfactual possibilities. For a binary treatment X and outcome Y, assuming treatment cannot turn a positive outcome into a negative one excludes that kind of response. This can help identify probabilities of causation—questions about whether treatment was necessary or sufficient for an outcome. The assumption must be justified for the causal relationship at hand, not inferred merely from a convenient fitted curve. section 10.6.2
Promotion and subscriber retention
Let X indicate whether a subscriber receives a promotion and Y whether they remain subscribed. Under an assumption that the promotion cannot cause someone to leave who would otherwise stay, that counterfactual response is excluded when analyzing whom the promotion persuaded. With suitable intervention probabilities, monotonicity yields PNS = P(Y₍X=1₎ = 1) − P(Y₍X=0₎ = 1), the probability that treatment is both necessary and sufficient. Randomized experiments can supply intervention data; observational data require an identification strategy, such as backdoor or front-door adjustment, to infer those probabilities. section 10.6.2
Monotonicity can also be a modeling constraint. If increasing enzyme concentration should not reduce target-protein abundance, an unconstrained neural assignment function may violate that biological assumption. A flow-based structural causal model uses invertible transformations and conditional neural splines to represent the variables while fitting their distributions. Check separately that the implemented relationship reflects the intended enzyme-to-protein assumption, including diminishing returns. section 6.5.3
Listing 6.18 Specify the flow-based SCM
import pyro
from pyro.distributions import (
ConditionalTransformedDistribution,
Normal, Uniform,
TransformedDistribution
)
from pyro.distributions.transforms import (
conditional_spline, spline
)
import torch
from torch.distributions.transforms import AffineTransform
pyro.set_rng_seed(348)
NxDist = Uniform(torch.zeros(1), torch.ones(1)) #1
f_x = AffineTransform(loc=1., scale=100.0) #2
XDist = TransformedDistribution(NxDist, [f_x]) #3
NyDist = Normal(torch.zeros(1), torch.ones(1)) #4
f_y = conditional_spline(input_dim=1, context_dim=1) #5
YDist = ConditionalTransformedDistribution(NyDist, [f_y]) #6
The Pyro setup places a conditional spline in the protein variable’s transformed distribution. It shows where the modeling choice enters the structural causal model, not a validation of the biological assumption. section 6.5.3
Treat plausible explanations as hypotheses rather than evidence that monotonicity holds. Ad spending might increase brand awareness with diminishing returns, but other factors also affect awareness. An LLM can confidently give a probability-of-necessity formula while omitting the monotonicity and other assumptions on which it depends. section 13.1.3 section 13.1.7
