A história das Olimpíadas através dos dados

Luísa Gisele Böck

Fevereiro de 2022

knitr::include_graphics("img/2020-tokyo-aros-olimpicos-fogos-de-artificio.webp")

Fotografia dos aros olímpicos, de fogos de artifício e do Estádio Nacional do Japão durante a noite

1 Introdução

Após 16 dias de competição, no dia 20 de fevereiro de 2022, Pequim 2022 oficialmente chegou ao fim. As “Olimpíadas Modernas” abrangem os Jogos Olímpicos de Atenas, em 1896, à Pequim, em 2022. Mais do que apenas um campeonato mundial multiesportivo quadrienal, as Olimpíadas são uma lente da qual é possível compreender a história do mundo, como as mudanças na dinâmica do poder geopolítico, o empoderamento das mulheres, a evolução dos valores sociais, entre outros.

2 Importação dos dados

olimpiadas <-
  readr::read_csv(
    here::here("dados", "olympics-1896-2016.csv"),
    col_types = readr::cols(
      ano = readr::col_integer(),
      edicao = readr::col_factor(levels = c("Summer", "Winter")),
      id_atleta = readr::col_character(),
      sexo = readr::col_factor(levels = c("M", "F")),
      idade = readr::col_integer(),
      altura = readr::col_double(),
      peso = readr::col_double(),
      medalha = readr::col_factor(levels = c("Gold", "Silver", "Bronze"))
    )
  ) |>
  janitor::clean_names()

Os dados utilizados neste trabalho foram retirados do site Kaggle, e contemplam as Olímpiadas de Inverno e Verão, da Era Moderna, entre os anos de 1896 e 2016. Dessa forma, excetuam-se os três últimos eventos: as Olímpiadas de Inverno PyeongChang 2018 e Pequim 2022, e a Olímpiada de Verão Tóquio 2020 que ocorreu no ano de 2021, em razão da Pandemia de Coronavírus.

A base de dados está dividida em 15 colunas – que representam o ano, edicao, cidade_sede, pais, delegacao, equipe, id_atleta, nome_atleta, sexo, idade, altura, peso, esporte, evento, e medalha – e 269718 linhas que apresentam todos os atletas que participaram de cada um das edições entre os anos de 1896 e 2016.

3 Número de atletas, países e modalidades ao longo dos anos

# conta o número de atletas, países e modalidades participantes das Olímpidas.
# excluíndo as competições de arte (Art Competitions).

atletas_equipes_modalidades <- olimpiadas |>
  dplyr::filter(esporte != "Art Competitions") |>
  dplyr::group_by(ano, edicao) |>
  dplyr::summarise(
    atletas = length(unique(id_atleta)),
    equipes = length(unique(delegacao)),
    modalidades = length(unique(evento))
  ) |>
  dplyr::ungroup() 

Os primeiros Jogos Olímpicos da Era Moderna foram sediados no Estádio Panathinaiko, em Atenas, no ano de 1896. Nestes jogos, 176 atletas de 12 competiram em 43 modalidades. 120 anos depois, nas Olimpíadas de Verão Rio 2016, 11179 atletas de 207 diferentes nações competiram nas 306 modalidades.

