Importando librerias
library(tidyverse)
library(ggrepel)
library(corrplot)
library(factoextra)
library(plotly)
library(RColorBrewer)
library(patchwork)
Lectura de los datos
options(scipen = 9999)
#Lectura de la base de datos
datos <- readxl::read_excel("Tabla depurada.xlsx", skip = 1, col_names = TRUE) %>%
mutate(Paises = factor(Paises)) %>%
rename(
Estatus_migratorio = `Estatus migratorio /inmigratorio`,
Acceso_salud = `Acceso a los servicios de salud`,
Criminalidad = `Criminalidad (TC)`
)
Se toman solo las filas de nuestros paises de interes y se eliminan
las columnas que no tienen valor para dichos paises
paises_seleccionados <- c("Nueva Caledonia", "Eslovenia", "Hungría", "Macedonia", "Dinamarca")
datos <- datos %>%
filter(Paises %in% paises_seleccionados)
# Eliminar las columnas que no cuentan con registro para los paises seleccionados
datos <- datos %>% select_if(~ !any(is.na(.)))
Se eliminan algunas variables no estandarizadas ni uniformes
datos_filtrados <- datos %>%
filter(Paises %in% paises_seleccionados) %>%
select(-"Censos de población y vivienda (1992, 2002).", -"Registros de enfermedades.",
-"Continente", -"Indicadores de Morbilidad:", -"Tasa específica de matrícula por edad",
-"Tasa de repetición por grado", -"Coeficiente de Eficacia", -"Distribución en porcentaje del gasto público corriente en educación por nivel", -"Porcentaje de estudiantes en educación terciaria por niveles de la CINE", -"Porcentaje de estudiantes de sexo femenino en cada nivel de la CINE de la educación terciaria",-"Porcentaje de matrícula en la educación secundaria por tipo de educación", -"Gasto público en un nivel educativo específico en porcentaje del gasto público total en educación", -"Referencias", -"Distribución en porcentaje de los estudiantes de educación terciaria por campos de estudio de la CINE", -"Nivel educativo de la población de 25 años y más",-"Tasa de abandono por grado", -"Cantidad de Indices NO encontrados de 87")
Conversión de columnas a valores numericas
columnas_numericas <- c("Hombres", "Mujeres", "Discapacidad", "Estatus_migratorio", "Pobreza", "Acceso_salud", "Acceso a la seguridad social", "Criminalidad","Indicadores de Mortalidad", "Indicadores de Natalidad", "Calidad de vida", "Mortalidad Materna", "Esperanza de vida (años)", "Número de adultos analfabetos", "Tasa bruta de ingreso en el primer grado de primaria", "Tasa bruta de matrícula (TBM)", "Tasa neta de matrícula (TNM)","Porcentaje de repetidores", "Gasto público en educación en porcentaje del PNB", "Gasto público en educación en porcentaje del gasto total del Estado","Número de alumnos por docente","Porcentaje de docentes de sexo femenino", "Porcentaje de matrícula de la enseñanza privada", "Gasto público corriente en educación en porcentaje del gasto público total en educación", "Tasa bruta de ingreso al último grado de primaria (Primary completion rate)", "Tasa bruta esperada de graduación primaria", "Tasa de promoción","Porcentaje de docentes certificados", "Confianza y Corrupción (IPC puntos)")
datos_filtrados <- datos_filtrados %>%
mutate(across(all_of(columnas_numericas), ~ as.numeric(as.character(.))))
Análisis Exploratorio
summary_df <- datos_filtrados %>%
pivot_longer(-Paises, names_to = "Variable", values_to = "Valor") %>%
group_by(Variable) %>%
summarise(
Media = mean(Valor, na.rm = TRUE),
Mediana = median(Valor, na.rm = TRUE),
SD = sd(Valor, na.rm = TRUE),
Min = min(Valor, na.rm = TRUE),
Max = max(Valor, na.rm = TRUE)
)
DT::datatable(summary_df, options = list(pageLength = 10))
Análisis de Correlaciones de factores sociales
p1 <- ggplot(datos_filtrados, aes(x = Pobreza, y = Criminalidad, color = Paises)) +
geom_point(size = 4) +
geom_text_repel(aes(label = Paises)) +
theme_minimal() +
labs(title = "Relación Pobreza-Criminalidad")
p1

