library(ggplot2)
library(RColorBrewer)
library(gridExtra)
library(plotly)
library(gganimate)
library(gifski)
library(GGally)
library(viridis)
library(hrbrthemes)
library(dplyr)
library(reshape2)
library(corrplot)
Datos tomados del Human development index (HDI)
desarrollo <- read.table("./Datos/Human development index (HDI).csv", header=T,
skip = 1, sep = ",", )
| HDI.Rank..2018. | Country | X1990 | X1991 | X1992 | X1993 | X1994 | X1995 | X1996 | X1997 | X1998 | X1999 | X2000 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 170 | Afghanistan | 0.298 | 0.304 | 0.312 | 0.308 | 0.303 | 0.327 | 0.331 | 0.335 | 0.339 | 0.343 | 0.345 |
| 69 | Albania | 0.644 | 0.625 | 0.608 | 0.611 | 0.617 | 0.629 | 0.639 | 0.639 | 0.649 | 0.660 | 0.667 |
| 82 | Algeria | 0.578 | 0.582 | 0.589 | 0.593 | 0.597 | 0.602 | 0.610 | 0.619 | 0.629 | 0.638 | 0.646 |
| 36 | Andorra | .. | .. | .. | .. | .. | .. | .. | .. | .. | .. | 0.759 |
| 149 | Angola | .. | .. | .. | .. | .. | .. | .. | .. | .. | 0.384 | 0.394 |
| 74 | Antigua and Barbuda | .. | .. | .. | .. | .. | .. | .. | .. | .. | .. | .. |
Convertimos en numericas todas las variables de años de tal forma que los caracteres .. se toman como NA
for(i in names(desarrollo[3:length(desarrollo)])){
desarrollo[,i] <- as.numeric(desarrollo[,i])
}
Quitamos las X de las columnas de años
names(desarrollo) <- c("HDI_Rank", "country_name", seq(1990, 2018))
Limpiamos la columna HDI_Rank y dejamos solo valores numericos para eliminar filas con otro tipo de datos diferentes al analisis, finalmente eliminamos los datos faltantes y convertimos la tabla a un formato long
desarrollo$HDI_Rank <- as.numeric(desarrollo$HDI_Rank)
desarrollo <- desarrollo %>%
dplyr::filter(HDI_Rank != "NA")
# convertir tabla en formato long
desarrollo <- reshape2::melt(desarrollo, id=c("HDI_Rank", "country_name")) %>%
transform(variable = as.numeric(as.character(variable))) %>%
dplyr::filter(variable >= 2010 & variable <= 2017)
| HDI_Rank | country_name | variable | value |
|---|---|---|---|
| 170 | Afghanistan | 2010 | 0.464 |
| 69 | Albania | 2010 | 0.740 |
| 82 | Algeria | 2010 | 0.730 |
| 36 | Andorra | 2010 | 0.828 |
| 149 | Angola | 2010 | 0.510 |
| 74 | Antigua and Barbuda | 2010 | 0.772 |
summary(desarrollo)
## HDI_Rank country_name variable value
## Min. : 1.00 Length:1512 Min. :2010 Min. :0.3190
## 1st Qu.: 48.00 Class :character 1st Qu.:2012 1st Qu.:0.5720
## Median : 94.00 Mode :character Median :2014 Median :0.7240
## Mean : 94.77 Mean :2014 Mean :0.6981
## 3rd Qu.:142.00 3rd Qu.:2015 3rd Qu.:0.8130
## Max. :189.00 Max. :2017 Max. :0.9530
## NA's :7
Datos del Inequality-adjusted education index
educacion <- read.table("./Datos/Adjusted_Education.csv", header=T,
sep = ";", )
Proceso de transformacion y preparación del conjunto de datos
# Quitar columnas innecesarias
educacion <- educacion[,5:9]
# Quitar "X" de la columna year
educacion$year <- gsub("X", "", educacion$year)
# Cambiar "," por "." en la columna value
educacion$value <- gsub(",", ".", educacion$value)
# Dar formato a las variables
educacion <- transform(educacion,
Continent = as.factor(Continent),
year = as.numeric(year),
value = as.numeric(value))
| iso3 | country_name | Continent | year | value |
|---|---|---|---|---|
| AFG | Afghanistan | 3 | 2010 | 0.225 |
| ALB | Albania | 4 | 2010 | 0.587 |
| AGO | Angola | 1 | 2010 | 0.294 |
| ARG | Argentina | 7 | 2010 | 0.705 |
| ARM | Armenia | 3 | 2010 | 0.683 |
| AUS | Australia | 6 | 2010 | 0.897 |
summary(educacion)
## iso3 country_name Continent year
## Length:1223 Length:1223 1:362 Min. :2010
## Class :character Class :character 3:296 1st Qu.:2012
## Mode :character Mode :character 4:303 Median :2014
## 5:125 Mean :2014
## 6: 42 3rd Qu.:2016
## 7: 95 Max. :2017
## value
## Min. :0.1150
## 1st Qu.:0.3225
## Median :0.5350
## Mean :0.5287
## 3rd Qu.:0.7230
## Max. :0.9180
Dado que el conjunto de datos desarrollo no contiene la variable Continent es necesario hacer el cruce con el conjunto de datos educacion para asi agregar estos valores.
desarrollo <- dplyr::left_join(desarrollo, unique(educacion[,2:3]),
by = "country_name")
desarrollo <- desarrollo[!is.na(desarrollo$value),]
En la siguiente linea de codigo se define una paleta de colores personalizada.
colorSequence1 <- brewer.pal(7, "Dark2")
Para dar solucion a las preguntas siguientes se hara uso de los indices mensionados anteriormente con datos por pais y continentes como se muestra en la siguiente figura.
mapa_mundo <- read.csv("./Datos/globeMap.csv")
names(mapa_mundo)[8] <- "iso3"
# combino el mapa con los datos
mapa_mundo <- merge(mapa_mundo, educacion, by="iso3")
# reordeno los datos para conservar la secuancia de puntos de los poligonos
mapa_mundo <- mapa_mundo[order(mapa_mundo$order),]
ggplot(mapa_mundo %>%
dplyr::filter(Continent_Name != "NA"), aes(long, lat)) +
geom_polygon(aes(group=as.factor(group), fill=Continent_Name)) +
scale_fill_manual(values = colorSequence1) + theme_bw()
¿Como se clasifican los paises de acuerdo al indice ajustado de inequidad en la educación ?
Se genera un subconjunto para el año 2017, y adicional se ordena por value de menor a mayor
indice_2017 <- educacion %>%
dplyr::filter(year == '2017') %>%
dplyr::arrange(by = value)
lista de los iso3 de cada pais en el orden del subset anterior
sorted_Cuntry <- factor(indice_2017$iso3,
levels = indice_2017$iso3)
Índice ordenado de inequidad en la educación en el mundo
plot1 <- ggplot(indice_2017) +
# add canvas aesthetics
aes(x=sorted_Cuntry, y=value) +
# Median
geom_vline(xintercept = length(unique(educacion$iso3))/2,
color = 'gray59') +
# Median label
geom_text(aes(x= 87, y= 1, label="Median", angle = 90),
color = 'gray59', size=3) +
# add bars layer
geom_bar(aes(x=sorted_Cuntry, y=value, fill=as.factor(Continent)),
stat = "identity", alpha= 0.8) +
# add text layer
geom_text(aes (y = value + 0.02, label = sorted_Cuntry, angle = 90), size=1.5) +
# agregar paleta de colores personalizada
scale_fill_manual(values = colorSequence1) +
# Customize legends
guides(fill=guide_legend(title="Continent")) +
# Customize labels
labs(title = "Sorted Inequality-adjusted education index in the world",
subtitle = "Year 2017",
caption = " 1: Africa, 2:Antartida (removed), 3:Asia, 4:Europe, 5:North America, 6:Oceania, 7:South America",
x = "World countries", y = "Inequality-adjusted education index") +
# adjust background, remove x label
theme(legend.position=c(0.1,0.8), axis.text.x = element_blank()) +
# Hide x tick marks, labels, and grid lines
scale_x_discrete(breaks=NULL)
plot1
En esta gráfica, se puede observar la distribución del indice de inequidad ajustado de educación a nivel mundial. Además, desagregado por continente, claramente la mayoria de paises europeos se encuentran entre los mas altos y los paises Africanos, algunos Asiaticos y Suramericanos estan con los valores más bajos, es decir, son estos paises aquellos que más inequidad en educación. La mediana se encuentra exactamente en paises Asiaticos, en donde se concentran hasta \(50\%\) de los datos. Cabe mencionar que el análisis es solo para el año referencia 2017.
Distribucion global del indice de inequidad en la educacion por continente
plot2 <- ggplot(educacion, aes(x=Continent, y=value, group = Continent)) +
# Grafico de puntos
geom_point(aes(color=Continent), position=position_jitter(width=0.2,height=.2)) +
# Boxplot
geom_boxplot(aes(alpha=0.2, fill=Continent)) +
# Agregar paleta de colores personalizada
scale_color_manual(values = colorSequence1) +
scale_fill_manual(values = colorSequence1) +
# Agregar etiquetas
labs(title = "Global distribution of nequality-adjusted education index by region",
subtitle = "Aggregated from 2010-2017",
caption = " 1: Africa, 2:Antartida (removed), 3:Asia, 4:Europe, 5:North America, 6:Oceania, 7:South America",
x = "Continent", y = "Inequality-adjusted education index") +
# Eliminamos legenda
theme(legend.position = "none")
plot2
Una de las medidas más importante si se desea analizar la dispersión de los datos, son los diagramas de caja o de bigotes, comunmente conocido, donde se puede observar que, la mediana de Africa esta por debajo de la mediana del resto de continentes, haciendo un gran esfuerzo apenas alcanza al primer cuartil de Asia. En ese sentido, se puede notar la inequidad que existe entre Africa y el resto de continentes, no solo existe esta inequidad dentro de los contienentes, sino tambien entre los continentes, en donde Africa es el gran perjudicado en el análisis. Por otro lado, confirmando lo dicho en la anterior gráfica, Europa es el continente con una mayor mediana con respecto a los otros contienentes. adicionalmente, cuenta con muy poca dispersión al igual que Suramerica, pero su mediana esta muy por debajo en comparacion con Europa que en este caso es el gran referente en lo que tiene que ver a inequidad en educación, es decir, que es el continente mas equitativo en cuanto a la eduación de sus habitantes. Por ultimo, Oceania y Asia tienen un comportamiento similar, donde la mayor concentración de los datos se encuentran por debajo del segundo cuartil, Oceania teniendo una mediana mayor en comparación con Asia.
Índice de inequidad en la educación por pais en el año 2017
ggplot(mapa_mundo %>%
dplyr::filter(year==2017), aes(long, lat, group=as.factor(group))) +
geom_polygon(aes(fill=value)) +
scale_fill_viridis_c(option="plasma") +
labs(title = "Índice de inequidad en la educación por pais año 2017") +
theme_bw()
¿como se clasifica colombia con todos los paises, con el continente y con paises de suramerica?
plot3 <- plot1 +
# Colombia
geom_vline(xintercept = 75,
color = 'red') +
# Colombia label
geom_text(aes(x= 74, y= 1, label="Colombia", angle = 90),
color = 'red', size=3)
plot3
De acuerdo con la gráfica anterior, Colombia respecto a los otros paises a nivel mundial se encuentra por debajo de la mediana, lo cual evidentemente es una referencia negativa, dado que significa que esta en el grupo que mayor inequidad tiene en la educación de sus habitantes.
indice_2017_57 <- educacion %>%
dplyr::filter(year == '2017') %>%
dplyr::filter(Continent %in% c(5,7)) %>%
dplyr::arrange(by = value)
# lista de los iso3 de cada pais en el orden del subset anterior
sorted_Cuntry_57 <- factor(indice_2017_57$iso3,
levels = indice_2017_57$iso3)
Indice ordenado de inequidad en la educacion ajustado en America
plot4 <- ggplot(indice_2017_57) +
# add canvas aesthetics
aes(x=sorted_Cuntry_57, y=value) +
# Median
geom_vline(xintercept = length(unique(indice_2017_57$iso3))/2,
color = 'gray59') +
# Median label
geom_text(aes(x= 14.2, y= 1, label="Median", angle = 90),
color = 'gray59', size=3) +
# add bars layer
geom_bar(aes(x=sorted_Cuntry_57, y=value, fill=as.factor(Continent)),
stat = "identity", alpha= 0.8) +
# add text layer
geom_text(aes (y = value + 0.02, label = sorted_Cuntry_57, angle = 90), size=2) +
# agregar paleta de colores personalizada
scale_fill_manual(values = colorSequence1[c(5,7)]) +
# Customize legends
guides(fill=guide_legend(title="Continent")) +
# Customize labels
labs(title = "Sorted Inequality-adjusted education index in America",
subtitle = "Year 2017",
caption = "5:North America, 7:South America",
x = "America countries", y = "Inequality-adjusted education index") +
# adjust background, remove x label
theme(legend.position=c(0.1,0.8), axis.text.x = element_blank()) +
# Hide x tick marks, labels, and grid lines
scale_x_discrete(breaks=NULL)
plot4
En este caso, se compara Colombia con respecto a paises del mismo continente, en donde de nuevo se encuentra por debajo de la mediana, es decir, que esta en el grupo de mayor inequidad el cual lidera Estados Unidos y Canadá.
indice_2017_7 <- indice_2017_57 %>%
dplyr::filter(Continent == 7) %>%
dplyr::arrange(by = value)
# lista de los iso3 de cada pais en el orden del subset anterior
sorted_Cuntry_7 <- factor(indice_2017_7$iso3,
levels = indice_2017_7$iso3)
Indice ordenado de inequidad en la educacion en suramerica
plot5 <- ggplot(indice_2017_7) +
# add canvas aesthetics
aes(x=sorted_Cuntry_7, y=value) +
# Median
geom_vline(xintercept = length(unique(indice_2017_7$iso3))/2,
color = 'gray59') +
# Median label
geom_text(aes(x= 5.9, y= 1, label="Median", angle = 90),
color = 'gray59', size=3) +
# add bars layer
geom_bar(aes(x=sorted_Cuntry_7, y=value, fill=as.factor(Continent)),
stat = "identity", alpha= 0.8) +
# add text layer
geom_text(aes (y = value + 0.02, label = sorted_Cuntry_7, angle = 90), size=2) +
# agregar paleta de colores personalizada
scale_fill_manual(values = colorSequence1[5]) +
# Customize legends
guides(fill=FALSE) +
# Customize labels
labs(title = "Sorted Inequality-adjusted education index in South America",
subtitle = "Year 2017",
x = "South American countries", y = "Inequality-adjusted education index") +
# Hide x tick marks, labels, and grid lines
scale_x_discrete(breaks=NULL)
plot5
ggplot(mapa_mundo %>%
dplyr::filter(year==2017 & Continent_Code %in% c("SA"))) +
geom_polygon(aes(long, lat, group=as.factor(group), fill=value)) +
scale_fill_viridis_c(option="plasma") +
labs(title = "Índice de inequidad en la educación en America año 2017") +
theme_bw()
En laS gráficaS anteriores, se compara a Colombia respecto a paises suramericanos, teniendo en cuenta que la mayoria de estos son paises emergentes o en vía de desarrollo al igual que Colombia. Se puede observar que, como ha sucedido en todas las comparaciones se encuentra por debajo de la mediana que es Bolivia. En este caso, no solo esta en el grupo de paises con mayor inequidad en la educacion de sus habitantes a nivel muldial y contienental, sino tambien con respecto a paises que tienen un comportamiento y desarrollo parecido al nuestro, lo cual agrava la situación.
Indice de inequidad en la educacion en sur America desde el año 2010 hasta el 2017
anim <- ggplot(educacion %>% dplyr::filter(Continent == 7)) +
aes(x=iso3, y=value) +
geom_bar(aes(x=iso3, y=value, fill=as.factor(country_name)),
stat = "identity", alpha= 0.8) +
scale_x_discrete(breaks=NULL) +
geom_text(aes (y = 0.2, label = country_name, angle = 90), size=3) +
labs(y = "value", x = "Country") +
guides(fill=FALSE) +
scale_fill_manual(values = brewer.pal(12, "Paired")) +
theme_bw() +
transition_states(year, transition_length = 1, state_length = 1) +
ggtitle('Inequality-adjusted education index year {closest_state}')
# animate it
animate(anim,
width = 400, height = 400,
nframes = 480, fps = 24)
ggplot(mapa_mundo %>% dplyr::filter(Continent == 7),
aes(x=country_name, y=year, fill=value)) +
geom_tile() +
scale_fill_viridis_c(option="magma") +
theme(axis.text.x = element_text(angle = 90)) +
labs(title = "Indice de inequidad en la educacion en sur America",
subtitle = "2010-2017",
x = "Country", y="Year")
coord_educacion <- ggplot(educacion %>% dplyr::filter(Continent == 7),
aes(x = year, y = value, color=country_name)) +
geom_line() + geom_point(aes(color = country_name), shape=16, size=2) +
labs(title = "Indice de inequidad en la educacion en sur America",
subtitle = "2010-2017") +
scale_fill_manual(values = brewer.pal(12, "Paired")) +
theme_ipsum() + theme(plot.title = element_text(size=10))
ggplotly(coord_educacion)
De acuerdo con las gráficas anteriores, se observa el comportamiento del indice de inequidad en educación para suramerica al largo de los años, desde el año 2010 hasta el 2017. Se puede ver, que en todo a lo largo del tiempo, Argentina y Chile lideran, en el caso de Colombia, se mantiene estable al mismo nivel de Brasil, Ecuador, Guyana y Peru, claramente entre los mas bajos de esta parte del contienente americano.
¿como se relaciona el indice de desarrollo con respecto al indice de inequidad en la educacion en suramerica?
educacion_7 <- subset(educacion, educacion$Continent == 7) %>%
dplyr::mutate(indicator_name = "Inequality in Education index") %>%
dplyr::select(country_name, year, value, indicator_name)
desarrollo_7 <- subset(desarrollo, desarrollo$Continent == 7) %>%
dplyr::mutate(indicator_name = "Human Development index") %>%
dplyr::select(country_name, year = variable, value, indicator_name)
datos_t_7 <- rbind(educacion_7, desarrollo_7)
Desarrollo humano e inequidad en la educacion en sur America
ggplot(datos_t_7, aes(x=value, fill=indicator_name, color=indicator_name)) +
geom_density(alpha=.3) +
scale_fill_brewer(type = "qual", palette = "Set1") +
scale_color_brewer(type = "qual", palette = "Set1") +
labs(title = "Human Development and Inequality in Education in South America",
subtitle = "From 2010-2017",
caption = "index adjusted",
x = "Percentage",
y= "Density (Fequency per inequality)")
Teniendo en cuenta las anteriores distribuciones de densidad de los años 2010 hasta el 2017, se puede decir que en el caso de la inequidad en educación la mayoria de los datos se encuentran alrededor de 0.6, en cambio el indice de desarrollo humano esta alrededor de 0.75, lo cual significa que han tenido un buen desarrollo en general, pero esto no se ve reflejado en la educación.
En la siguiente linea de codigo unimos los dos conjuntos de datos
corrDataset <- merge(educacion_7, desarrollo_7, by=c("country_name","year")) %>%
select(year, Education = value.x, Development = value.y)
mcor <- cor(corrDataset)
corrplot::corrplot(mcor, method = "number", type="upper")
plot6 <- ggplot(corrDataset,
aes(x = Education, y = Development)) +
geom_point(color=colorSequence1[2]) + theme_bw() +
transition_states(year, transition_length = 1, state_length = 1) +
ggtitle('Inequality-adjusted education index year {closest_state}')
# animate it
animate(plot6,
width = 400, height = 400,
nframes = 480, fps = 24)
Podemos observar el comportamiento o la relación del indice de desarrollo humano y la inequidad en educación al pasar de los años, para un intervalo de tiempo del año 2010 al 2017, en donde se puede ver que la mayoria de los puntos de coordenadas, estan por debajo de 0.8 en desarrollo y en muchas ocasiones llegando a 0.5 en educación, lo que significa que el desarrollo humano no tiene un crecimiento lineal con respecto a la inequidad en la educacion, es decir, que si en algunos años incrementa el desarrollo humano, en educación este incremento es una menor proporción, es decir que el desarrollo no se basa completamente en educación, sino en otros factores.
¿como se relaciona el indice de desarrollo con el indice de inequidad en la educacion en Europa?
educacion_4 <- subset(educacion, educacion$Continent == 4) %>%
dplyr::mutate(indicator_name = "Inequality in Education index") %>%
dplyr::select(country_name, year, value, indicator_name)
desarrollo_4 <- subset(desarrollo, desarrollo$Continent == 4) %>%
dplyr::mutate(indicator_name = "Human Development index") %>%
dplyr::select(country_name, year = variable, value, indicator_name)
datos_t_4 <- rbind(educacion_4, desarrollo_4)
Desarrollo humano e inequidad en la educacion en Europa
ggplot(datos_t_4, aes(x=value, fill=indicator_name, color=indicator_name)) +
geom_density(alpha=.3) +
scale_fill_brewer(type = "qual", palette = "Set1") +
scale_color_brewer(type = "qual", palette = "Set1") +
labs(title = "Human Development and Inequality in Education in europa",
subtitle = "From 2010-2017",
caption = "index adjusted",
x = "Percentage",
y= "Density (Fequency per inequality)")
Teniendo en cuenta las anteriores distribuciones de densidad del año 2010 hasta el 2017, se puede decir que el comportamiento de desarrollo humano y educación son similares, con la mayoria de los datos por encima de 0.8, lo cual es muy superior a lo visto anteriormente con suramerica, esto demuestra que Europa es un referente no solo en desarrollo humano, sino tambien en la igualdad en la educación de sus habitantes.
En la siguiente linea de codigo unimos los dos conjuntos de datos
corrDataset <- merge(educacion_4, desarrollo_4, by=c("country_name","year")) %>%
select(year, Education = value.x, Development = value.y)
mcor <- cor(corrDataset)
corrplot::corrplot(mcor, method = "number", type="upper")
plot7 <- ggplot(corrDataset,
aes(x = Education, y = Development)) +
geom_point(color=colorSequence1[2]) + theme_bw() +
transition_states(year, transition_length = 1, state_length = 1) +
ggtitle('Inequality-adjusted education index year {closest_state}')
# animate it
animate(plot7,
width = 400, height = 400,
nframes = 480, fps = 24)
Se observa la relación del indice de desarrollo humano y el indice de inequidad ajustado de educación para Europa, al pasar de los años para un intervalo de tiempo del año 2010 al 2017, se puede ver que, la mayoria de los puntos de coordenadas estan por encima de 0.8 en desarollo y en muchas ocasiones llegando a 0.9 en educación y desarrollo humano, pero a pesar de que la correlación es menor que en suramerica, ambos indices en Europa han crecido en una proporción similar.