Incidence, Prevalence and the Right Denominator: The Epidemiology Beneath Cost-of-Illness and Markov Models

On this page
อ่านฉบับภาษาไทย (Thai version)
Abstract
A provincial health office has one chronic disease and three questions about it. What will care cost this year? What would a programme that halves new cases be worth? And what yearly chance of a complication should a planning model use? Each answer needs a count with the right denominator: who could have had the event, and for how long they were watched. This article follows one illustrative province of 1,000,000 people, where 2 new cases arise for every 1,000 person-years lived free of the disease and each patient stays ill for 5 years. It shows why 1,980 new cases a year keep 9,901 people living with the disease, and why a survey of today's patients over-represents long illness. The province then gets two bills: 198.0 million THB of care this year, and 181.4 million THB, in today's money, for the people who fall ill this year. Finally, a five-year risk of 30% becomes a one-year chance of 6.89%, not 6.00%.
One province, three questions
A provincial health office plans care for one chronic disease in a province of 1,000,000 people. Its register shows that about 2 people fall ill for every 1,000 disease-free residents followed for a year. A patient lives with the disease for 5 years on average, then recovers or dies. A year of care costs 20,000 THB per patient.
Three questions land on the same desk this month. The finance team asks what care for this disease will cost this year. The prevention team asks how much future care would be avoided if a programme halved new cases. The planning analyst has a published five-year complication risk of 30% and needs a chance per year.
All three questions concern the same disease and the same people, yet each needs a different count. A common shortcut takes "the number of cases" from a register and multiplies it by a price. It never asks which people were counted, or over what time. That is the question this article answers, with illustrative numbers rather than Thai data.
Who was counted, and for how long
Read first on this site. These three posts teach the measures in full; this section keeps only what the province's bill and its planning model need.
- Understanding Risk in Clinical Epidemiology: Incidence, Prevalence, and Comparative Measures
- Rate-Based Measures in Clinical Research: Cumulative Incidence vs Incidence Rate
- Incidence Rate [IR] and Incidence Rate Ratio [IRR]: Analysis of Rates in Clinical Epidemiology Using Stata
Start with the simplest count. Follow 1,000 residents who are free of the disease for one full year, and about 2 of them fall ill. The share of a group that develops the disease within a stated time is called the risk. Here it is 2 in 1,000 over one year; without the words "over one year", a risk means nothing.
Real registers are rarely that tidy. People move away, some die, and anyone who falls ill can no longer fall ill for the first time. So we add up the time each person was watched while still free of the disease, a total called person-time. An incidence rate divides the new cases by that person-time: here, 2 new cases per 1,000 person-years.
A rate is a speed among the people who can still fall ill, not a share of people, so a rate is never called a risk. The two keep their names when groups are compared. One group's risk divided by another's is a risk ratio; one group's rate divided by another's is an incidence rate ratio. The next article works out both from one cohort and shows why they differ, in Design, Model and Estimand: What Each Study Design Can Actually Estimate.
The register also lists everyone living with the disease today: 9,901 people. Divided by everyone alive today, 1,000,000, that is 0.99%, and this share is called the prevalence [1]. It holds people who fell ill this year and people who fell ill four years ago. It is a snapshot of one moment, not a speed.
Why 1,980 new cases a year fill a pool of 9,901
Think of the 9,901 patients as water in a tank. New cases flow in through a tap, and recovery and death drain it. The level stays put when as many people leave each year as arrive.
How many arrive? Only the 990,099 people who are free of the disease can fall ill, so new cases are 990,099 times 2 per 1,000, which is 1,980 a year. Using all 1,000,000 people as the denominator would give 2,000, counting the 9,901 who are already ill as if they could fall ill again. The error is small here because the disease is rare; for a common disease it grows with the pool.
How many leave? Each patient stays 5 years on average, so the pool empties at a rate of about 0.2 per patient-year, close to 1 in 5 of the pool leaving each year: 9,901 divided by 5 is 1,980. In equals out, so the pool holds steady at 9,901. This balance is called a steady state.
The same balance can be written as a formula. Compare the people with the disease to the people without it: 9,901 to 990,099, a ratio of 1 to 100 once rounded. Incidence times mean duration gives the same ratio: 2 per 1,000 times 5 years is 10 per 1,000, or 1 to 100 again.
With $P$ for the prevalence as a fraction, $I$ for the incidence and $\bar D$ for the mean duration, the steady state is $P/(1-P)=I\bar D$ [2]. When a disease is rare, $1-P$ is close to 1, so $P\approx I\bar D$ is close enough.
The formula carries a warning for planners. If a new treatment kept patients alive, and ill, for 10 years instead of 5, the same rate of new cases would fill a pool of 19,608. A rising prevalence can mean better survival, not more disease.
Who you meet in the pool
The pool also distorts who you meet in it. Suppose half of each year's new patients are ill for 1 year and half for 9 years, still 5 years on average. A long illness stays in the pool 9 times as long, so among today's 9,901 patients, 9 of every 10 have the long kind.
Short illnesses end quickly, by recovery or early death. They are half of all new patients but only 1 in 10 of today's pool, so a survey of current patients sees mostly long, stable illness and almost misses the short ones and their costs [3]. This is called length bias. To learn what a new patient costs, follow patients from diagnosis, an incident cohort, rather than sampling whoever happens to be ill today.
# One province, illustrative inputs: who is in the pool, and why (short and long are years ill).
population <- 1000000; incidence <- 2 / 1000; duration <- 5; short <- 1; long <- 9
pool <- function(stay) population * incidence * stay / (1 + incidence * stay)
existing <- pool(duration); disease_free <- population - existing
cat("Living with the disease today:", round(existing), "\n")
cat("Prevalence (%):", formatC(100 * existing / population, format = "f", digits = 2), "\n")
cat("Free of the disease, so able to fall ill:", round(disease_free), "\n")
cat("New cases a year, disease-free x incidence:", round(disease_free * incidence), "\n")
cat("New cases a year if everyone is counted:", population * incidence, "\n")
cat("Rate of leaving the pool, 1 / duration (per patient-year):", 1 / duration, "\n")
cat("Leaving the pool a year, existing / duration:", round(existing / duration), "\n")
cat("Living with it if each stays 10 years:", round(pool(10)), "\n")
# half the new cases are ill for 1 year, half for 9 years: still 5 years on average
cat("Long illnesses in today's pool (%):", sprintf("%.2f", 100 * long / (short + long)), "\n")
Living with the disease today: 9901
Prevalence (%): 0.99
Free of the disease, so able to fall ill: 990099
New cases a year, disease-free x incidence: 1980
New cases a year if everyone is counted: 2000
Rate of leaving the pool, 1 / duration (per patient-year): 0.2
Leaving the pool a year, existing / duration: 1980
Living with it if each stays 10 years: 19608
Long illnesses in today's pool (%): 90.00
Two bills from the same province
Now the money. The finance team's question is about this calendar year, and every patient in the pool needs care this year, whenever they fell ill. So the answer prices the pool: 9,901 patients at 20,000 THB each. This is called a prevalence-based cost of illness, and it is the right number for a budget or a service plan.
The prevention team's question is different. A programme that stops someone falling ill this year saves the care that person would have needed over the next 5 years. So it needs the future costs of this year's 1,980 new patients, added up over their illness. This is called an incidence-based cost of illness [4].
Those future payments are not worth as much as money spent today. Discounting is converting a future cost into its value today, dividing it by 1 plus the discount rate for each year away. At 3% a cost of 1,834 THB due in year 3 is worth 1,678 THB today; the full explanation is in Whose Cost, in Which Year? Perspective, Opportunity Cost, Inflation and Discounting.
The province uses the same 3% and assumes each year's care is paid at the end of that year. A payment due in 1 year is then worth 1 divided by (1 + 3%), or 0.971 of a payment today. One due in 2 years is divided twice, 0.943, and so on down to 0.863 for year 5; these fractions are the weights. The worked example below uses them.
Both questions, worked
Take the pool of 9,901 patients, the 1,980 new patients a year and the five weights from the sections above. Round only at the end.
-
This year's bill: every patient in the pool, one year of care
\[ 9901\times 20000 \]
The bill is 198.0 million THB. This is the prevalence-based answer.
-
One year of care for this year's new patients
\[ 1980\times 20000 \]
The 1,980 new patients need 39.6 million THB of care in each year of their illness.
-
Add the five weights
\[ 0.971+0.943+0.915+0.888+0.863=4.580 \]
Together they are worth 4.580 years of care paid today, not 5, because later payments count for less.
-
The new patients' future in today's money
\[ 1980\times 20000\times 4.580 \]
Their 5 years cost 181.4 million THB. Without the weights they would cost 5 times 39.6, or 198.0 million THB, the same as this year's bill.
Result: If the programme halved new cases, each year's new patients would need 90.7 million THB less care over their illness. This year's bill of 198.0 million THB would fall only slowly, because the 9,901 people already ill still need care and the pool takes about 5 years to drain.
Equal yearly payments over a fixed 5-year illness keep the arithmetic simple; real costs are often higher in the first year. Avoided future care is not cash saved this year, and the programme's own cost is counted separately.
# Two cost questions for the same province, illustrative inputs.
population <- 1000000; incidence <- 2 / 1000; duration <- 5; annual_cost <- 20000; discount <- 0.03
prevalence <- incidence * duration / (1 + incidence * duration)
new_cases <- population * (1 - prevalence) * incidence; yearly_care <- new_cases * annual_cost
weights <- (1 + discount)^-(1:duration); thb_m <- function(x) sprintf("%.1f", x / 1e6)
cat("This year's bill, all patients (THB m):", thb_m(population * prevalence * annual_cost), "\n")
cat("One year of care for this year's new cases (THB m):", thb_m(yearly_care), "\n")
cat("Their five years, not discounted (THB m):", thb_m(yearly_care * duration), "\n")
cat("1,834 THB due in year 3, worth today at 3% (THB):", round(1834 / (1 + discount)^3), "\n")
cat("Weight of each year's payment:", formatC(weights, format = "f", digits = 3), "\n")
cat("Sum of the weights:", formatC(sum(weights), format = "f", digits = 3), "\n")
cat("Their five years, discounted (THB m):", thb_m(yearly_care * sum(weights)), "\n")
cat("Avoided each year if new cases halve (THB m):", thb_m(yearly_care * sum(weights) / 2), "\n")
This year's bill, all patients (THB m): 198.0
One year of care for this year's new cases (THB m): 39.6
Their five years, not discounted (THB m): 198.0
1,834 THB due in year 3, worth today at 3% (THB): 1678
Weight of each year's payment: 0.971 0.943 0.915 0.888 0.863
Sum of the weights: 4.580
Their five years, discounted (THB m): 181.4
Avoided each year if new cases halve (THB m): 90.7
From a five-year risk to a one-year step
Read first on this site. This post explains in full how an average event rate differs from the rate at each moment; here we need only the step from a five-year risk to a one-year chance.
The planning analyst wants to follow the 1,980 new patients year by year. The model sorts them into a few health states: free of the complication, with the complication, and dead. It moves people forward in fixed steps of one year, called cycles, and at each cycle a share of each state moves on. For now we leave the dead state aside and come back to it at the end.
So the model needs a one-year chance. The published study followed new patients and found that 30% had the complication within 5 years.
Some papers report odds instead of a risk. Odds divide the people who had the event by the people who did not: 30 with the complication and 70 without give 30 divided by 70, or 0.429. Odds are not a share of people, so 0.429 is never a chance; dividing the odds by 1 plus the odds gives back the risk of 0.30.
The tempting shortcut divides by five, 6.00% a year, and it fails its own check when run forward. In year 1, 6.00% of the patients get the complication. In year 2 the 6.00% applies only to those still free of it, a smaller group, and so on each year. After 5 years only 26.61% have had the complication, not the 30% the study reported.
The fix keeps that shrinking group in view. Suppose the same share of the still-free patients stays free each year. After 5 years 70% are still free, so that yearly share, multiplied by itself five times, must give 70%. It is 70% to the power 1/5: 93.11% stay free each year, so the one-year chance is 6.89%.
Behind that one-year chance sits a speed, at each moment, at which still-free patients develop the complication; here it happens to stay constant. It is called the hazard (the rate at each moment among those still free of the event), and here it is $-\ln(1-0.30)/5=0.071$ per year [5]. Like the incidence rate, the hazard is a rate per person-year, not a share of people; the logarithm only undoes the yearly multiplying. Turning the unrounded hazard $r$ back with $1-e^{-r}$ gives the same 6.89% (the rounded 0.071 would not), and 6.89% a year for 5 years gives back exactly 30.00%.
The hazard is useful because a cycle need not be a year. With a constant hazard $r$ and a cycle of length $t$, the chance per cycle is $p=1-e^{-rt}$; keep $r$ and $t$ in the same time unit and use the unrounded value. In the first one-year cycle, 136 of the 1,980 new patients move into the complication state.
# A five-year risk turned into a one-year chance; constant speed, no death from other causes.
risk_5y <- 0.30; years <- 5; new_cases <- 1980
pct <- function(p) formatC(100 * p, format = "f", digits = 2)
shortcut <- risk_5y / years; odds <- risk_5y / (1 - risk_5y)
kept <- (1 - risk_5y)^(1 / years); hazard <- -log(1 - risk_5y) / years
cat("Odds of the complication by year 5:", formatC(odds, format = "f", digits = 3), "\n")
cat("Shortcut, risk divided by years (%):", pct(shortcut), "\n")
cat("Five-year risk the shortcut gives back (%):", pct(1 - (1 - shortcut)^years), "\n")
cat("Share kept free each year (%):", pct(kept), "\n")
cat("One-year chance (%):", pct(1 - kept), "\n")
cat("Hazard, the constant speed (per year):", formatC(hazard, format = "f", digits = 3), "\n")
cat("Five-year risk the one-year chance gives back (%):", pct(1 - kept^years), "\n")
cat("New patients with it after the first year:", round(new_cases * (1 - kept)), "\n")
Odds of the complication by year 5: 0.429
Shortcut, risk divided by years (%): 6.00
Five-year risk the shortcut gives back (%): 26.61
Share kept free each year (%): 93.11
One-year chance (%): 6.89
Hazard, the constant speed (per year): 0.071
Five-year risk the one-year chance gives back (%): 30.00
New patients with it after the first year: 136
Why the model needs flows, not prevalence
The model does not need the prevalence; it needs the flows. Here they are 2 new cases per 1,000 person-years in, and about 1 in 5 out each year. Prevalence, the 0.99%, only tells you how many patients sit in each state on the first day, when a model starts from today's population rather than from new patients.
Now back to the dead state: the 6.89% assumed that nobody dies of something else first. A patient who dies of a stroke in year 2 can never have the complication; a death that removes the chance of the event like this is called a competing risk. If such patients are counted as if they had merely left the study, and might still have had the complication, the complication risk looks higher than it is [6]. The article on competing risks, Why 1 Minus Kaplan-Meier Overstates Risk When Patients Can Die First, shows how to count them.
Three ways the denominator goes wrong
-
Visits counted as new cases
Each of the 9,901 patients makes several claims a year. Counting claims, or everyone with a claim, as new cases inflates the 1,980 and makes prevention look more valuable.
Fix: In a Thai register or claims file, count people, not visits. Call someone a new case only if they had no claim for this disease in, say, the previous 2 years (a look-back period). A count of new cases is not yet a rate: divide it by the person-time of the people who could have fallen ill.
-
Today's patients stand in for new ones
9 of every 10 patients in today's pool have the long illness, so their costs say little about the short illnesses that are half of all new patients.
Fix: Take new-patient costs from patients followed from diagnosis.
-
Avoided future care booked as this year's cash
Halving new cases avoids 90.7 million THB over the illness of each year's new patients, yet this year's bill of 198.0 million THB falls only slowly, because the 9,901 people already ill still need care.
Fix: Project spending year by year, and add the programme's own cost.
Glossary
- Risk (ความเสี่ยง)
- The share of a group that develops the event within a stated time, such as 2 in 1,000 over one year.
- Person-time (เวลาติดตามรวม)
- The time people were watched while still able to have the event, added up person by person.
- Incidence rate (อัตราอุบัติการณ์)
- New cases divided by person-time, such as 2 per 1,000 person-years.
- Incidence rate ratio (อัตราส่วนอัตราอุบัติการณ์)
- One group's incidence rate divided by another's: a ratio of speeds, never reported as a risk ratio.
- Prevalence (ความชุก)
- Everyone living with the disease at one moment divided by everyone alive then, such as 0.99%.
- Steady state (ภาวะคงตัว)
- A pool that holds its level because as many people leave each year as enter.
- Length bias (อคติจากความยาว)
- Long illnesses are over-represented among today's patients because they stay in the pool longer.
- Incident cohort (กลุ่มผู้ป่วยรายใหม่)
- Patients followed from diagnosis, so short and long illnesses appear in their true shares.
- Odds (ออดส์)
- The people with the event divided by the people without it, such as 30 to 70, or 0.429.
- Cycle (รอบ)
- The fixed time step a model uses to move people between health states; one year here.
- Hazard (ฮาซาร์ด)
- The speed, at each moment, at which an event happens among people still free of it.
- Competing risk (ความเสี่ยงแข่งขัน)
- An event, such as death from another cause, that stops the event of interest from happening.
References
- Noordzij M, Dekker FW, Zoccali C, Jager KJ. Measures of disease frequency: prevalence and incidence. Nephron Clin Pract. 2010;115(1):c17-c20. doi:10.1159/000286345
- Alho JM. On prevalence, incidence, and duration in general stable populations. Biometrics. 1992;48(2):587-592. doi:10.2307/2532312
- Zelen M, Feinleib M. On the theory of screening for chronic diseases. Biometrika. 1969;56(3):601-614. doi:10.1093/biomet/56.3.601
- Tarricone R. Cost-of-illness analysis. What room in health economics? Health Policy. 2006;77(1):51-63. doi:10.1016/j.healthpol.2005.07.016
- Fleurence RL, Hollenbeak CS. Rates and probabilities in economic modelling: transformation, translation and appropriate application. Pharmacoeconomics. 2007;25(1):3-6. doi:10.2165/00019053-200725010-00002
- Putter H, Fiocco M, Geskus RB. Tutorial in biostatistics: competing risks and multi-state models. Stat Med. 2007;26(11):2389-2430. doi:10.1002/sim.2712
The series, in learning order
- Health Economics Series Guide: Read the Evidence Before the Costs
- Incidence, Prevalence and the Right Denominator: The Epidemiology Beneath Cost-of-Illness and Markov Models (this article)
- Design, Model and Estimand: What Each Study Design Can Actually Estimate
- Risk Ratio, Odds Ratio, Risk Difference and NNT: One 2×2 Table, Four Answers
- The Hazard Ratio Is Not a Risk Ratio: Proportional Hazards, Restricted Mean Survival Time and Model Inputs
- Chance, Bias and Confounding: Why an Association Is Not Yet a Treatment Effect
- Beyond the Evidence Pyramid: GRADE Certainty and Choosing Effectiveness Inputs for Economic Models
- From Sensitivity to Cost per Case Detected: Predictive Values, Prevalence and the Economics of Screening
- Whose Cost, in Which Year? Perspective, Opportunity Cost, Inflation and Discounting
- QALY, DALY and the Utilities Behind Them: What Is Actually Being Measured
- ICER, Dominance and the Cost-Effectiveness Plane: Reading the Thai Threshold of 160,000 Baht per QALY
- Decision Trees, Markov Cohorts and Probabilistic Sensitivity Analysis: How a Model Turns Evidence into a Decision
- Cost-Effective Is Not Affordable, and Efficient Is Not Fair: Budget Impact and Equity
- Parameter Sourcing, Reference Cost Lists and Utility Catalogues When Local Data Are Sparse
- Early Health Technology Assessment, Headroom Pricing and Benefit-Package Decisions
- Communicating Health Economic Evidence: From Model Outputs to Policy Briefs
Key takeaways
- An incidence rate is new cases over person-time, 2 per 1,000 person-years: a speed, never a risk.
- Prevalence is inflow times stay: 1,980 new cases a year, each ill for 5 years, keep 9,901 in the pool.
- This year's bill prices the pool, 198.0 million THB; prevention is valued on new patients, 181.4 million THB today.
- A five-year risk of 30% is 6.89% a year, not 6.00%, because each year only those still free can fall ill.
- A model runs on flows, 2 per 1,000 person-years in and 1 in 5 out a year; the 0.99% prevalence only sets the start.
Related in the wiki: Design, Model and Estimand: What Each Study Design Can Actually Estimate · The Hazard Ratio Is Not a Risk Ratio: Proportional Hazards, Restricted Mean Survival Time and Model Inputs · Decision Trees, Markov Cohorts and Probabilistic Sensitivity Analysis: How a Model Turns Evidence into a Decision · Cost-Effective Is Not Affordable, and Efficient Is Not Fair: Budget Impact and Equity · Rate-Based Measures in Clinical Research: Cumulative Incidence vs Incidence Rate · Why 1 Minus Kaplan-Meier Overstates Risk When Patients Can Die First · Understanding Risk in Clinical Epidemiology: Incidence, Prevalence, and Comparative Measures · Incidence Rate [IR] and Incidence Rate Ratio [IRR]: Analysis of Rates in Clinical Epidemiology Using Stata · Incidence Rate vs Hazard: Understanding Average and Instantaneous Event Rates in Survival Analysis