# Convertir la variable Paises a factor para facilitar la visualización
datos <- datos_filtrados %>% mutate(Paises = factor(Paises))
# Gráfico de barras para visualizar los IPC puntos por país
ggplot(datos, aes(x = Paises, y = `Confianza y Corrupción (IPC puntos)`, fill = Paises)) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = "Confianza y Corrupción (IPC puntos) por País",
y = "IPC puntos",
x = "País")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Calidad de vida`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Calidad de Vida",
x = "Confianza y Corrupción (IPC puntos)",
y = "Calidad de vida")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Pobreza`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Pobreza",
x = "Confianza y Corrupción (IPC puntos)",
y = "Pobreza")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Criminalidad`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Criminalidad",
x = "Confianza y Corrupción (IPC puntos)",
y = "Criminalidad")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Acceso_salud`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Acceso a la salud",
x = "Confianza y Corrupción (IPC puntos)",
y = "Acceso a la salud")

ggplot(datos_filtrados, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Esperanza de vida (años)`, label = Paises)) +
geom_point(color = "red", size = 3) +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC y Esperanza de Vida",
x = "Confianza y Corrupción (IPC puntos)",
y = "Esperanza de vida (años)")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Acceso a la seguridad social`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Acceso a la seguridad social",
x = "Confianza y Corrupción (IPC puntos)",
y = "Acceso a la seguridad social")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Grado de cohesión social`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Grado de cohesión social",
x = "Confianza y Corrupción (IPC puntos)",
y = "Grado de cohesión social")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Número de adultos analfabetos`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Número de adultos analfabetos",
x = "Confianza y Corrupción (IPC puntos)",
y = "Número de adultos analfabetos")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Tasa bruta de ingreso en el primer grado de primaria`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Tasa bruta de ingreso en el primer grado de primaria",
x = "Confianza y Corrupción (IPC puntos)",
y = "Tasa bruta de ingreso en el primer grado de primaria")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Tasa neta de ingreso en el primer grado de primaria`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Tasa neta de ingreso en el primer grado de primaria",
x = "Confianza y Corrupción (IPC puntos)",
y = "Tasa neta de ingreso en el primer grado de primaria")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Gasto público en educación en porcentaje del PNB`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Gasto público en educación en porcentaje del PNB",
x = "Confianza y Corrupción (IPC puntos)",
y = "Gasto público en educación en porcentaje del PNB")

ggplot(datos, aes(x = `Confianza y Corrupción (IPC puntos)`, y = `Porcentaje de docentes certificados`, label = Paises)) +
geom_point(size = 3, color = "steelblue") +
geom_text(vjust = -0.5) +
theme_minimal() +
labs(title = "Relación entre IPC puntos y Porcentaje de docentes certificados",
x = "Confianza y Corrupción (IPC puntos)",
y = "Porcentaje de docentes certificados")
#Análisis de Correlación
cor_matrix <- cor(datos %>% select(-Paises))
corruption_cor <- cor_matrix[,"Confianza y Corrupción (IPC puntos)"] %>%
sort(decreasing = TRUE)
head(corruption_cor, 10)
## Confianza y Corrupción (IPC puntos)
## 1.0000000
## Ingreso corriente per cápita
## 0.9692443
## Inscripción escolar, nivel secundario (% bruto)
## 0.9528938
## Gasto público en educación en porcentaje del PNB
## 0.9498502
## Grado de accesibilidad a carretera pavimentada
## 0.9471654
## Calidad de vida
## 0.9164379
## Tasa bruta de graduación primaria
## 0.8964578
## Indicadores de Mortalidad
## 0.8824977
## Indicadores de Natalidad
## 0.8813995
## Porcentaje de docentes certificados
## 0.8091768
#Análisis del Sistema Educativo
educacion_vars <- datos_filtrados %>% select(
Paises,
`Porcentaje de docentes certificados`,
`Gasto público en educación en porcentaje del PNB`,
`Número de alumnos por docente`,
`Tasa neta de matrícula (TNM)`,
`Esperanza de vida escolar (años)`
)
educacion_vars %>%
pivot_longer(-Paises) %>%
ggplot(aes(x = Paises, y = value, fill = name)) +
geom_col(position = "dodge") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Comparativa de Indicadores Educativos")
#Análisis de Género y Desarrollo Social
datos %>%
select(Paises, Hombres, Mujeres, `Índice de paridad entre los géneros (IPG)`) %>%
pivot_longer(-Paises) %>%
ggplot(aes(x = Paises, y = value, fill = name)) +
geom_col(position = "dodge") +
labs(title = "Distribución de Género e Igualdad")
