library(readr)
library(dplyr)
library(stringr)
library(corrplot)
library(ggplot2)
library(kableExtra)
library(tidyverse)
library(FactoMineR)
library(factoextra)
setwd("~/EspecializacionUNAL/TopicosEstadistica_2024/Global Protests from 1990 to March 2020")
data <- read_csv("data.csv")Entrega 2
# PCA: Seleccionar variables continuas
continuous_vars <- data %>%
select(Electoral_Score, Liberal_Score, Participatory_Score,
Deliberative_Score, Egalitarian_Score, HDI_Score)
# Manejar valores faltantes imputando con la media
continuous_vars <- continuous_vars %>%
mutate_all(~ ifelse(is.na(.), mean(., na.rm = TRUE), .))
# Estandarizar las variables
continuous_vars_scaled <- scale(continuous_vars)# Realizar PCA
pca <- PCA(continuous_vars_scaled, graph = FALSE)
# Gráfico de la varianza explicada
fviz_eig(pca, addlabels = TRUE, barfill = "steelblue", barcolor = "black") +
ggtitle("Varianza Explicada por Componente (PCA)")# Visualizar contribuciones de las variables a las dimensiones principales
fviz_pca_var(pca, col.var = "contrib") +
ggtitle("Contribuciones de Variables a Componentes Principales")# Mostrar resultados de las cargas
pca$var$coord Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
Electoral_Score 0.9755227 -0.164544356 0.10053015 -0.04513085 0.086268744
Liberal_Score 0.9894866 -0.098764916 -0.01264704 0.01825776 0.030500074
Participatory_Score 0.9811054 -0.120114300 0.10622273 -0.04246518 -0.099586984
Deliberative_Score 0.9768393 -0.133428789 -0.04919958 0.15520701 -0.011944711
Egalitarian_Score 0.9805388 0.007783716 -0.16886545 -0.09712349 -0.009035259
HDI_Score 0.7225888 0.690287997 0.03303145 0.01556103 0.005392113
Dimensión 1 (Dim.1) – Explica el 88.9% de la varianza
Esta dimensión representa un nivel general de calidad democrática en múltiples aspectos. Los altos valores de carga sugieren que este componente mide principalmente la existencia de elecciones libres, libertades civiles, participación ciudadana, y justicia social.
Significado práctico: Países con altos valores en este componente probablemente sean democracias consolidadas, mientras que países con valores bajos podrían tener instituciones democráticas débiles o autoritarias.
Dimensión 2 (Dim.2) – Explica el 9.1% de la varianza
La dimensión 2 está fuertemente relacionada con el desarrollo humano. La carga positiva sugiere que un alto valor en este componente indica buenas condiciones de vida, educación y salud.
Significado práctico: Aunque Egalitarian_Score tiene una ligera carga positiva (0.007), la diferencia entre HDI_Score y los demás índices democráticos indica que un país puede tener buen desarrollo humano sin necesariamente tener instituciones democráticas fuertes.
Otras dimensiones (Dim.3, Dim.4, Dim.5) no explican una parte significativa de la varianza (aproximadamente el 2% combinado).
Interpretación:
El hecho de que HDI_Score esté alineado principalmente con Dim.2 mientras el resto de los índices democráticos lo están con Dim.1 indica que existe una separación importante entre desarrollo humano y democracia. Esto sugiere que: Países democráticos pueden tener altos o bajos niveles de desarrollo humano (p. ej., democracias emergentes o en crisis). Países con alto desarrollo humano (p. ej., algunas monarquías o regímenes autoritarios ricos) no necesariamente tienen alta calidad democrática.
— MCA: Análisis de correspondencias múltiples —
# Seleccionar variables categóricas
categorical_vars <- data %>%
select(region, protesterviolence,
protesterdemand1, protesterdemand2, violenceStatus)
# Reemplazar valores faltantes con 'Missing'
categorical_vars[is.na(categorical_vars)] <- "Missing"categorical_vars <- categorical_vars %>%
mutate(protesterviolence = as.factor(protesterviolence),
violenceStatus = as.factor(violenceStatus))
head(categorical_vars)# A tibble: 6 × 5
region protesterviolence protesterdemand1 protesterdemand2 violenceStatus
<chr> <fct> <chr> <chr> <fct>
1 North Amer… 0 political behav… labor wage disp… 0
2 North Amer… 0 political behav… Missing 0
3 North Amer… 0 political behav… Missing 0
4 North Amer… 1 land farm issue Missing 1
5 North Amer… 1 political behav… Missing 1
6 North Amer… 0 police brutality Missing 1
# Realizar MCA
mca <- MCA(categorical_vars, graph = FALSE)# Gráfico de la varianza explicada por dimensión (Inercia)
fviz_screeplot(mca, addlabels = TRUE, barfill = "orange", barcolor = "black") +
ggtitle("Varianza Explicada por Componente (MCA)")# Visualizar relaciones entre categorías
fviz_mca_var(mca, col.var = "cos2") +
ggtitle("Relación entre Variables Categóricas")# Mostrar resultados de coordenadas de las categorías
mca$var$coord Dim 1 Dim 2
Africa 0.51909462 0.116419701
Asia 0.22806711 0.213848448
Central America 0.12794414 0.421916109
Europe -0.53884222 0.008201217
MENA 0.53161867 -0.266207032
North America 0.29990546 -0.631944543
Oceania 0.18041250 0.171347964
South America -0.39316138 -0.412996351
protesterviolence_0 -0.50743144 -0.042083535
protesterviolence_1 1.41473101 0.117329904
protesterdemand1_labor wage dispute -0.47494365 0.922672882
protesterdemand1_land farm issue -0.03155948 1.211614934
protesterdemand1_Missing 3.43451376 0.440941146
protesterdemand1_police brutality 0.96178137 0.758231274
protesterdemand1_political behavior, process 0.02213083 -0.620598641
protesterdemand1_price increases, tax policy 0.12667400 0.989109124
protesterdemand1_removal of politician 0.05198143 1.614051222
protesterdemand1_social restrictions -0.75186367 0.810842387
protesterdemand2_labor wage dispute -0.18321363 -0.857381890
protesterdemand2_land farm issue 0.56959871 -0.862994066
protesterdemand2_Missing -0.05249499 -0.077336302
protesterdemand2_police brutality 0.79586382 -0.719172090
protesterdemand2_political behavior, process -0.07695041 2.753002362
protesterdemand2_price increases, tax policy -0.22015008 0.133075673
protesterdemand2_removal of politician 0.85268761 -1.336242563
protesterdemand2_social restrictions -0.24786530 -1.018158504
violenceStatus_0 -0.77464036 -0.018746831
violenceStatus_1 0.98334167 0.023797547
Dim 3 Dim 4
Africa -0.10376021 -0.31884443
Asia -0.93656356 1.02079127
Central America 0.79762084 -0.80137281
Europe 0.15467782 -0.48748429
MENA 2.06712535 1.20638642
North America 0.56609184 0.74575840
Oceania -1.37600501 0.93495806
South America -0.56219018 -0.70895451
protesterviolence_0 0.05463025 0.12159172
protesterviolence_1 -0.15231043 -0.33900061
protesterdemand1_labor wage dispute 0.11488487 -0.73876294
protesterdemand1_land farm issue -0.98268051 0.39054555
protesterdemand1_Missing -2.63564195 -3.71031414
protesterdemand1_police brutality -0.55847170 0.97534447
protesterdemand1_political behavior, process -0.00360631 -0.02680561
protesterdemand1_price increases, tax policy 0.40802327 -0.98688465
protesterdemand1_removal of politician 0.58361835 0.84049780
protesterdemand1_social restrictions -0.65316508 1.83167437
protesterdemand2_labor wage dispute 0.61882856 -2.21338278
protesterdemand2_land farm issue -0.54024713 -0.92202615
protesterdemand2_Missing -0.29138937 0.03612802
protesterdemand2_police brutality -0.48122514 1.68408887
protesterdemand2_political behavior, process 1.09458072 -0.07216831
protesterdemand2_price increases, tax policy 1.33567329 -1.43757345
protesterdemand2_removal of politician 2.59045697 1.02552087
protesterdemand2_social restrictions -0.16536425 -0.26800508
violenceStatus_0 0.04897051 0.12635271
violenceStatus_1 -0.06216400 -0.16039428
Dim 5
Africa -0.67953646
Asia 0.44266829
Central America 0.15145797
Europe 0.42314539
MENA 0.05650025
North America -0.63978438
Oceania -2.77207396
South America -0.58066755
protesterviolence_0 -0.03518317
protesterviolence_1 0.09809151
protesterdemand1_labor wage dispute -1.39295548
protesterdemand1_land farm issue 0.36194667
protesterdemand1_Missing -6.09909214
protesterdemand1_police brutality -0.34294237
protesterdemand1_political behavior, process 0.03501630
protesterdemand1_price increases, tax policy 1.32103618
protesterdemand1_removal of politician -0.02335063
protesterdemand1_social restrictions 1.36677806
protesterdemand2_labor wage dispute 2.83296279
protesterdemand2_land farm issue 0.13704057
protesterdemand2_Missing -0.15446307
protesterdemand2_police brutality 2.37738631
protesterdemand2_political behavior, process 0.33565464
protesterdemand2_price increases, tax policy -1.30043210
protesterdemand2_removal of politician -0.41412284
protesterdemand2_social restrictions 0.88069481
violenceStatus_0 -0.03057490
violenceStatus_1 0.03881229
Dim 1 captura la diferencia principal entre protestas violentas (África, MENA) y pacíficas (Europa, América Latina).
Dim 2 distingue entre protestas políticas (remoción de políticos, comportamiento político) y demandas económicas (disputas salariales, precios de productos).
África y MENA están altamente correlacionadas con violencia y demandas políticas. Europa y América Latina tienden a protestas pacíficas con demandas económicas.
Dado que las dos primeras dimensiones del PCA explican más del 90% de la varianza total, y en el MCA las dos primeras dimensiones también capturan la mayor parte de la información, se ha decidido trabajar con estas variables condensadas para facilitar el análisis. El siguiente paso será generar nuevas variables a partir de los componentes principales y emplearlas en técnicas de clustering, como k-means, para identificar grupos de países con características similares en términos de calidad democrática, desarrollo humano y naturaleza de las protestas.