Gastos e ingresos de los hogares mexicanos

Objetivo

Se desea agrupar los hogares mexicanos según sus ingresos y sus gastos, para determinar caracteristicas especificas sobre sus ingresos y gastos que puedan determinar que pertenezcan a determinado grupo. Por ejemplo se podria esperar agrupar a los hogares de manera que quiza podamos obtener los tipos de niveles socio-economicos que se pueden observar en México. Es decir, los grupos que obtengamos después de aplicar el algoritmo de clusterización serán pueden estar clasificados por que tanto gastan o que tanto perciben, por ejemplo podriamor inferir que las personas agrupadas en un cluster con un ingreso superior a los $60,000 son personas que pertenecen a una clase media-alta.

Los algoritmos utilizados para clusterización serán k-medias y clusterización jerarquica.

Los datos utilizados para este análisis seran los obtenidos en la Encuesta Nacional de Ingresos y Gastos de los Hogares 2018 la cúal esta formada por variables referentes a los ingresos en diversos aspectos de un hogar, al igul que los gastos los cuales se dividenen diferentes tipos de gasto.

Preprocesamiento de los datos

Los datos con los cuales se va a trabajar, tienen variables desglosadas que nos interesan por lo que agruparemos por tipo de ingreso y tipo de gasto.

Se trabajaran con variables como: Ingreso por algun negocio, ingresos por prestaciones del trabajo, ingresos por programas del gobierno, gastos de alimentacion, gastos de vivienda, gastos para vestir, gastos en salud, gastos en transporte, gastos en objetos personales y gastos en deudas adquiridas. Estas fueron algunas de las variables que se identificaron podrian ser agruoadas pues referian a algun ingreso/ gasto especifico

enigh <- as.data.frame(read.csv("hogares.csv",
                                   fileEncoding = "UTF-8-BOM"))

enigh$ing_neg <-rowSums(enigh[ , 33:47])
enigh$ing_pest <-rowSums(enigh[ , 28:32])
enigh$ing_program <-rowSums(enigh[ , 48:56])
enigh$gast_alim <-rowSums(enigh[ , 58:74])
enigh$gast_vest<-rowSums(enigh[ , 76:78])
enigh$gast_viv <-rowSums(enigh[ , 79:87])
enigh$gast_salud <-rowSums(enigh[ , 88:91])
enigh$gast_transp <-rowSums(enigh[ , 92:98])
enigh$gast_personal <-rowSums(enigh[ , 104:108])
enigh$gast_deudas <-rowSums(enigh[ , 111:125])
num <- seq(length(enigh$foliohog))
id <- paste("Hog0",num)
id_hog <- gsub(pattern = "\\s",   
                   replacement = "",
                   x = id)

enigh %<>%
 select(ing_cor,ingtrab, trabajo, sueldos, gasto_mon, percep_tot,smg,
        ing_neg,ing_program, gast_alim, gast_vest, gast_viv, gast_deudas, gast_personal,
        gast_salud, gast_transp)

rownames(enigh) <- id_hog

Se les dará un identificador a cada hogar para poder visualizar de mejor manera los grupos realizados.

Obteniendo una vista de los datos con los que trabajaremos:

Muestra de datos
ing_cor ingtrab trabajo sueldos gasto_mon percep_tot smg ing_neg
Hog01 76403,7 53114,7 53114,7 53114,7 18551,5 0,0 7952,4 11289,0
Hog02 42987,7 15235,1 0,0 0,0 55471,0 6073,1 7952,4 46507,1
Hog03 580697,7 141885,2 141885,2 133770,5 103106,9 3857,1 7952,4 450320,7
Hog04 46252,7 0,0 0,0 0,0 19340,1 1380,5 7952,4 34252,7
Hog05 53837,1 43229,5 8852,5 8852,5 13605,0 0,0 7952,4 103238,7
Hog06 237742,5 129836,0 129836,0 95901,6 33627,7 1928,6 7952,4 89906,5
Muestra de datos
ing_program gast_alim gast_vest gast_viv gast_deudas gast_personal gast_salud gast_transp
Hog01 23289,0 14541,1 0,0 8868,0 0,0 198,0 0,0 22800,0
Hog02 27752,7 50448,0 802,1 5814,3 24240,3 9351,2 2698,0 15407,1
Hog03 409304,3 100439,4 4030,4 15586,5 166152,2 23040,0 57717,4 25581,4
Hog04 46252,7 8678,5 195,6 13944,0 1380,6 2130,5 645,6 19350,0
Hog05 10607,6 19529,8 0,0 7200,0 0,0 3667,3 113,5 600,0
Hog06 107906,5 0,0 0,0 16966,0 31436,8 10218,0 0,0 45921,4

Posteriormente se escalaran los datos para una mejor manipulación.

Agrupamiento por K-medias

Realizando el algoritmo de k- medias con diferentes métodos pudimos observar que existe un dato atipico, es decir, recordemos que teoricamente este algoritmo con la norma euclideana es sencible a los datos atipicos lo cual se ha podido confirmar debido a que despues de 6 grupos para realizar clusterización por k medias obtenemos un solo grupo para este dato, es decir, no hay ningún otro hogar que se acerque lo suficiente al hogar atipico como para poder obtener un grupo aunque sea reducido de este tipo de hogar. Por lo que nustro algoritmo nos un número de clusters mayos a 6 no es capaz de agrupar a dicho hogar y obtenemos que el hogar atipico es un centroide con él como unico elemento del grupo.

