sochi olympic stats: medal count


There have been several articles that re-order the medal count ranking by comparing medals to population or GDP, which then show small countries topping the charts. This analysis ignores some obvious facts: small countries are over-represented in the number of athletes they send and the relationship between athletes sent and medals is linear. I present a brief analysis to support and expand on these claims.

People often try to knock America and other large nations at the Olympics by changing up the medal chart to show medals per population or GDP (e.g. this Slate article). See the left panel of the below chart.

While these analysis often show small countries shooting to the top of the medal standings, they often ignore a glaring confound in the analysis: namely, each country can only send so many athletes to the Olympics regardless of their population, so there is an inherent bias toward small countries (Slovenia, Canada, etc.) that can send disproportionately more athletes per person than larger countries like the United State or China. For example, the middle and right panel of the below figure show the athletes per population and gdp ($billions). What is fairly obvious is that several small countries are massively over-represented (this way of showing it is slightly less intuitive, but visually easier to understand, than the inverse [population/athlete], which shows the same trend). This over-representation indicates that no matter if the USA or China won every medal they possibly could, they would never be able to reach the theoretical medals per capita that smaller countries obtain just by winning a few medals.

a look at various statistics for medal winning countries in the sochi 2014 winter olympics.

This leads me to the second graph, which shows the number of athletes sent to the games vs. the number of medals one. It is fairly linear relationship (R2 = 0.61, p-value = 2.22e-06, see best-fit line on plot below) that shows what one would expect: the more athletes sent, the more medals won. Significant positive/negative deviation from the relation indicates over/underachieving potential, e.g. the Netherlands is performing very well based on the number of athletes sent (mainly by dominating speed skating) while Switzerland is performing comparatively poorly. There is no obvious clustering of countries in the athlete v. medal chart of athletes per population (indicated below by the size of the point). Viewing the medal counts in this manner reduces the inherit biases when just looking at medals compared to GDP or population.

comparison of athletes sent to the sochi 2014 winter olympics and medals won.

This should give a quick overview of one way to look at data in the news more closely (i may update the post with more detailed analysis in the future). Further, given the wealth of programming languages and automation in today's world, this should be the bare minimum for reporters. But then again, that wouldn't attract eyeballs.

note: I have excluded countries that have not won any medals (as of Feb 19th, 2014) from the analysis. Due to this, i have set population and gdp for those countries to zero in the provided csv file.

update 2014.03.08 The medal count (total including gold, silver, and bronze) has been updated to reflect the final tallies. Graphics have been updated accordingly. The code has also been updated to include best-fit line in scatter plot.

Below is the data used and script run to do the analysis.

analysis csv file
download sochi.R

R / S+
  1. # looks at data from the sochi games
  2. # biafra ahanonu
  3. # 2014.02.19
  5. require(gridExtra)
  6. require(ggplot2)
  8. # load data
  9. sochi = read.table('',sep="\t",header=T)
  11. # create a theme function
  12. ggTheme <- function(...) theme(panel.background = element_rect(fill = "white", colour = NA), text = element_text(size=15))
  14. # ignore any countries with no medals
  15. sochiFiltered = sochi[!(sochi$medals==0),]
  17. # linear regression of athletes to medals
  18. fit = lm(sochiFiltered$medals ~ sochiFiltered$athletes)
  19. rSquared = summary(fit)$r.squared
  20. pVal = anova(fit)$'Pr(>F)'[1]
  21. fitIntercept = as.numeric(coef(fit)["(Intercept)"])
  22. fitSlope = as.numeric(coef(fit)["sochiFiltered$athletes"])
  24. # look at various statistics
  25. p1 = ggplot(sochiFiltered,aes(country,athletes/population))+geom_bar()+coord_flip()+ggTheme()
  26. p2 = ggplot(sochiFiltered,aes(country,athletes/gdp))+geom_bar()+coord_flip()+ggTheme()
  27. p3 = ggplot(sochiFiltered,aes(country,medals/population))+geom_bar()+coord_flip()+ggTheme()
  28. print(grid.arrange(p3, p1, p2, ncol=3, nrow=1))
  30. # compare athletes sent to medal count, jitter labels to allow better placement
  31. p4 = ggplot(sochiFiltered,aes(athletes,medals,label=country,color=country,size=athletes/population))+
  32. geom_abline(slope = fitSlope, intercept = fitIntercept, size=1.5, alpha = 0.3)+
  33. geom_text(position=position_jitter(h=1,w=1),size=3)+geom_point()+
  34. ggTheme()



comments powered by Disqus

more articles to enjoy:

from the archives: declaration of independence, internet edition
11 july 2013 | america

A revised Declaration of Independence I did awhile ago (i.e. high school) for a writing class. It is slightly a mockery of the style of wri[...]ting sometimes used back then, e.g. finding unnecessarily complicated ways of saying a simple concept; long, ponderous sentences; and an abuse of the Capital.

archive everything!
01 october 2012 | notes

Archived everything in my inbox. It's awesome. Continues my general trend of simplifying. Logging off websites, only checking the news for [...]brief periods, and focusing on a core set of hobbies. Eliminating distractions and reducing information overload are doing wonders to fight off stress and keep me humming along.

social chair spring 2012
27 december 2011 | psk

My terms as social chair during Fall 2011 went quite well, but there were several things I was unsatisfied with. This presentation outlines[...] several different areas I would like to see improved.

¿qué es la calle?
24 may 2013 | short story | spanish

Había terminado y salé para mi cocina. Tenía hambre pero este día no había comida dentro de mi despensa. Me fui y caminé hacienda[...] la Tport—una máquina que puede transportar una persona a otro lugar sin energía y tiempo. Cuando entré la máquina, toqué algunos botónes y esperé. Pero nada ocurrió y lo hice las mismas acciones otra vez—y nada ocurrió.

How would the disappearance of streets affect the social fabric? This short story briefly (in castellano!) explores a world in which instantaneous, free transport is possible. Meant mainly to practice my spanish, i plan to follow-up with a more detail story in the future.

©2006-2017 | biafra ahanonu | updated 19 june 2017
biafra ahanonu