Há dois longos períodos sem jogos, entre 1912-1920 e 1936-1948, correspondentes, respectivamente à Primeira e à Segunda Guerra Mundial. Além disso, alguns jogos são destacados por ocorrerem quedas nos números de participantes, na maioria das vezes, em razão de boicotes e protestos. São estes:

  • L.A., 1932: Ocorrido em meio à Grande Depressão, na Califórnia – a única região dos Estados Unidos que conseguiu sobreviver economicamente à queda da Bolsa de Valores de Nova Iorque. Em raxão da grande distância, o número de participantes foi menor que nos Jogos anteriores. Ainda assim, os 1335 atletas participantes apresentaram elevada qualidade técnica, com a quebra de 18 recordes mundiais.

  • Melbourne, 1956: Os primeiros Jogos Olímpicos ocorridos abaixo da linha do Equador foram marcados, pela primeira vez, por questões relacionadas à política internacional. A Guerra Fria, no seu início, foi responsável pelos primeiros boicotes e desistências dos Jogos Olímpicos. A invasão da Hungria por tropas soviéticas, naquele ano, causou a desistência da Espanha, Países Baixos (Holanda), Suíça e Camboja. Os egípcios, iranianos e libaneses boicotaram o evento em razão do envolvimento da França e da Grã-Bretanha na Crise de Suez. Além disso, China não participou em protesto ao reconhecimento de Taiwan pelo COI. Apesar dos boicotes, algumas dessas nações participaram das competições equestres ocorridas em Estocolmo1.

  • Montreal, 1976: Os Jogos ficaram marcados por um grande boicote: lideradas pela República do Congo, 26 nações africanas, o Iraque e a Guiana se recusaram a participar em protesto pelo COI não suspender a Nova Zelândia, que havia autorizado sua seleção nacional de rugby a excursionar pela África do Sul, que se encontrava suspensa da comunidade internacional em razão da política racista do Apartheid. Financeiramente, os Jogos foram um fracasso, causando o maior prejuízo econômico da história do evento até Atenas 2004. No âmbito esportivo, outra decepção: pela primeira vez na história dos Jogos Olímpicos de Verão, o país anfitrião terminou a competição sem conseguir conquistar uma única medalha de ouro.

  • Moscou, 1980: A edição de Jogos Olímpicos com o menor número de participantes desde Melbourne 1956 devido ao maior boicote da história olímpica, em razão de questões políticas. Em protesto a invasão soviética no Afeganistão, os Estados Unidos e mais 69 países – um número três vezes maior do que as nações africanas que se recusaram a participar nos Jogos anteriores – boicotaram o evento ocorrido na União Soviética. Esse esvaziamento afetou consideravelmente o nível técnico de várias modalidades. Ainda assim, foi observado algumas marcas excepcionais, inclusive de atletas de países que apoiaram a ação norte-americana e participaram individualmente sob a bandeira olímpica.

  • L.A., 1984: Assim como o evento anterior, esta edição também sofreu com boicotes. Desta vez, foram os países do antigo bloco soviético que retaliaram o boicote liderado pelos norte-americanos aos Jogos de Moscou 1980. Dos países relacionados ao antigo bloco soviético, apenas Romênia, Benim, República Popular do Congo, República Popular da China e a Iugoslávia participaram dos Jogos.

A partir dos anos 1990 o crescimento do evento se estabiliza, atingindo 2745 atletas, de 89 países, distribuídos em 98 modalidades na edição de Inverno Sochi 2014, e 11179 atletas de 207 países em 306 modalidades na edição de Verão Rio 2016. A expectativa é de que esse números aumentem na medida em que mais modalidades foram incorporadas nas edições seguintes.

3.1 Países

# gráfico do número de países participantes das Olímpiadas.
# excluíndo aqueles envolvidos nas competições de arte (Art Competitions).

atletas_equipes_modalidades |>
  ggplot2::ggplot() +
  ggplot2::aes(
    x = ano,
    y = equipes,
    group = edicao,
    color = edicao
  ) +
  ggplot2::geom_line(show.legend = FALSE) +
  ggplot2::geom_point(show.legend = FALSE) +
  ggplot2::scale_color_manual(values = c("darkorange", "darkblue")) +
  ggplot2::annotate(
    "text",
    x = c(1916, 1940),
    y = c(70, 90),
    label = c("1a GM", "2a GM"),
    color = "darkred"
  ) +
  ggplot2::annotate(
    "text",
    x = c(2016, 2016),
    y = c(190, 60),
    label = c("Verão", "Inverno"),
    color = c("darkorange", "darkblue")
  ) +
  ggplot2::annotate(
    "text",
    x = c(1940, 1965, 1976, 1988),
    y = c(40, 60, 100, 75),
    label = c("L.A. 1932", "Melbourne 1956", "Montreal 1976", "Moscou 1980"), 
    size = 3
  ) +
  ggplot2::geom_curve(
    ggplot2::aes(
      x = 1915,
      y = 60,
      xend = 1915,
      yend = 38,
    ),
    size = 1,
    arrow = ggplot2::arrow(length = ggplot2::unit(0.02, "npc")),
    color = "darkred",
    show.legend = FALSE
  ) +
  ggplot2::geom_curve(
    ggplot2::aes(
      x = 1940,
      y = 85,
      xend = 1940,
      yend = 60
    ),
    size = 1,
    curvature = 0.2,
    arrow = ggplot2::arrow(length = ggplot2::unit(0.02, "npc")),
    color = "darkred",
    show.legend = FALSE
  ) +
  ggplot2::scale_x_continuous(limits = c(1896, 2016),
                              breaks = seq(1896, 2016, 10)) +
  ggplot2::scale_y_continuous(limits = c(0, 225),
                              breaks = seq(0, 225, 50)) +
  ggplot2::labs(
    title = "Número de países participantes",
    caption = "Elaboração própria (2021)",
    x = "Anos",
    y = "Países"
  ) +
  ggplot2::theme_minimal() 

