Introducción:

Los Juegos Olímpicos son el mayor evento deportivo a nivel internacional que sucede cada cuatro años, en donde se practican múltiples disciplinas, las cuales son ejecutadas por deportistas de la mayoría de los países en todo el mundo. El lugar donde se realizan son países anfitriones establecidos, y quienes son los encargados de proporcionar las instalaciones.

Para este proyecto se nos asignó un reto, el cual consiste en relatar una historia en base a un conjunto de datos masivos que quedó a nuestra elección. ¿Cómo escoger el tema? ¿Cómo encontrar la base de información? ¿Cuál es la relación con el tiempo? Todo se resume en un buscador, ya que al indagar y obtener Data Sets siendo Los Juegos Olímpicos. El tema llamó nuestro interés ya que la información estaba dada a lo largo de dos siglos de historia, además de ellos, se lanzó una primera hipótesis al ver los datos de manera superficial: Las medallas alcanzada por los países tienen relación directa con su eficiencia económica y por ende con su Índice de Producto Interno Bruto. Se tiene el espacio para analizar grandes cambios en relación a las variables y saber que los causa, y asimismo relatar el porqué de cada uno de los cambios.A lo largo del trabajo se demostrará o se refutará nuestra hipótesis, la cual dio sentido al análisis de datos. Cabe mencionar que durante la ejecución del proyecto, justoo después de obtener el Data Set, fue necesario realizar una limpieza especificada y trabajosa para que se pusiera detallar y visualizar los información que los datos que el grupo desea de forma adecuada.

Planteamiento Idea Principal del Proyecto

Hipótesis

Con este proyecto pretendemos demostrar que el estado socioecómico de un país influye fuertemente en relación a los deportes que se practican en Los Juegos Olímpicos, por ende, también el desarollo de los jugadores es distinto al de otros paises que tienen un fuerte nivel socioeconómico.

Incorporación de Conocimientos

El desarrollo del proyecto implicó una serie de esfuerzos, unos más grandes que otros. Nuestro equipo está conformado por personas que han tenido cero contacto o relativamente poco con la programación y análisis de datos antes de ejecutar este proyecto. Se considera importante recalcar que se desarrolló el método de “prueba y error”, como comunmente lo conocemos, para la utilización de los comandos deseados. Además de ello, a parte de tener los materiales de apoyo proporcionado por los dirigentes del curso, nuestra herramienta principar fue tutoriales y págicas de internet. La incorporación de conocimientos que podemos realizar son los siguientes:

Secciones del Proyecto (Victorias Olímpicas y PIB )

Paquetes Utilizados

En el transcurso del análisis de datos y la búsqueda constante de cómo organizar la información, finalmente se procedió a instalar y utilizar los siguientes paquetes.

library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(modeest)
## Warning: package 'modeest' was built under R version 3.3.3
## 
## This is package 'modeest' written by P. PONCET.
## For a complete list of functions, use 'library(help = "modeest")' or 'help.start()'.
library(maps)
## Warning: package 'maps' was built under R version 3.3.3
library(scales)

Manejo de Datos

IMPORTACIÓN DE DATASETS: dictionary, olympics, gdp per capita. Previo al análisis se tuvo que arreglar los datos con ayuda de Excel, ya que para que se pudiera juntar los datasets en R, tenían que coincidir los códigos, los datos de las olimpiadas, los países aparecían en código, pero los datos del PIB aparecían con nombre de país.

library(dplyr)
library(readr)
## 
## Attaching package: 'readr'
## The following objects are masked from 'package:scales':
## 
##     col_factor, col_numeric
dictionary <- read_csv("~/Data Science/Proyecto 1/dictionary.csv", col_types = cols(`GDP per Capita` = col_number(), Population = col_number()))
colnames(dictionary) <- c("País", "Country", "Population", "GDP per capita")
#View(dictionary)

library(readr)
olympics <- read_csv("~/Data Science/Proyecto 1/olympics.csv", col_types = cols(Year = col_number()))

Acomodación de Data Sets,Rstudio

Se cambió los nombres de las columnas y se modificó los nombres de algunos países que ya no existen. Por ejemplo, todas las medallas que aparecían con URS (Unión Soviética) se cambió a RUS (Rusia). Lo mismo sucede con Alemania Occidental y Oriental. También se modificó el tipo de dato, por ejemplo, pasar de factor a carácter o numérico.

