← All posts

How Clinical Scores Are Built: From Logistic Coefficients to Point Systems

Clinical Epidemiology ResearchUniqcret doctor knowledgesMethodology and Research DesignDiagnosis [Methodology]Prognosis [Methodology]
On this page

1. Where does a clinical score come from?

Most modern scores come from a prediction model, usually:

For a logistic model, the development team fits:

logit { P(Y=1) } = α + β1 X1 + β2 X2 + + βk Xk

Those βj are the true origin of the score. The score is just a simplified, rounded version of this equation.

Older scores (like the original Alvarado) were partly clinical judgment–based, but if you re-fit them with logistic regression, the same structure appears: each yes/no item contributes approximately a constant amount to the log-odds → that’s a “point”.


2. From coefficients (β) to item points

The key idea:

Bigger β → stronger predictor → more points.Smaller β → weaker predictor → fewer points.

But clinicians don’t want to calculate log-odds. So we rescale all β’s into a small integer points system.

Step 2.1 – Fit the logistic model

In development data:

logit disease fever rlq_pain rebound leukocytosis neutrophilia nausea migration

Stata outputs something like:

Variableβ (Coefficient)
Fever0.40
RLQ pain0.90
Rebound0.75
Leukocytosis1.10
Neutrophilia0.60
Nausea0.45
Migration0.55
Intercept (α)−3.20

Each β is the log of an odds ratio, but for scoring, we only care about relative sizes.

Step 2.2 – Choose a reference β

Pick a reference coefficient βref. Common practice:

Example: smallest meaningful β ≈ 0.40 (fever).

So set:

βref = 0.40

Step 2.3 – Compute relative weights and round

Compute:

wj = βj βref

For our example:

Variableββ / β_refApprox points
Fever0.401.001
RLQ pain0.902.252
Rebound0.751.882
Leukocytosis1.102.753
Neutrophilia0.601.502
Nausea0.451.131
Migration0.551.381

Then round to the nearest integer → those become the item points.

That's exactly your idea: "Divide all other coefficients by the smallest coefficient and round the results to the nearest whole number." - yes, conceptually correct (with a bit of care).

Sometimes we also multiply by a small constant (e.g. 2 or 5) before rounding to avoid too many zeros. But core logic is the same.

Step 2.4 – Special cases: continuous and protective predictors


3. From item points to total score

Once points per predictor are fixed, the total score is simply:

Scorei = j ( pointsj × Xji )

Example patient:

Total:

Score=1+2+0+3+2+0+1=9

That’s exactly what Alvarado/Wells do: sum of item points.

Behind the scenes, that score is approximating:

α + β1 X1 + + βk Xk

but expressed in “nice” integers.


4. From total score to estimated risk

There are two ways to connect score → risk:

4.1 Model-based (using regression)

You can treat the score itself as a predictor and fit:

logit disease score

Then:

logit { P(Y=1) } = a + b × Score

For a given score value S:

  • log-odds = a + bS
  • probability = ea+bS 1 + ea+bS

This maps the integer score back to a predicted probability.

4.2 Empirical (using observed data)

In the development cohort:

tabulate score disease, row

You get:

ScorenDisease = 1Risk (%)
01.2%
12.5%
24.5%
985%
1092%

This gives a direct lookup table: “if score = S, risk is about X%”.

Clinical papers often present both:


5. How do we choose cut-off ranges (low / intermediate / high)?

Now the second part of your question:How do we decide 0–4 = low, 5–6 = intermediate, 7–10 = high, like Alvarado?

It’s a combination of data and clinical judgment.

Step 5.1 – Explore risk across score values

First, see the risk pattern:

tabulate score disease, row

Example (mock numbers):

ScoreRisk of disease
0–21–3%
3–45–10%
5–620–40%
7–860–80%
9–1085–95%

Already, you see natural groupings: low, middle, and high risk.

Step 5.2 – Evaluate performance at candidate cutoffs

To pick thresholds, you check sensitivity, specificity, etc. at different cutoffs.

Example for “high risk = score ≥ 7”:

gen high = score >= 7
tabulate high disease, row col

You can try several cutoffs: ≥4, ≥5, ≥6, ≥7, etc., and for each calculate:

Or more systematically:

roctab disease score

This gives the ROC curve and statistics at all possible cutoffs.

Step 5.3 – Choose clinically meaningful ranges

For a three-level categorization (low / intermediate / high):

The logic is usually:

So final cutoffs like 0–4, 5–6, 7–10 are chosen, where:

There is no single “magic formula” for cutoffs.It’s always: data + ROC + clinical consequences.


6. Summary in plain words

“Are scores basically coming from coefficients?” ✅ Yes – if the score is model-based, the points are just a rescaled, rounded version of the β’s.And the ranges (0–4, 5–6, 7–10) are chosen to reflect clinically useful risk bands, guided by the data.

0
Message for International and Thai ReadersUnderstanding My Medical Context in ThailandRead more →Message for International and Thai ReadersUnderstanding My Broader Content Beyond MedicineRead more →

Comments

No comments yet. Be the first to share your thoughts.

Sign in to comment