## Warning: Quick-TRANSfer stage steps exceeded maximum (= 3732350)

Los resultados con diferentes métodos son muy similares, por lo tanto, nos concentraremos en visualizar el dato atipico con mayor profundidad.

ing_cor ingtrab trabajo sueldos gasto_mon percep_tot smg ing_neg ing_program gast_alim gast_vest gast_viv gast_deudas gast_personal gast_salud gast_transp grupo
Hog034120 883913.7 208839.8 208839.8 208839.8 530879.9 16917816 7952.4 1252688 85847.38 158926.6 191347.7 21502.7 16917816 207933.7 0 175999.5 1

La información de este dato nos muestra que tienen ingresos y gastos bastante elevados, fuera de lo normal entre los otros hogares, pues tienen un ingreso corriente de $ 883,913.66 un monto más elevado al monto promedio de todos los hogares el cúal es de $46,043.88 tomemos encuenta que este promedio considera nuestro valor atipico por lo que podemos pensar que el promedio de ingreso correiente asi como el de el resto de las variables es mucho menor que el que reflejamos. Podemos observar que a pesar que es un dato atipico no es el dato de ingreso corriente mayor por ejemplo en ingreso corriente el máximo es $ 4,501,830

A pesar de esto podemos pensar que estos datos del hogar atipico pueden no ser un error y puede que se haya obtenido información de un hogar de un nivel socioeconomico alto por lo que al no ser un número ilogico se decide conservarlo para el analisis y realizar 5 grupos mediante el algoritmo de k-mean para poder incluirlo en el grupo que por ahora podemos pensar que es el del nivel socio-economico más alto.

k-mean ingresos

Hagamos un analisis por separado, tomando solo los ingresos notemos que tenemos dos datos que se separan pero se agrupan bien.

Observando los datos más lejanos

ing_cor trabajo ingtrab sueldos percep_tot smg ing_neg ing_program
Hog07834 4501830 0 0 0 0 7952.4 4490217 4501830
ing_cor trabajo ingtrab sueldos percep_tot smg ing_neg ing_program
Hog043214 2937172 1398566 1841189 959016.4 79587.8 7952.4 2634590 0

k- means gastos

gasto_mon ingtrab trabajo gast_viv gast_deudas gast_personal gast_salud gast_transp
Hog04321 51620.7 34703.77 34703.77 20396.04 792.36 7927.28 489.1 37887.99
gasto_mon ingtrab trabajo gast_viv gast_deudas gast_personal gast_salud gast_transp
Hog043214 634600 1841189 1398566 391800 4200899 110178.3 5869.54 115800

Podemos agrupar los gastos y vemos que tomando 6 grupos obtenemos

Caracteristicas de los clusters

Podemos ver con ayuda de la media de las variables en cada grupo las caracteristicas de cada uno, podemos ver que el grupo 3 se distingue bastante aunque los demas grupos puede que no sean tan relevantes al estar tan separados por lo que probaremos con menos grupos.

En este grafico se puede ver mejora al momento de diferenciar los cluster y por lo especificado anteriormente sobre los datos atipicos, nos es posible identificarlos mediante el grupo mayor(el grupo 1) Por lo tanto podemos diferenciarlos entre los que tiene altos gastos asi como altos ingresos, como personas de un nivel socioeconomico mayor, entonces encontramos que podemos clasificar a los hogares en tres niveles socio econommicos.

Clusterización jerarquica

Por motivos de eficiencia de maquina y complejidad del algoritmo, tomaremos una muestra para realizar el analisis de clusterización jerarquica, con la cual supondremos la muestra significativa para poder agrupar a los hogares en estudio.

Podemos observar que este tipo de clusterización nos sugiere clasificar a los hogares de México en 2 grupos, pues el dendrograma que utilizamos nos ayuda a encontrar el número de clusters que el algoritmo esta calculando.

Con clusterización jerarquica podriamos realizar los grupos socioeconommisoa de nivel alto y nivel bajo. Aunque en realidad podemos pensar que logicamente las primeras agrupaciones que realizamos nos podrian servir más, utilizando un mayor número de clusters que poquitos como este algoritmo sugiere.

Por último veamos el comportamiento de los gastos e ingresos con 3 grupos.

Se pudo suponer que los gastos de los hogares pogria ser proporcional a los ingresos que generan cada uno de ellos,, pero con ayuda de esta clusterización podemos concluir que no es del todo correcto pues los hogares que tienen mayores ingresos en promedio no necesariamente son los que tienen mayores gastos. Las observaciones realizadas con la media de las variables nos ayudan a llegar a esta conjetura, sin embargo, para poder confirmar esta teoría podriamos hacer uso de otras metricas para encontrar una afirmación completamente correcta. Pues derivado de aqui podemos implicar muchos analisis relacionados a la salud finaciera de los hogares mexicanos, pues al concluir que los gastos estan completamente desequilibrados con los ingresos de los hogares en ciertos niveles socioeconomicos se pueden abrir campañas de educación financiera para que en los hogares mexicanos no haya más deuda de la que pueden pagar por ejemplo.