In the image below you see a higher jumper using the modern-day Fosbury flop technique. Unlike athletes using older techniques like the scissors jump or the straddle technique so-called floppers go backwards over the bar backwards and land on their shoulders and back. But why is the proper technique so important if you want to become an Olympic gold medalist? Well, let’s have a look at the data.
I compiled a dataframe called df of all official world reocrds in men’s high jump. The data also include a variable called “style” that details which different techniques the athletes used to achieve these heights.
# list of all world reocrds
head(df)
## Date Record Day Month Year First Last Height Style
## 1 1912-05-18 2.00 18 05 1912 George Horine 1.80 Western
## 2 1914-05-02 2.01 02 05 1914 Edward Beeson NA Western
## 3 1924-05-27 2.03 27 05 1924 Harold Osborn 1.81 Western
## 4 1933-05-13 2.04 13 05 1933 Walter Marty NA Western
## 5 1934-04-28 2.06 28 04 1934 Walter Marty NA Western
## 6 1936-07-12 2.07 12 07 1936 Cornelius Johnson 1.91 Western
# plot world record over time
library(ggplot2 )
ggplot(df,aes(x=Date,y=Record)) +
geom_step() +
geom_point()
Note that I added a hypothetical data point in 2020. This height is equal to the current world record held by Javier Sotomayor who in 1993 cleared the record height of 2.45m.
Now let’s use some colors to indicate the different jumping techniques. We can clearly see how athletes first used the Western roll, then switched to the straddle technique and finally the Fosbury flop. And of course we can already see how new heights were achieved with these innovations in jumping style.
# use different colors for different techniques
ggplot(df,aes(x=Date,y=Record)) +
geom_step() +
geom_point(aes(col=Style))
The effectiveness of the new techniques becomes even more staggering when adjust for the athletes’ body heights. Modern-day athletes are much taller than athletes a century ago. So let’s see how the world record would have evolved, had jump heights always been adjusted for the body height of the jumper by dividing the height of the jump by the jumper’s body height.
# adjusted world records
nrow(df) # old number of world records
## [1] 41
df$AdjRec <- df$Record/df$Height
df <- df[!is.na(df$AdjRec),] # remove missings
nrow(df) # new number of world records
## [1] 37
# remove "unfair" world records
keepwhile = T
while(keepwhile) {
for(i in 2:(nrow(df)-1)) {
if(i == nrow(df)-1) keepwhile = F
if(df$AdjRec[i] < df$AdjRec[i-1]) {
df <- df[-i,]
break
}
}
}
# plot
ggplot(df,aes(x=Date,y=AdjRec)) +
geom_step() +
geom_point(aes(col=Style))