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.

Provincias más ricas y con mayor población.

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

Una matriz para PCA

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

Reduciendo dimensiones

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).

Para entender la gráfica

  • 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

Graficando los componentes

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"

Componentes con color

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, en su liga

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

Las provincias ricas

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 pobres

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)

Por German Eichemberger