olympics <- replace(olympics, olympics=="URS","RUS")
olympics <- replace(olympics, olympics=="RU1","RUS")
olympics <- replace(olympics, olympics=="ANZ","AUS")
olympics <- replace(olympics, olympics=="BWI","GBR")
olympics <- replace(olympics, olympics=="EUA","GER")
olympics <- replace(olympics, olympics=="FRG","GER")
olympics <- replace(olympics, olympics=="GDR","GER")
olimpics <- replace(olympics, olympics=="SIN","SGP")
olympics <- replace(olympics, olympics=="TRT", "TRI")
View(olympics)

Información, PIB per capita

library(readxl)
gdp <- read_excel("~/Data Science/Proyecto 1/gdp per capita.xlsx", 
                             col_names = FALSE, col_types = c("text", 
                             "text", "numeric", "numeric"))
colnames(gdp) <- c("País", "Country", "Year", "GDP per capita")

Información, Olimpiadas 2016

En la información anterior no se contaba con datos actualizados de los Juegos Olímpicos del año pasado llevados a cabo en Río de Janeiro, Brasil.

library(readxl)
olympics_2016 <- read_excel("~/Data Science/Proyecto 1/olympics 2016.xlsx", 
                            col_names = FALSE, col_types = c("text", 
                            "numeric", "numeric", "numeric","numeric"))
colnames(olympics_2016) <- c("Country", "Gold", "Silver", "Bronze", "Total")
#View(olympics_2016)

Información, Géneros

library(readr)
geo <- read_delim("~/Data Science/Proyecto 1/geo.csv", 
                  ";", escape_double = FALSE, col_types = cols(`City (de)` = col_skip(), 
                  `Country (de)` = col_skip(), Latitude = col_number(), 
                   Longitude = col_number(), Population = col_number()), 
                   trim_ws = TRUE)
colnames(geo) <- c("City", "Country", "Code", "Population", "Latitude", "Longitude")

library(readr)
gen <- read_csv("~/Data Science/Proyecto 1/olim.csv")
## Parsed with column specification:
## cols(
##   Juegos = col_character(),
##   Year = col_integer(),
##   `Pa<ed>s Organizador` = col_character(),
##   Ciudad = col_character(),
##   `No. de pa<ed>ses` = col_integer(),
##   `No. de pruebas` = col_integer(),
##   `No. de deportes` = col_integer(),
##   Hombres = col_integer(),
##   Mujeres = col_integer(),
##   `Total deportistas` = col_integer()
## )
gen <- select(gen, Year, Hombres, Mujeres)

Visualización por Continentes

Al momento del desarrollo del proyecto surgió la idea de iniciar un nuevo análisis acerca de la relación entre las medallas obtenidas y la participación de los continentes.

Continents <- read_csv(paste(getwd(),"/Proyecto1/Countries-Continents-csv.csv/sep = ""), 
             col_types = cols(Column = col_skip(), 
                              Column2 = col_skip(), Column3 = col_skip(), 
                              Column4 = col_skip(), Column5 = col_skip(), 
                              Column6 = col_skip(), Column7 = col_skip(), 
                              Column8 = col_skip(), Column9 = col_skip(), 
                              Continent = col_character()))

colnames(Continents) <- c("Continente", "Pais"))

Data Frames

Se continuó trabajando en los análisis de los datos, se iniciaron a construir los Data Frames,partiendo desde la visualización de las medallas totales hasta culminar con tablas fijas del PIB y medallas por país y por año.

Ya con los datasets cargados y arreglados, se juntaron los datasets para crear dataframes con los cuales pudiéramos analizar los datos más detalladamente. Para eso usamos funciones como “merge”, “rbin”, “filter”, “select”, y “mutate”.

Medallas Totales

medallas_totales <- data.frame(table(olympics$Country))
colnames(medallas_totales) <- c("Country", "Frequency")
medallas2016 <- select(olympics_2016, Country, Total)
medallas_totales<- (merge(x=medallas_totales, y=medallas2016, by="Country", all.x = TRUE))
medallas_totales[is.na(medallas_totales)] <- 0
medallas_totales <- mutate(medallas_totales, total= Frequency + Total)
medallas_totales <- select(medallas_totales, Country, total)

Análisis global del GDP actualizado y Medallas Totales.

global <- merge(dictionary, medallas_totales, by="Country")
colnames(global) <- c("Code", "Country", "Population", "GDP per capita", "Medals")

Medallas por año