3.2 Atletas

# gráfico do número de atletas participantes das Olímpiadas.
# excluíndo aqueles envolvidos nas competições de arte (Art Competitions).

atletas_equipes_modalidades |> 
  ggplot2::ggplot() +
  ggplot2::aes(
    x = ano,
    y = atletas,
    group = edicao,
    color = edicao
  ) +
  ggplot2::geom_line(show.legend = FALSE) +
  ggplot2::geom_point(show.legend = FALSE) +
  ggplot2::scale_color_manual(values = c("darkorange", "darkblue")) +
  ggplot2::annotate(
    "text",
    x = c(1916, 1940),
    y = c(4500, 6500),
    label = c("1a GM", "2a GM"),
    color = "darkred"
  ) +
  ggplot2::annotate(
    "text",
    x = c(2016, 2016),
    y = c(9750, 1250),
    label = c("Verão", "Inverno"),
    color = c("darkorange", "darkblue")
  ) +
  ggplot2::annotate(
    "text",
    x = c(1940, 1956, 1976, 1988),
    y = c(1500, 2500, 6050, 5000),
    label = c("L.A. 1932", "Melbourne 1956", "Montreal 1976", "Moscou 1980"), 
    size = 3
  ) +
  ggplot2::geom_curve(
    ggplot2::aes(
      x = 1913,
      y = 4000,
      xend = 1915,
      yend = 3000,
    ),
    size = 1,
    arrow = ggplot2::arrow(length = ggplot2::unit(0.02, "npc")),
    color = "darkred",
    show.legend = FALSE
  ) +
  ggplot2::geom_curve(
    ggplot2::aes(
      x = 1940,
      y = 6000,
      xend = 1940,
      yend = 4500
    ),
    size = 1,
    curvature = 0.2,
    arrow = ggplot2::arrow(length = ggplot2::unit(0.02, "npc")),
    color = "darkred",
    show.legend = FALSE
  ) +
  ggplot2::scale_x_continuous(limits = c(1896, 2016),
                              breaks = seq(1896, 2016, 10)) +
  ggplot2::scale_y_continuous(limits = c(0, 12000),
                              breaks = seq(0, 12000, 1500)) +
  ggplot2::labs(
    title = "Número de atletas que competiram em cada Olimpíada",
    caption = "Elaboração própria (2021)",
    x = "Anos",
    y = "Atletas"
  ) +
  ggplot2::theme_minimal()

3.3 Modalidades

# gráfico do número de modalidades participantes das Olímpiadas.
# excluíndo as competições de arte (Art Competitions).

atletas_equipes_modalidades |>
  ggplot2::ggplot() +
  ggplot2::aes(
    x = ano,
    y = modalidades,
    group = edicao,
    color = edicao
  ) +
  ggplot2::geom_line(show.legend = FALSE) +
  ggplot2::geom_point(show.legend = FALSE) +
  ggplot2::geom_point(show.legend = FALSE) +
  ggplot2::scale_color_manual(values = c("darkorange", "darkblue")) +
  ggplot2::annotate(
    "text",
    x = c(2006, 2012),
    y = c(300, 120),
    label = c("Verão", "Inverno"),
    color = c("darkorange", "darkblue")
  ) +
  ggplot2::scale_x_continuous(limits = c(1896, 2016),
                              breaks = seq(1896, 2016, 10)) +
  ggplot2::scale_y_continuous(limits = c(0, 300),
                              breaks = seq(0, 300, 50)) +
  ggplot2::labs(
    title = "Número de modalidades esportivas em cada Olimpíada",
    caption = "Elaboração própria (2021)",
    x = "Anos",
    y = "Modalidades"
  ) +
  ggplot2::theme_minimal()

