← All posts

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

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

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.

Comments

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

Sign in to comment

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