year <- data.frame(table(olympics$Year, olympics$Country))
colnames(year) <- c("Year", "Country", "Total")
medallas2016$Year <- rep(2016, nrow(medallas2016))
medallas2016 <- medallas2016[c(3,1,2)]
year$Year <- as.numeric(as.character(year$Year))
year$Country <- as.character(year$Country)
year <- rbind(year, medallas2016)

Medallas por tipo

Se verifica el tipo de medalla, para esta visualización no se tiene en cuenta el año 2016.

tipo <- data.frame(table(olympics$Country, olympics$Medal))
colnames(tipo) <- c("Country", "Medal", "Total")

Medallas, GDP per capita, País y Año

Considerado como el Data Frame final, en éste si está incluído los datos del año 2016

df1 <- merge(year, gdp, by=c("Country", "Year"))
df1 <- df1[c("País", "Country", "Year", "GDP per capita", "Total")]
colnames(df1) <- c("Country", "Code", "Year", "GDP per capita", "Medals")
View(df1)

Continentes

Se crean variables que incluyen la union del data frame anterior con los datos del cvs de Continentes, para determinar el continente al que pertence cada país de las olimpiadas.

Years<- summarise(group_by(df,Year))
Conti <- summarise(group_by(df, Continent))
Total <- select(global, Country, Medals)

Creación de gráficas de Pie

#Vector de Colores para que sean los mismos en todas
col_Conti<-  rainbow(length(Conti$Continent), s=0.76 , v=0.9)
names(col_Conti) <- c( Conti$Continent)

#Pie Charts
for(yearActual in Years$Year){ #Se repite a lo largo de los elementos de la variable
  anio <- filter(df, Year==yearActual, Medals!=0) #Limita las entradas unicamente de cada anio
  Total2 <- sum(anio$Medals)
  forPie <- anio %>% 
    group_by(Continent, Year) %>%
    summarise( `Porcentaje por Continente`= sum(Medals)/Total2*100)
  
  #Color para Continentes
  
  
  #Graficar Pie
  
  ggplot(data=forPie,aes(x="", y=`Porcentaje por Continente`, fill=Continent  )) + 
    ggtitle(paste("Medallas (", Total2, ") Year ", yearActual, sep="")) + 
    geom_bar(width = 1, stat = "identity") + coord_polar("y") +
    theme(axis.text.x=element_blank(), axis.title.y = element_blank(), panel.border = element_blank(),
          panel.grid=element_blank(), axis.ticks = element_blank())+
    scale_fill_manual("Continentes", values = col_Conti)+
    geom_text(aes(label = percent(`Porcentaje por Continente`/100)),size=5, position=position_dodge(0.9)) +
    theme(plot.title = element_text(family = "Arial", color="#666666", face="bold", size=32, hjust=0)) 
    
    #Guardar la ultima grafica
  + ggsave(filename = paste("PIE", yearActual, ".png", sep = ""), plot = last_plot(), device = "png",
         path = paste(getwd(), "/Data Science/Proyecto 1/Graficas/Pie", sep= ""), scale = 1, width = 11, height = 6, units = c("in", "cm", "mm"), dpi = 300)
  
}

Datos Descriptivos

#Promedio, Mediana y Moda
df <- df1 #Asignamos el data frame final con nombre df, para su fácil manejo

Years <- summarise(group_by(df, Year)) #Es necesario un vector únicamente con los años de olimpiadas

DatosEstadisticos<- data.frame()
for(yearActual in Years$Year){
  anio <- filter(df, Year==yearActual, Medals!=0)
  forModa <- summarise(group_by(anio, Year, Medals), Paises_con_n_Medallas=n()) #n() contador
  forModa <- filter(forModa, Paises_con_n_Medallas == max(forModa$Paises_con_n_Medallas) )
  DatosEstadisticos <- rbind(DatosEstadisticos, c(yearActual, mean(anio$Medals), median(anio$Medals), forModa$Medals))
}

colnames(DatosEstadisticos)<- c("Año","Promedio", "Mediana", "Moda")

Tabla de las medias, medianas y modas de cada año de olimpiada.