4 As mulheres nas Olimpíadas

4.1 Homens x Mulheres

O crescimento do número de atletas do sexo feminino refletiu amplamente o aumento do número de atletas do sexo masculino até as Olimpíadas de Atlanta 1996, quando o número de participantes homens se estabilizou, aproximadamente, em 8000 e o número de atletas mulheres continou a crescer nas edições seguintes.

data <- olimpiadas |>
  dplyr::filter(esporte != "Art Competitions")

original <- c(1994, 1998, 2002, 2006, 2010, 2014)
novo <- c(1996, 2000, 2004, 2008, 2012, 2016)
for (i in 1:length(original)) {
  data$ano <- gsub(original[i], novo[i], data$ano)
}
data$ano <- as.integer(data$ano)

homens_mulheres <- data |>
  dplyr::group_by(ano, sexo) |>
  dplyr::summarise(atletas = length(unique(id_atleta))) |>
  dplyr::ungroup()

tab_homens_mulheres <- data |>
  dplyr::group_by(ano, edicao, sexo) |>
  dplyr::summarise(atletas = length(unique(id_atleta))) |>
  dplyr::ungroup() |>
  tidyr::pivot_wider(names_from = sexo, values_from = atletas) |>
  dplyr::rename(homens = M,
                mulheres = F) |>
  dplyr::group_by(ano, edicao) |>
  dplyr::mutate(
    homens_porcentagem = round(homens * 100 / sum(homens, mulheres, na.rm = TRUE), 2),
    mulheres_porcentagem = round(mulheres * 100 / sum(homens, mulheres, na.rm = TRUE), 2)
  )

homens_mulheres |>
  ggplot2::ggplot() +
  ggplot2::aes(
    x = ano,
    y = atletas,
    group = sexo,
    color = sexo
  ) +
  ggplot2::geom_line(show.legend = FALSE) +
  ggplot2::geom_point(show.legend = FALSE) +
  ggplot2::scale_color_manual(values = c("darkblue", "red")) +
  ggplot2::annotate(
    "text",
    x = c(2013, 2013),
    y = c(9000, 4800),
    label = c("Homens" , "Mulheres"),
    color = c("darkblue", "red")
  ) +
  ggplot2::scale_x_continuous(limits = c(1896, 2016),
                              breaks = seq(1896, 2016, 10)) +
  ggplot2::scale_y_continuous(limits = c(0, 10000),
                              breaks = seq(0, 10000, 2000)) +
  ggplot2::labs(
    title = "Número de homens e mulheres ao longo do tempo",
    caption = "Elaboração própria (2021)",
    x = "Anos",
    y = "Atletas"
  ) +
  ggplot2::theme_minimal()


Com base nesta base de dados, a participação de atletas femininas atingiu seu ponto mais alto nas Olimpíadas de Sochi 2014 e do Rio 2016 com, respectivamente, 1102 e 5034 mulheres, o que representa um pouco mais de 40% dentre todos os atletas olímpicos.

4.2 Proporção de Homens x Mulheres por delegação

# seleciona 5 jogos olimpicos

jogos_olimpicos <- c(1936, 1956, 1976, 1996, 2016)

# conta os números de homens, mulheres e total de participantes por país a cada Olimpíada
# Mantem apenas os países-anos com, no mínimo, 30 atletas

contagem_NOC <- data |>
  dplyr::filter(ano %in% jogos_olimpicos) |>
  dplyr::group_by(ano, delegacao, sexo) |>
  dplyr::summarise(contagem = length(unique(id_atleta))) |>
  tidyr::spread(sexo, contagem) |>
  dplyr::rename(homens = M,
                mulheres = F) |>
  dplyr::mutate(total = sum(homens, mulheres, na.rm = TRUE),
                ano = as.factor(ano)) |>
  dplyr::filter(total > 49)

