Los datos están desactualizados, INDEC (organismo que se encarga de las estadísticas oficiales que se realizan en la República Argentina) no ha actualizado la sección de educación en los últimos años.
Se analizaron diez indicadores socio-económicos recolectados de cada provincia. Como estos indicadores están altamente correlacionados, usaremos Análisis de componentes principales para reducir la redundancia y resaltar los patrones que no aparecen a simple vista. Después de visualizar los patrones, usaremos K-medias clustering para agrupar a las provincias en grupos de desarrollo similar.
Estos resultados se pueden utilizar para planificar políticas públicas ayudando a asignar recursos para desarrollar programas de infraestructura, educación y bienestar.
Argentina se encuentra tercera en el ranking de población en Sudamérica, pero la población está distribuida desproporcionadamente a lo largo y ancho del país. Alrededor del 60% de la población vive en la región pampeana, (Buenos Aires, La Pampa, Santa Fe, Entre Ríos y Córdoba) región que solo abarca alrededor del 20% de la superficie argentina.
El PBI se trata de una medida macroeconómica que expresa el valor monetario de la producción de bienes y servicios de demanda final. Para medir qué tan ricos o pobres son los habitantes, los economistas utilizan el PBI per cápita, que es el PBI dividido por la población de la provincia.
#Calculo pbi per cap
argentina <- argentina %>%
mutate(pbi_per_cap = pbi / pob)
#provincias mas ricas
(provincias_ricas <- argentina %>%
arrange(-pbi_per_cap) %>%
select(provincia, pbi_per_cap) %>%
top_n(4) )
## Selecting by pbi_per_cap
## # A tibble: 4 x 2
## provincia pbi_per_cap
## <chr> <dbl>
## 1 Santa Cruz 42.6
## 2 Neuquén 40.9
## 3 Chubut 34.9
## 4 San Luis 27.3
# provincias con mayor poblacion
(mas_pobladas <- argentina %>%
arrange(pob) %>%
select(provincia, pob) %>%
filter(pob > 1000000))
## # A tibble: 9 x 2
## provincia pob
## <chr> <dbl>
## 1 Chaco 1055259
## 2 Misiones 1101593
## 3 Salta 1214441
## 4 Entre Ríos 1235994
## 5 Tucumán 1448188
## 6 Mendoza 1738929
## 7 Santa Fe 3194537
## 8 Córdoba 3308876
## 9 Buenos Aires 15625084
El análisis de componentes principales (PCA) es una técnica de aprendizaje no supervisada que resume los datos multivariados al reducir las redundancias (variables que están correlacionadas). Las nuevas variables (los componentes principales) son combinaciones lineales de los datos originales que retienen la mayor variación posible. Imaginariamos que algunos aspectos de los datos económicos y sociales estarían altamente correlacionados, así que veamos qué surge.
argentina_matrix <- argentina %>%
select_if(is.numeric) %>%
as.matrix()
head(argentina_matrix)
## pbi analfabetismo pobreza infra_deficiente abandono_escuela
## [1,] 292689868 1.38324 8.167798 5.511856 0.7661682
## [2,] 6150949 2.34414 9.234095 10.464484 0.9519631
## [3,] 69363739 2.71414 5.382380 10.436086 1.0350558
## [4,] 7968013 5.60242 12.747191 17.438858 3.8642652
## [5,] 9832643 7.51758 15.862619 31.479527 2.5774621
## [6,] 17747854 1.54806 8.051752 8.044618 0.5863094
## sin_asist_sanitaria mortalidad_infantil pob cines_per_cap
## [1,] 48.7947 4.4 15625084 6.015968e-06
## [2,] 45.0456 1.5 367828 5.437324e-06
## [3,] 45.7640 4.8 3308876 1.118204e-05
## [4,] 62.1103 5.9 992595 4.029841e-06
## [5,] 65.5104 7.5 1055259 2.842904e-06
## [6,] 39.5473 3.0 509108 1.571376e-05
## doctores_per_cap pbi_per_cap
## [1,] 0.004835622 18.732051
## [2,] 0.004502104 16.722352
## [3,] 0.010175359 20.962931
## [4,] 0.004495288 8.027456
## [5,] 0.003604802 9.317753
## [6,] 0.004498063 34.860686
PCA encuentra una representación dimensional más baja de los datos que mantiene la cantidad máxima de variación. Es excelente para analizar conjuntos de datos multivariados, como este, con varias columnas numéricas que están altamente correlacionadas. Esto permite pasar de once dimensiones (once variables originales) a dos dimensiones (dos variables que son resúmenes de las once originales).
# cargar FactoMineR
library(FactoMineR)
#aplicar pca
argentina_pca <- PCA(argentina_matrix, scale.unit = TRUE)
Una gráfica de círculo de correlación (también conocida como gráfica de correlación de variables) muestra la relación entre todas las variables a medida que se representan en los dos primeros componentes principales (Dimensión 1 y Dimensión 2).
Las variables correlacionadas positivamente tienen vectores similares
Los vectores de variables correlacionadas negativamente están en lados opuestos del origen de la gráfica (cuadrantes opuestos).
Cada eje representa un componente principal. Los vectores que apuntan en la dirección del componente están correlacionados con ese componente.
El porcentaje de la varianza original explicada por cada componente (dimensión) se da entre paréntesis en las etiquetas de los ejes.
#carga factoextra
library(factoextra)
pca_var_plot <- fviz_pca_var(argentina_pca)
( pca_var_plot <- fviz_pca_var(argentina_pca) )
( var_primeras_dos <- argentina_pca$eig[2, 1] + argentina_pca$eig[2, 2] )
## [1] 20.25001
En el gráfico de correlación de variables, podemos ver que la población y el PIB están altamente correlacionados; el analfabetismo, la pobreza, la falta de atención médica, la deserción escolar y la infraestructura deficiente están correlacionados; y el PIB per cápita y las salas de cine per cápita están correlacionados.
Pero, ¿cómo se asignan estas correlaciones a las provincias? Para profundizar en esa pregunta, tracemos los componentes principales individuales de cada provincia y busquemos agrupaciones.
#dim2 vs dim1
fviz_pca_ind(argentina_pca, title = "Provincias - PCA")
Una provincia se destaca y el resto sigue el gradiente a lo largo de la segunda dimensión. Para detectar posibles patrones podemos aplicar k-media clustering.
# Defniir seed para reproducibilidad
set.seed(1234)
head(argentina_pca$ind$coord)
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## 1 -2.3614699 5.85722972 0.02887238 1.1415873 -0.55664309
## 2 -0.6584545 -0.48651253 -1.29107656 -0.2415875 -0.03742897
## 3 -2.5752814 0.52381577 1.70307390 -0.9930687 2.11197740
## 4 2.8268547 0.15875925 0.48894162 -1.0256780 0.09720908
## 5 4.3000823 0.09073316 0.08145973 0.8101764 1.08427385
## 6 -2.7072455 -1.36535411 -0.23583031 0.9771357 -0.60816245
#data frame intermedio con pca1, pca2
argentina_comps <- tibble(pca_1 = argentina_pca$ind$coord[, 1],
pca_2 = argentina_pca$ind$coord[, 2])
#Cluster las observaciones usando los primeros dos componentes
( argentina_km <- kmeans(argentina_comps, centers = 4, nstart = 20, iter.max = 50) )
## K-means clustering with 4 clusters of sizes 6, 1, 8, 7
##
## Cluster means:
## pca_1 pca_2
## 1 3.1637648 0.1200775
## 2 -2.3614699 5.8572297
## 3 -0.1320515 -0.3199319
## 4 -2.2235295 -0.5740342
##
## Clustering vector:
## [1] 2 3 4 1 1 4 3 1 3 4 3 4 1 4 3 1 3 3 4 4 1 3
##
## Within cluster sum of squares by cluster:
## [1] 4.375350 0.000000 3.109136 8.403846
## (between_SS / total_SS = 89.7 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Ahora que tenemos asignaciones para cada provincia, haremos un gráfico de las provincias de acuerdo a las coordenadas de sus componentes principales, coloreadas por el cluster.
clusters_as_factor <- factor(argentina_km$cluster)
fviz_pca_ind(argentina_pca,
title = "Cluster Provincias - PCA",
habillage = clusters_as_factor)
Buenos Aires está en una liga propia, con el mayor valor positivo en la Dimensión 2 con diferencia. La siguiente figura es una biplot, una combinación de la gráfica de los componentes y la gráfica del círculo
Dado que los vectores correspondientes al pib y al pop están en la misma dirección que la Dimensión 2, Buenos Aires tiene un PIB alto y una población alta. Visualicemos este patrón con una gráfica de pib contra clúster (deberíamos obtener resultados similares con la población).
library(ggrepel)
argentina <- argentina %>%
mutate(cluster= clusters_as_factor)
ggplot(argentina, aes(y = pbi/1000000, x = cluster, color = cluster)) +
geom_point() +
geom_text_repel(aes(label = provincia), show.legend = FALSE) +
labs(x = "Cluster", y = "PBI en millones") +
ggtitle("PBI Argentino vs Provincias por cluster")
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
Si graficamos pbi_per_cap para cada cluster, podemos ver que las provincias del cluster 4, en general, tienen un PIB per cápita mayor que las provincias de los otros clusters. San Luis es la única provincia de los otros clusters con pbi per cap en el rango de valores observado en el cluster 2. Veremos resultados similares para movie_theaters_per_cap y Doctors_per_cap.
ggplot(argentina, aes(y = pbi_per_cap, x = cluster, color = cluster)) +
geom_point() +
geom_text_repel(aes(label = provincia), show.legend = FALSE) +
labs(x = "Cluster", y = "PBI per capita") +
ggtitle("PBI per capita vs Clusters de Provincias de Argentina")
Las provincias del Cluster 1 tienen valores positivos altos en la Dimensión 1. Como se muestra en el biplot, las provincias con valores positivos altos en la Dimensión 1 tienen valores altos de pobreza, infraestructura deficiente, etc. Estas variables también están correlacionadas negativamente con pib_per_cap, por lo que estas provincias tienen valores bajos en esta variable.
ggplot(argentina, aes(x = cluster, y = pobreza, color = cluster)) +
geom_point() +
labs(x = "Cluster", y = "Pobreza") +
geom_text_repel(aes(label = provincia), show.legend = FALSE) +
ggtitle("Pobreza vs Provincia por Clusters de Argentina")
Ahora que tenemos una idea de cómo varía el bienestar social y económico entre las provincias, podemos reducir a la Argentina en 3 regiones (y Buenos Aires)