##     Año Promedio Mediana Moda
## 1  1896 14.50000     6.5    6
## 2  1900 26.44444     6.0    2
## 3  1904 51.33333     4.0    2
## 4  1908 44.38889    20.5    3
## 5  1912 49.16667    23.5   14
## 6  1920 61.33333    29.0    1
## 7  1924 34.88000    20.0    1
## 8  1928 22.73333    14.0    1
## 9  1932 23.50000    10.0    1
## 10 1936 28.56667    17.5    1
## 11 1948 22.85294    10.5    1
## 12 1952 21.43590     7.0    1
## 13 1956 23.75000     9.5    2
## 14 1960 21.56410     7.0    1
## 15 1964 24.57895     6.0    1
## 16 1968 24.30000     9.5    2
## 17 1972 25.84091     8.0    1
## 18 1976 34.32432    10.0    1
## 19 1980 38.69697     9.0    1
## 20 1984 30.46667     5.0    1
## 21 1988 31.29787     8.0    1
## 22 1992 24.18333     6.5    1
## 23 1996 24.40541     5.5    1
## 24 2000 26.09333     7.0    1
## 25 2004 28.28986     8.0    1
## 26 2008 24.60494     6.0    1
## 27 2012 23.59259     6.0    1
## 28 2016 11.86076     5.0    1

Datos descriptivos generales de todas las Olimpiadas

Datos del PIB per capita.

##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
##    323.9   1349.0   3034.0   7076.0   7891.0 118700.0        5

Datos de las medallas a traves de los años.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   0.000   8.995   2.000 442.000

GRÁFICAS DE ANÁLISIS

Una vez concluídos los Data Frames, se inició con la realización y visualización de la información que arrojan los datos, todo esto por medio de gráficas.

1. GPD per capita vs Medallas

Lo a continuación escrito, finalizó siendo extenso ya que los códigos introducidos proyectas cada una de las imágenes necesarias para poder proyectar el y unificar el proceso final de los datos que muestran las medallas obtenidas a través de los años, el PIB per capita en cada uno de los años de Juego Olímpico, que hasta la fecha han sido 31, por ende, serán treinta y un imágenes.

Olimpiadas 1916, Suspendidas por Primera Guerra Mundial

Olimpiadas 1940, Suspendidas por Segunda Guerra Mundial

Olimpiadas 1944, Suspendidas por Segunda Guerra Mundial

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 3 rows containing missing values (geom_point).

## Warning: Removed 3 rows containing missing values (geom_point).

2. Gráficas de pie Medallas vs Contienetes

Las siguientes gráficas nos muestran la relación del número de medallas ganadas por cada país distribuida en el continenete que pertenece el país, viendo así una relación entre que contienentes son los que ganan más medallas a través de los años. Y ver también que la historia política e historica que enfrentan los paises en esos años afecto la participación en los juegos olímpicos.

Olimpiadas 1916, Suspendidas por Primera Guerra Mundial

Olimpiadas 1940, Suspendidas por Segunda Guerra Mundial

Olimpiadas 1944, Suspendidas por Segunda Guerra Mundial

3. Creación de Mapa

El mapa incluye la verificación de la medallas totales obtenidas por países a lo largo de la historia.

library(maps)
lobal <- merge(dictionary, medallas_totales, by="Country")
colnames(global) <- c("Code", "Country", "Population", "GDP per capita", "Medals")
Total <- select(global, Country, Medals)
map <- map_data("world")
colnames(map) <- c("long", "lat", "group", "order", "region", "subregion")
map <- ggplot(data = map) + 
  geom_polygon(aes(x = long, y = lat, group=group), color ="light blue", fill="light blue")
map <- map +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), 
        panel.background = element_rect(fill = 'white', colour = 'white'), 
        axis.line = element_line(colour = "white"), legend.position="none",
        axis.ticks=element_blank(), axis.text.x=element_blank(),
        axis.text.y=element_blank())


geo <- select(geo, Country, Latitude, Longitude)
geo <- merge(geo, Total, by="Country")

map <- map + 
  geom_point(data=geo, 
             aes(x=Longitude, y=Latitude, fill= Medals), 
             size=4 , pch=21, alpha=I(0.7))+
  scale_fill_continuous(low = "yellow", high = "red")

4. Géneros

En esta siguiente gráfica, se presentan las diferencias estadísticas de la participación por género, de igual manera que la anterior, a través de los XXI Juegos Olímpicos.

Recomendaciones

Conclusiones

De acuerdo a la investigación y análisis de datos se concluye lo siguiente:

Respuesta ante hipótesis planteada: Nuestra hipótesis al inicio del estudio de datos fue reconocer una relación directa entre los Índices del Producto Interno Bruto con el número de medallas obtenidas por distintos países a través de estos dos siglos, no obstante, después de la proyección de datos, encontramos que no hay asociación positiva entre nuestras variables dependientes. Por lo tanto se concluye que nuestra hipótesis es incorrecta.