# altera NA por 0 nas colunas homens e mulheres

contagem_NOC$homens[is.na(contagem_NOC$homens)] <- 0
contagem_NOC$mulheres[is.na(contagem_NOC$mulheres)] <- 0

Nem todas as nações investiram igualmente em suas atletas femininas: enquanto alguns países abraçaram a oportunidade de ganhar mais melhadas em eventos femininos; outros demoraram a incluir as mulheres em suas equipes olímpicas.

O gráfico a seguir mostra o número de atletas mulheres versus o número de atletas homens de 5 Jogos Olímpicos selecionados (1936, 1956, 1976, 1996, e 2016), com cada ponto representando uma delegação (ou Comitê Olímpico Nacional) e um ajuste de regressão para cada um dos 5 Jogos Olímpicos. Apenas delegações com, pelo menos, 50 atletas estão incluídas no gráfico e no ajuste da linha de regressão. A linha tracejada representa a situação ideal, onde os Comitês enviam equipes compostas por 50% de mulheres e 50% de homens.

# gráfico homens x mulheres atletas por delegacao/ano

contagem_NOC |>
  ggplot2::ggplot() +
  ggplot2::aes(
    x = homens,
    y = mulheres,
    group = ano,
    color = ano
  ) +
  ggplot2::geom_point(alpha = 0.6) +
  ggplot2::geom_abline(intercept = 0,
                       slope = 1,
                       linetype = "dashed") +
  ggplot2::geom_smooth(method = "lm", se = FALSE) +
  ggplot2::scale_x_continuous(limits = c(0, 350), breaks = seq(0, 350, 50)) +
  ggplot2::scale_y_continuous(limits = c(0, 300), breaks = seq(0, 300, 50)) +
  ggplot2::labs(
    title = "Porporção de Homens x Mulheres das delegações participantes",
    caption = "Elaboração própria (2021)",
    x = "Homens",
    y = "Mulheres"
  ) +
  ggplot2::guides(color = ggplot2::guide_legend(reverse = TRUE)) +
  ggplot2::theme_minimal() +
  ggplot2::theme(legend.position = "bottom")


O gráfico mostra que, embora tenha existido muitas mudanças entre 1936 e 1956, houve uma melhora considerável na participação feminina de 1956 a 2016. Em 1996 e 2016, algumas delegações enviaram mais atletas do sexo feminino do que masculinos para o Jogos – estes estão representados pelos pontos situados acima da linha tracejada.

5 Distribuição espacial das delegações

jogos_mapa <- c("Amsterdam 1928", "Munique 1972", "Rio 2016")

# carrega os dados correspondentes aos Comitês Olímpicos Nacionais com as regiões (países)

noc <- readr::read_csv(here::here("dados", "noc-regioes.csv"))

# adiciona as regioes na base de dados e remove os pontos faltantes

dados_regioes <- data |>
  dplyr::left_join(noc, by = c("delegacao" = "NOC")) |>
  dplyr::filter(!is.na(region))

# filtra os jogos de amsterdam 1928 e conta o total de atletas de cada pais

amsterdam_1928 <- dados_regioes |>
  dplyr::filter(ano == 1928) |>
  dplyr::group_by(region) |>
  dplyr::summarise(amsterdam = length(unique(id_atleta)))

# filtra os jogos de munique 1972 e conta o total de atletas de cada pais

munique_1972 <- dados_regioes |>
  dplyr::filter(ano == 1972) |>
  dplyr::group_by(region) |>
  dplyr::summarise(munique = length(unique(id_atleta)))

# filtra os jogos de rio 2016 e conta o total de atletas de cada pais

rio_2016 <- dados_regioes |>
  dplyr::filter(ano == 2016) |>
  dplyr::group_by(region) |>
  dplyr::summarise(rio = length(unique(id_atleta)))

# cria os dados dos mapas

mundo <- ggplot2::map_data("world")

