Aplicación del Análisis de Correspondencias a datos del estado civil y lengua materna

Author

Alcides V. Oxa Gerónimo

Introducción

Se aplica la técnica estadística multivariante del Análisis de Correspondencias a datos del estado civil y de la lengua materna de personas de Bolivia para el año 2018. El objetivo es explorar las relaciones entre las categorías de las variables mencionadas. Los datos provienen de la Encuesta de Hogares del 2018 del Instituto Nacional de Estadística de Bolivia, del cual se utiliza el conjunto de datos correspondientes a las personas.

Paquetes

Se cargan los paquetes necesarios: FactoMineR para aplicar la técnica del Análisis de Corresondencias, factoextra para gráficos multivariantes, corrplot para visualizar matrices y tablas en general, y plotly para gráficos interactivos.

library(FactoMineR)
library(factoextra)
library(corrplot)
library(plotly)

Los datos de ambas variables y el factor de expansión de la encuesta han sido seleccionados y renombrados. Las categorías de lengua materna incluyen muchos idiomas, por ello se han resumido en menos categorías. Los cambios se guardaron en el fichero eclm.csv. Se cargan dichos datos:

df = read.csv("Datos/eclm.csv")
head(df)
  X        eciv       lenm   facexp
1 1    Casado/a Castellano 258.6518
2 2    Casado/a    Quechua 258.6518
3 3    Casado/a    Quechua 258.6518
4 4    Casado/a    Quechua 258.6518
5 5   Soltero/a Castellano 258.6518
6 8 Concubino/a    Quechua 258.6518

Tabla de contingencia

Se obtiene la tabla de contingencia entre Estado civil y Lengua materna con frecuencias relativas (prop.table), y se muestra con corrplot, expresado en porcentajes:

tabla = prop.table(xtabs(facexp ~ eciv + lenm, data = df))
corrplot(tabla*100, is.corr = FALSE, col.lim = c(0, 50), method = 'color', tl.col="black", tl.srt = 45,
         col = COL1('YlGn'), cl.pos = 'b', addgrid.col = 'white', addCoef.col = 'black', number.digits = 1)

Análisis de Correspondencias

Se aplica el Análisis de Correspondencias con la función CA de FactoMineR, a la tabla de contingencia, y se muestran las proporciones de inercia explicada por cada dimensión.

acs = CA(tabla, graph = FALSE)
fviz_screeplot(acs, addlabels = TRUE)

Se observa que la primera dimensión explica el 93.4% de la inercia total, la segunda dimensión explica el 6%, y la tercera y la cuarta explican menos del 1%. En las dos primeras dimensiones se explica el 99.4% de la variabilidad. Se puede explicar adecuadamente las relaciones más importantes entre las categorías considerando sólo la 1ra dimensión. En todo caso, se examinará también la 2da.

Coordenadas

El gráfico biplot para visualizar las categorías de ambas variables es:

fviz_ca(acs, repel = T)

Se muestran las puntuaciones obtenidas en las coordenadas de las categorías, en las 4 dimensiones.

par(mfrow = c(1, 2))
corrplot(acs$row$coord, is.corr = FALSE, col.lim = c(-.75, .75), method = 'color', tl.col="black", tl.srt = 45,
         col = COL2('RdBu'), cl.pos = 'n', addgrid.col = 'white', addCoef.col = 'black', number.cex = 1.1)
corrplot(acs$col$coord, is.corr = FALSE, col.lim = c(-.75, .75), method = 'color', tl.col="black", tl.srt = 45,
         col = COL2('RdBu'), cl.pos = 'n', addgrid.col = 'white', addCoef.col = 'black', number.cex = 1.1)

En la 1ra dimensión se oponen los estados civiles de Viudo/a y Casado/a a los de Soltero/o y Divorciado/a, y los idiomas de Aymara y Quechua a los de Otro nativo y Castellano. Los estados civiles de Viudo/a y Casado/a se asocian a los idiomas de Aymara y Quechua, y los estados civiles de Soltero/o y Divorciado/a se asocian a los idiomas de Otro nativo y Castellano. En la 2da dimensión, el idioma de Otro nativo se aleja claramente de los estados civiles (el menos lejano es Concubino/a) y se opone al idioma Extranjero/a.

Contribuciones

El gráfico biplot para visualizar las categorías con diferentes niveles de transparencia según la contribución de cada categoría es:

fviz_ca(acs, repel = T, alpha = "contrib")

Las contribuciones de cada categoría a la formación de los ejes son:

par(mfrow = c(1, 2))
corrplot(acs$row$contrib, is.corr = FALSE, col.lim = c(0, 120), method = 'color', tl.col="black", tl.srt = 45,
         col = COL1('Blues'), cl.pos = 'n', addgrid.col = 'white', addCoef.col = 'black', number.cex = 1.1)
corrplot(acs$col$contrib, is.corr = FALSE, col.lim = c(0, 120), method = 'color', tl.col="black", tl.srt = 45,
         col = COL1('Blues'), cl.pos = 'n', addgrid.col = 'white', addCoef.col = 'black', number.cex = 1.1)

El estado civil que más contribuye a la formación de la 1ra dimensión es Soltero/a, con un 40.52%, luego se tienen Casado/a que contribuye con un 38.21%, y Viudo/a con un 18.31%. El idioma materno que más contribuye a la 1ra dimensión es Aymara con un 43.51%, luego están Quechua con un 28.77% y Castellano con un 26.8%. En la 2da dimensión es el estado civil de Concubino/a el que más contribuye con un 57.23%, y el idioma materno que más contribuye a la 2da dimensión es Otro Nativo con un 72.53%.

Cosenos cuadrados

El gráfico biplot para visualizar las categorías con diferentes niveles de transparencia según el coseno cuadrado de cada categoría es:

fviz_ca(acs, repel = T, alpha = "cos2")

Los cosenos cuadrados que muestran la calidad de representación de cada categoría son:

par(mfrow = c(1, 2))
corrplot(acs$row$cos2, is.corr = FALSE, col.lim = c(0, 1.5), method = 'color', tl.col="black", tl.srt = 45,
         col = COL1('Blues'), cl.pos = 'n', addgrid.col = 'white', addCoef.col = 'black', number.cex = 1.1)
corrplot(acs$col$cos2, is.corr = FALSE, col.lim = c(0, 1.5), method = 'color', tl.col="black", tl.srt = 45,
         col = COL1('Blues'), cl.pos = 'n', addgrid.col = 'white', addCoef.col = 'black', number.cex = 1.1)

Los estados civiles de Casado/a, Soltero/a y Viudo/a están representados en más del 90% cada uno, en la 1ra dimensión, Divorciado/a también está bien representado, con un 73%. Los estados civiles de Concubino/a y Separado/a están mejor representados en la 2da dimensión con más del 50% cada uno. Los idiomas maternos de Castellano, Aymara y Quechua están muy bien representados en la 1ra dimensión, con más del 95%. El idioma de Otro Nativo está mejor representado en la 2da dimensión con un 85%, y el idioma Extranjero distribuye su representación entre la 1ra, la 2da y la 4ta dimensión con 32, 28 y 33% respectivamente.

Gráfico en 3D

Si bien la 3ra dimensión explica muy poca inercia, se muestra en el siguiente gráfico interactivo los puntos que representan a las categorías, en las 3 dimensiones de mayor inercia.

coords <- rbind(
  data.frame(acs$row$coord[,1:3], clr = "blue", categ = rownames(acs$row$coord),
             Cos2 = rowSums(acs$row$cos2[,1:3])),
  data.frame(acs$col$coord[,1:3], clr = "red", categ = rownames(acs$col$coord),
             Cos2 = rowSums(acs$col$cos2[,1:3]))
)
fig <- plot_ly(data = coords, x = ~Dim.1, y = ~Dim.2, z = ~Dim.3, 
  text = ~categ, type = "scatter3d", mode = "markers+text",
  marker = list(opacity = ~Cos2, color = ~clr), textposition = "top center")
layout(fig, scene = list(xaxis = list(title = "Dimensión 1"), 
                         yaxis = list(title = "Dimensión 2"), 
                         zaxis = list(title = "Dimensión 3")))

Conclusiones

La 1ra dimensión muestra que existe relación entre Estado civil y Lengua materna. Las personas de idioma materno Quechua o Aymara suelen estar casados, y el hecho de que también pueden estar viudos indica que estuvieron casados. Las personas de idioma materno Castellano tienden a permanecer solteros o a estar divorciados, entonces, podría ser que son más autosuficientes. La edad puede ser una variable que participa en esta relación, dado que las personas jóvenes suelen tener como idioma materno al Castellano aunque sus padres tengan lenguas maternas originarias. El caso de Otro nativo es atípico, y es más importante en la 2da dimensión, donde no se asocia claramente con ningún estado civil, o quizá con Concubino/a y de manera leve.