flowchart TB
rct("Randomised controlled trial")










| Risk factor |
|---|
| Hypertensiona,b |
| Diabetes mellitusa,b |
| Smoking |
| Dyslipidaemiaa,b |
| Obesitya |
| Risk factor | Pharmaceutical treatment |
|---|---|
| Hypertensiona,b | ACEis, ARBs, CCBs |
| Diabetes mellitusa,b | Metformin, SU derivates, SGLT2is, GLP1-RAs, Insulin |
| Smoking | |
| Dyslipidaemiaa,b | Statins |
| Obesitya | Metformin, GLP1-RAs |

flowchart TB
rct("Randomised controlled trial")
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
The Average treatment effect (ATE) is the average effect in the total population
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
The conditional average treatment effect (CATE) is the average treatment effect in a subgroup of the population
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> magic["?"]
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> magic["?"]
magic --> ite(["Individual treatment effect"])
The individual treatment effect is the treatment effect for an individual
The individualised treatment effect (ITE) is a highly specific conditional treatment effect
To calculate the ITE, we can use two methods:
Risk modelling:
- Using a (valid) existing prediction model, we perform a subgroup analysis by predicted outcome risk
Because we rarely make many subgroups, I would not consider this an ITE

To calculate the ITE, we can use two methods:
Effect modelling:
Important
Both methods assume that there is no confounding left between the groups
If there is no confounding, we can use untreated individuals to predict what would have happened to the treated individuals, and vice versa
Using sophisticated study designs/statistical techniques, we can remove confounding in our study population
Important
The ITE is a prediction: it is what we expect, but we do not know for sure if it is true (and never will)
We thus need to validate the prediction, using special methods that take into account our limited knowledge
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> magic["?"]
magic --> more_magic(["Individual treatment effect"])
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> magic["?"]
magic --> more_magic(["Individual treatment effect"])
more_magic --> ind("Individual people")
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> path["Risk/effect modelling"]
rct --> magic["?"]
magic --> more_magic(["Individual treatment effect"])
more_magic --> ind("Individual people")
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> path["Risk/effect modelling"]
path --> ite(["Individualised treatment <br> effect (ITE)"])
rct --> magic["?"]
magic --> more_magic(["Individual treatment effect"])
more_magic --> ind("Individual people")
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> path["Risk/effect modelling"]
path --> ite(["Individualised treatment <br> effect (ITE)"])
ite --> ind("Individual people")
rct --> magic["?"]
magic --> more_magic(["Individual treatment effect"])
more_magic --> ind
flowchart TB
rct("Randomised controlled trial") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> path["Risk/effect modelling"]
path --> ite(["Individualised treatment <br> effect (ITE)"])
ite --> ind("Individual people")
rct --> magic["?"]
magic --> more_magic(["Individual treatment effect"])
more_magic --> ind
%% Custom style for node CATE and ITE
style cate fill:#F9A03F,stroke:#C36F09
style ite fill:#E79E9C,stroke:#6F1D1B
flowchart TB
rct("Pooled RCTs/<br>observational data") --> ma["Main analysis"]
ma --> ate(["Average treatment effect (ATE)"])
ate --> pop("Population")
rct --> sa["Subgroup analysis"]
sa --> cate(["Conditional average <br> treatment effect (CATE)"])
cate --> subpop("Subgroups in population")
rct --> path["Risk/effect modelling"]
path --> ite(["Individualised treatment <br> effect (ITE)"])
ite --> ind("Individual people")
rct --> magic["?"]
magic --> more_magic(["Individual treatment effect"])
more_magic --> ind