ProbID Methods
ProbID uses likelihood ratios (LRs) and Bayes’ theorem to update a pretest probability into a post-test probability. This page explains what an LR is, how it’s calculated from test performance, and shows a worked example.
1) What is a likelihood ratio?
A likelihood ratio tells you how much a test result changes the odds of a diagnosis. It links the result you observe (positive or negative) to how likely that result would be in people with the disease versus without the disease.
How much more likely a positive result is in disease vs no disease.
How much less likely a negative result is in disease vs no disease.
- LR+ > 10: strong “rule-in” effect
- LR+ 5–10: moderate rule-in
- LR+ 2–5: small-to-moderate rule-in
- LR− 0.1–0.2: moderate-to-strong “rule-out” effect
- LR− < 0.1: strong rule-out
2) Bayes’ theorem in odds form (what ProbID does)
ProbID updates odds, not probabilities, because odds update by simple multiplication.
When multiple independent findings are selected, ProbID multiplies their likelihood ratios to create a combined LR. This is convenient, but assumes conditional independence—correlated findings can overestimate certainty.
3) Worked example (step-by-step)
Suppose a test has Sensitivity = 0.80 and Specificity = 0.90. And your patient’s pretest probability is 20%.
Same pretest probability (20%), but use LR− instead:
4) Decision Layer: How Harms and Thresholds Are Computed
ProbID now includes a decision layer that estimates whether to observe, test further, or treat now, based on post-test probability.
Harms are auto-estimated from:
- Syndrome-specific baseline harm pair
- Incremental adjustments from selected high-impact findings
In the app, each baseline and increment includes a literature anchor shown in the expanded harm panel.
Current implementation is a transparent heuristic, not a validated utility model.
Once harms are estimated, treatment threshold is calculated as:
MVP uses:
- If post-test p ≤ P(observe): Observe/monitor
- If P(observe) < post-test p < P(treat): Pursue further testing
- If post-test p ≥ P(treat): Treat now
The harm model is configurable in lib/probidDecision.ts.