43 nations, 16 events, k-means and PCA

Clustering countries by where their elite athletes score

43 nations sort into five athletics archetypes

A medal table counts the top three in each event and nothing behind them. Scoring all 6,400 marks in the 2023 and 2024 World Athletics top-100 lists in WA points puts a shot put and a 5000 m on one scale, and gives each nation a strength score in five discipline groups. On those scores 43 nations fall into five shapes, from Kenya's distance-only profile to the American one, which is the strongest in three groups and far from everyone else on the map.

6,400

Performances: top 100 per event, 16 events, men and women, 2023 and 2024.

5

K-means archetypes over 43 nations and five discipline groups: sprints, middle distance, distance, jumps, throws.

78%

Of the variance on two principal components: overall depth (49%) and field events against endurance (29%).

5.0

USA score on PC1. Great Britain is next at 2.8.

At a glance

Question
Which countries are strong in which athletics disciplines, and do their profiles fall into types?
Data
6,400 marks, the World Athletics top 100 per event in 16 events, men and women, 2023 and 2024. 43 nations qualify for a profile.
Method
Mean of each nation's top five WA scores in five discipline groups, z-scored. K-means (k = 5) for archetypes, PCA for the map.
Check
No holdout, and k = 5 is set in the code with no selection test. Rerunning k-means on the committed table with scikit-learn 1.6 keeps 40 of 43 nations in their archetype; the in-browser PCA reproduces the 49% and 29% shares.
Result
Five archetypes of 6, 3, 10, 16 and 8 nations. Two components hold 78% of the variance. The USA scores 5.0 on PC1; Great Britain is next at 2.8.
Limitation
Absolute strength, not per capita. A nation absent from a group gets the group minimum, an imputation that pulls the specialist clusters apart.

From tables/national_profiles.csv and analyze.py.

The idea

One scale for every event

Seconds, meters and placings don't add up across events, so a country strong in the hammer can't be compared with one strong in the 100 m on raw marks. Every mark in the top lists carries a World Athletics score meant to be comparable across events, and that is the currency here. Whether the tables are fair is a separate question, which I tested in the scoring-tables audit.

A nation's strength in a group is the mean of its five best WA scores there. It needs at least three performances in a group to get a score, presence in three groups and 12 performances overall to be profiled. That leaves 43 nations.

The map

Five archetypes and one outlier

K-means (k = 5) on the z-scored strength matrix gives the groups, and PCA flattens the five scores onto two axes. Going right is overall depth. Going up is field-event strength, and going down is endurance. Pick a nation, or hover the map, to see its five lanes; highlight an archetype to see who is in it.

    PCA of the 43 z-scored profiles, computed in your browser from tables/national_profiles.csv. It reproduces the 49% and 29% shares and the PC1 scores (USA 5.0, Great Britain 2.8) of analyze.py.

    USA

    Dot: the nation's strength (mean of its top five WA scores). Black tick: its archetype's average. Each lane runs from the lowest to the highest of the 43 nations. Grey italic values are fills for a group with no score.

    The USA scores 5.0 on the first component. Great Britain is next at 2.8 and the rest of the all-rounders sit between 1.7 and 2.2. The American summed strength (6,412) is 242 points ahead of Great Britain's, while Great Britain and the Netherlands are 34 apart. Kenya, Uganda and Ireland sit lowest on the second axis. As a cluster they score highest of the five on middle distance and distance and lowest on jumps and throws.

    The heat sheet

    All 43 nations, five groups

    The matrix the clusters are computed from. Specialists show up as one or two strong cells in a row; all-rounders as rows with no weak cells. Sort by any column, or pick a nation to load it on the map.

    From tables/national_profiles.csv. Italic values equal the group minimum: a nation with no score in a group was filled with the lowest score of any profiled nation there. Each row's best group is in bold.

    • All-round powerhouses (6). USA, Great Britain, Netherlands, Italy, Jamaica, Canada. Above average in every group.
    • Distance specialists (3). Kenya, Uganda, Ireland. Highest on distance and middle distance, lowest of all clusters on jumps and throws.
    • Distance and middle powers (10). Australia, France, Germany, Norway, South Africa, Spain, Sweden, Japan, Belgium, Switzerland. Broad programs with an endurance lean.
    • Throw and jump powers (16). Poland, New Zealand, Cuba, China, Nigeria and eleven more. Slightly above average in the field and below average on the track.
    • Emerging or single-event (8). Bahamas, Hungary, Algeria, Trinidad and Tobago and four more. One group that stands out, such as sprints for the Bahamas or middle distance for Algeria, with little behind it.

    The names come from a rule in analyze.py that labels each cluster after its strongest groups relative to the other nations.

    Limitations

    What this doesn't show

    This measures how much elite strength a country has. How impressive that is for its size or wealth is a different question, and large countries do well on an absolute matrix. A per-capita or per-GDP view, where Jamaica and Norway would likely stand out, is left for a later version.

    Two modeling choices shape the result. Averaging the top five scores protects against one freak performance, but a country with a single world-beater in a group scores modestly there. And a nation absent from a group is filled with that group's minimum before z-scoring, which treats absence as no elite presence. That is an imputation, and it pulls the specialist clusters apart.

    Borderline assignments are not stable. Rerunning k-means on the committed table with scikit-learn 1.6 moves three of 43 nations: Germany and South Africa join the all-rounders and Mexico joins the emerging group. A re-fetch of the raw top lists also once gave different values from the committed table, and the cause was never found. The published numbers are the ones in this repository.

    How it was built

    Where the numbers come from

    Data
    World Athletics outdoor top lists, top 100 per event, scraped with mark, WA points and nationality
    Sample
    6,400 performances, 16 events, men and women, 2023 and 2024; 43 nations profiled
    Strength
    Mean of a nation's top five WA scores per discipline group, absent groups filled to the column minimum, then z-scored
    Models
    K-means (k = 5, scikit-learn) for archetypes; PCA for the two-axis map
    Output
    national_profiles.csv: each nation's five strength scores, total and archetype
    Built with
    Python, pandas, scikit-learn, matplotlib; the map, lanes and sheet on this page are plain SVG and JavaScript
    Companion
    Scoring-tables audit, which tests the points this analysis relies on

    Countries have shapes as well as rankings