Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Probability distributions of Cost-Effectiveness can be misleading, published by Lorenzo on July 18, 2022 on The Effective Altruism Forum.
TL;DR:
The "mean" cost-effectiveness of interventions with uncertain impact can be misleading, sometimes significantly.We want to consider mean(cost)mean(effect), not mean(costeffect)
Epistemic status (how much I'm sure of this): I'm pretty confident about the main claim, but still confused about the details, I end the post with some questions.
Minimal extreme example:
Let's say that you have a magical intervention that has:
33% of saving 1 life
33% of saving 100 lives
33% of saving 199 lives
All for the known cost of $10,000.It would be an amazing intervention! If you run hundreds of similar interventions, you can save lives with cost-effectiveness of $100/life: the expected value is 100 lives saved, and the cost is always $10,000.
But here is what happens if you model it in Guesstimate:
You get $3400 mean cost per life! Underestimating the actual effectiveness by a factor of 34!
This is obvious in hindsight: since Guesstimate shows the "mean" cost-effectiveness
mean(costeffect)=mean(100001,10000100,10000199)≈3400
instead of what we care about, which is:
costeffect=costNeffectN=mean(cost)mean(effect)=10000mean(1,100,199)=100.
Looking at the 5th and 95th percentile helps in many cases, but not in scenarios where there is a very small probability of very high effects and a significant probability of small effects. Minimal Guesstimate example with 4.8% of saving 1000 lives and 95.2% of saving 1 life.
Some practical examples of very small chances of huge value might be deworming or policy interventions. For those, mean(cost/effect) and mean(cost)/mean(effect) might differ by orders of magnitude.
Three recent examples:
(search for "EDIT 22/06/2022:" in this post, it changes a result by an order of magnitude)
/ (in this case the difference is smaller, 54 vs 31, see )
(19 vs 12, see )
If you want to check another Guesstimate model
For most models, you can just manually calculate mean(cost)/mean(effect), since the means are shown in the Guesstimate UI.For more complex cases, if you are comfortable with python, you can port a guesstimate model to numpy using/ and add .mean() liberally (very MVP, let me know if it doesn't work with a model you want to try).
Possible solutions / mitigations:
If you're interested in a single number for some sense of "expected cost-effectiveness", get the expected value and the expected cost and divide those numbers instead of the distributions (if the distributions can be considered independent).
If costs are constant in your model, consider looking at the value per dollar (or per $1,000) instead of dollars per value, so the denominator is constant. The minimal example would become
Other ideas? I'm definitely not an expert in any of this and there's probably a nice mathematical/statistical solution that I can't think of! Please comment if you think of anything!
Some questions I still have:
How can we express the uncertainty around cost/effectiveness if the ratio distribution is hard to reason about and has misleading moments?
How could the UI in guesstimate or some potential alternative indicate to the user when to use mean(f(distribution)) and when to use f(mean(distribution)) for nonlinear functions, to prevent people from making this very common mistake?We might want to use the former for e.g. the value of cash transferseffect=∑klog(cash)→mean(effect)=mean(klog(cash))≠klog(mean(cash))
Really curious to know if anyone has ideas!
Huge thanks to Sam Nolan, Justis Mills, and many others for fleshing out the main idea, editing, and correcting mistakes.
Assuming independence between cost and effect
Thanks for listening. To help us out with The Nonlinear Library or to learn more, please visit nonlinear.org.