mapa_dados <- tibble::tibble(region = unique(mundo$region)) |>
  dplyr::left_join(amsterdam_1928, by = "region") |>
  dplyr::left_join(munique_1972, by = "region") |>
  dplyr::left_join(rio_2016, by = "region")

# altera NA por 0 nas colunas amsterdam, munique e rio

mapa_dados$amsterdam[is.na(mapa_dados$amsterdam)] <- 0
mapa_dados$munique[is.na(mapa_dados$munique)] <- 0
mapa_dados$rio[is.na(mapa_dados$rio)] <- 0


mundo <- dplyr::left_join(mundo, mapa_dados, by = "region")

Como o número de atletas vindos de diferentes países mudou ao longo do tempo? Vamos analisar três Jogos Olímpicos de Verão, separados por 44 anos: Amsterdam 1928, Munique 1972, e Rio 2016.

5.1 Amsterdam, 1928

# gráfico: Amsterdam, 1928

mundo |>
  ggplot2::ggplot() +
  ggplot2::aes(x = long, y = lat, group = group) +
  ggplot2::geom_polygon(ggplot2::aes(fill = amsterdam)) +
  ggplot2::labs(title = "Amsterdam, 1928",
                caption = "Elaboração prórpia (2021)") +
  ggplot2::guides(fill = ggplot2::guide_colorbar(title = "Atletas")) +
  ggplot2::scale_fill_gradient(low = "lightblue",
                               high = "red",
                               na.value = "gray") +
  ggplot2::theme_void() +
  ggplot2::theme(
    legend.position = "bottom",
    plot.title = ggplot2::element_text(hjust = 0.05, size = 15),
    plot.caption = ggplot2::element_text(hjust = 0.97, size = 10)
  )

5.2 Munique, 1972

# gráfico: Munique, 1972

mundo |>
  ggplot2::ggplot() +
  ggplot2::aes(x = long, y = lat, group = group) +
  ggplot2::geom_polygon(ggplot2::aes(fill = munique)) +
  ggplot2::labs(title = "Munique, 1972",
                caption = "Elaboração prórpia (2021)") +
  ggplot2::guides(fill = ggplot2::guide_colorbar(title = "Atletas")) +
  ggplot2::scale_fill_gradient(low = "lightblue",
                               high = "red",
                               na.value = "gray") +
  ggplot2::theme_void() +
  ggplot2::theme(
    legend.position = "bottom",
    plot.title = ggplot2::element_text(hjust = 0.05, size = 15),
    plot.caption = ggplot2::element_text(hjust = 0.97, size = 10)
  )

5.3 Rio, 2016

# gráfico: Rio, 2016

mundo |>
  ggplot2::ggplot() +
  ggplot2::aes(x = long, y = lat, group = group) +
  ggplot2::geom_polygon(ggplot2::aes(fill = rio)) +
  ggplot2::labs(title = "Rio, 2016",
                caption = "Elaboração prórpia (2021)") +
  ggplot2::guides(fill = ggplot2::guide_colorbar(title = "Atletas")) +
  ggplot2::scale_fill_gradient(low = "lightblue",
                               high = "red",
                               na.value = "gray") +
  ggplot2::theme_void() +
  ggplot2::theme(
    legend.position = "bottom",
    plot.title = ggplot2::element_text(hjust = 0.05, size = 15),
    plot.caption = ggplot2::element_text(hjust = 0.97, size = 10)
  )


A partir dos mapas acima, fica claro que a representação geográfica, nas Olimpíada, se expandiu ao longo do tempo, embora diversas regiões do mundo ainda estejam demasiadamente sub-representadas. Entre estas regiões estão a maior parte da África, Sudeste Asiático, Oriente Médio e grande parte da América do Sul – o Brasil, em 2016, por ser país-sede, esteve representado em todas as 306 modalidades.


  1. Algumas modalidades esportivas dos Jogos não foram realizadas no país anfitrião. É o caso do hipismo que foi transferido para Estocolmo, na Suécia, e disputado cinco meses antes de Melbourne, graças as severas leis australianas relativas à quarentena de animais que impediam a entrada de cavalos estrangeiros no país.↩︎