sochi olympic stats: medal count

Summary

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
  4.  
  5. require(gridExtra)
  6. require(ggplot2)
  7.  
  8. # load data
  9. sochi = read.table('database.sochi.tab',sep="\t",header=T)
  10.  
  11. # create a theme function
  12. ggTheme <- function(...) theme(panel.background = element_rect(fill = "white", colour = NA), text = element_text(size=15))
  13.  
  14. # ignore any countries with no medals
  15. sochiFiltered = sochi[!(sochi$medals==0),]
  16.  
  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"])
  23.  
  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))
  29.  
  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()
  35. dev.new();print(p4)

-biafra
bahanonu [at] alum.mit.edu

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.

humanity's dirge
14 june 2021 | filugori

A short dirge that introduces one of the themes of Filugori, my planned book on man's conquest of space.[...]

satellite-based videos: eastern europe during the russia-ukraine conflict
30 november 2022 | satellite

To visualize the nighttime lights of Eastern Europe, with a focus on times before and after the ongoing Russia-Ukraine conflict, I updated [...]my geoSatView R code originally built to view forest fires in the west coast of the United States to use satellite data from VNP46A1 and other datasets collected from the Suomi NPP VIIRS satellite.

I then created higher-quality movies in MATLAB by using the VNP46A2 Black Marble dataset collected by the same satellite, which has reduced cloud and other artifacts due to additional data processing. This allowed me to quantitate a permanent reduction in nighttime lights within Ukraine (in line with my initial hypothesis) and identify a multi-stage reduction of nighttime lights in Kiev's outer neighborhoods/metropolitan area that was greater than that seen in the city core/center. This highlights the utility of public satellite data to quickly test hypotheses and visualize large-scale changes.

I will go over how the Black Marble dataset is collected and processed along with how I created the movies and the advantages/disadvantages of each data source.

Using this platform and codebase, in follow-up posts I will look at 2021 Texas power crisis during the winter storms, vegetation changes in deforested areas or after conservation efforts, and other events.

the graphical abstract, part 1
11 november 2012 | science

The graphical abstract is an effective way to convey a complex message in an eye pleasing format that is easily digested. I wanted to creat[...]e a neuroscience-based one as it would be an extension of my work with creating graphic designs and would take advantage of my current studies. From the initial, crowded to the final, clean abstract, I'll go through my thought process and provide links to useful resources.

©2006-2025 | Site created & coded by Biafra Ahanonu | Updated 21 October 2024
biafra ahanonu