11 jul 2018

Recodificando las variables de empleo en la Encuesta Nacional de Fuerza de Trabajo (en Stata)

La siguiente entrada muestra cómo trabajar con la Encuesta Nacional de Fuerza de Trabajo tradicional, para recodificar las variables de empleo, de forma que permita obtener la clasificación de los trabajadores por rama de actividad económica según su ocupación principal, grupo ocupacional y categoría ocupacional. Además, presenta como realizar tabulados de categorías de empleos según deciles de ingresos por sector formal e informal de la economía, utilizando el factor de expansión. 

Rama de actividad económica

/// Recodifica variable de rama de actividad economica                                                       
generate ramagrup =.  
replace  ramagrup = 1  if eft_rama_princ >= 11 & eft_rama_princ <= 100
replace  ramagrup = 2  if eft_rama_princ >=101 & eft_rama_princ <= 150
replace  ramagrup = 3  if eft_rama_princ >=151 & eft_rama_princ <= 400
replace  ramagrup = 4  if eft_rama_princ >=401 & eft_rama_princ <= 450
replace  ramagrup = 5  if eft_rama_princ >=451 & eft_rama_princ <= 500
replace  ramagrup = 6  if eft_rama_princ >=501 & eft_rama_princ <= 550           
replace  ramagrup = 7  if eft_rama_princ >=551 & eft_rama_princ <= 600
replace  ramagrup = 8  if eft_rama_princ >=601 & eft_rama_princ <= 650
replace  ramagrup = 9  if eft_rama_princ >=651 & eft_rama_princ <= 700
replace  ramagrup = 10 if eft_rama_princ >=751 & eft_rama_princ <= 753
replace  ramagrup = 11 if eft_rama_princ >=701 & eft_rama_princ <= 750
replace  ramagrup = 11 if eft_rama_princ >=801 & eft_rama_princ <= 990
replace  ramagrup = 12 if ramagrup==99         & desocupado     == 1
replace  ramagrup = 98 if ramagrup==99         & pea            == 1

label variable ramagrup      "Rama de actividad económica, grandes grupos"
label define   ramagruplbl 1 "Agr-ga" 2 "Exp-Mi" 3 "Ind-Ma" 4 "Ele-Ga" 5 "Constr" 6 "Comerc" 7 "Hot-Re" ///
8 "Tra-Co" 9 "Int-Fi" 10 "Adm-Pú" 11 "Otr-Se"  12 "Sin-Ra" 98 "Missing" 99 "No aplica"
label values ramagrup ramagruplbl     

Categoría ocupacional

 recode eft_categoria_ocup_princ (6=1 "Patr_Soci") (4/5=2 "Cuen_Prop") (1/2=3 "Empl_públ") (3=4 "Empl_Priv") (7=5 "No_Remune") ///
    (8=6 "Serv_dome") (9=7 "Sin_categor"), into(categoria_ocup)

Grupos ocupacionales

gen grup_ocup = 99
replace grup_ocup = 1 if eft_ocupacion_princ >= 101 & eft_ocupacion_princ <= 131
replace grup_ocup = 2 if eft_ocupacion_princ >= 211 & eft_ocupacion_princ <= 246
replace grup_ocup = 3 if eft_ocupacion_princ >= 311 & eft_ocupacion_princ <= 348
replace grup_ocup = 4 if eft_ocupacion_princ >= 411 & eft_ocupacion_princ <= 422
replace grup_ocup = 5 if eft_ocupacion_princ >= 511 & eft_ocupacion_princ <= 523
replace grup_ocup = 6 if eft_ocupacion_princ >= 611 & eft_ocupacion_princ <= 621
replace grup_ocup = 7 if eft_ocupacion_princ >= 711 & eft_ocupacion_princ <= 744
replace grup_ocup = 8 if eft_ocupacion_princ >= 811 & eft_ocupacion_princ <= 834
replace grup_ocup = 9 if eft_ocupacion_princ >= 911 & eft_ocupacion_princ <= 933

replace grup_ocup = 5 if eft_ocupacion_princ == 11
replace grup_ocup = 10 if eft_ocupacion_princ == 99   & desocupado == 1
replace grup_ocup = 98 if grup_ocup == 99 & pea == 1

label variable grup_ocup "Grupos ocupacionales"
label define labelocu_grupo 1 "Gerentes y Administradores" 2 "Profesionales e Intelectuales" 3 "Técnicos de Nivel Medio" 4 "Empleados de Oficina" /*
*/ 5 "Trabajadores de los Servicios" 6 "Agricultores y Ganaderos Calificados" 7 "Operarios y Artesanos" 8  "Operadores y Conductores" /*
*/ 9  "Trabaladores No calificados" 10 "Sin ocupación definida: Desempleados nuevos" 98  "Missing" 99 "No aplica"
label values grup_ocup labelocu_grupo



Generando variables de quintiles de ingresos para segmentar los tabulados por grupos de ingresos.  

xtile VIPCm_ENFT = y if ocupado==1 /*& (IDlab_tot>0 & IDlab_tot!=.)*/ [fweight = eft_factor_exp], nq(10)

Generando diversos tabulados para el caso de grupos de trabajadores por Rama de actividad. En caso de querer obtener información sobre otro grupo de ocupación, sólo es necesario que cambie la variable ramagrup por su variable de interés. Una aclaración importante, siempre que se trabaje con datos de la Encuesta, es necesario validar la información obtenida con la presentada por la institución oficial. El cuadro siguiente muestra una diferencia de 62 personas en la categoría informales de la rama "Comercio al por Mayor y Menor". 

dis "Número de trabajadores, " as result eft_periodo[1]
table ramagrup VIPCm_ENFT [fw=eft_factor_exp] if ocupado==1, format(%10.0fc) row col


dis "Número de trabajadores formales, " as result eft_periodo[1]
table ramagrup VIPCm_ENFT [fw=eft_factor_exp] if ocupado==1 & formal==1, format(%10.0fc) row col


dis "Número de trabajadores informales, " as result eft_periodo[1]
table ramagrup VIPCm_ENFT [fw=eft_factor_exp] if ocupado==1 & informal==1, format(%10.0fc) row col


dis "Salario promedio Totales, " as result eft_periodo[1]
table ramagrup VIPCm_ENFT if ocupado==1, contents(mean y ) format(%10.2fc) row col

dis "Salario promedio formales, " as result eft_periodo[1]
table ramagrup VIPCm_ENFT if ocupado==1 & formal==1, contents(mean y ) format(%10.2fc) row col


dis "Salario promedio informales, " as result eft_periodo[1]
table ramagrup VIPCm_ENFT if ocupado==1 & informal==1, contents(mean y ) format(%10.2fc) row col

dis "Incidencia de la pobreza, " as result eft_periodo[1]
table ramagrup if ocupado==1, contents(mean pobre) format(%10.6fc) row col
table ramagrup if ocupado==1 & formal==1, contents(mean pobre ) format(%10.6fc) row col
table ramagrup if ocupado==1 & informal==1, contents(mean pobre ) format(%10.6fc) row col



Recesión plot en R usando ggplot (recession plot in r)

En el siguiente ejemplo se simular y replica -parcialmente- un ejemplo usado por el FMI para ilustrar la importancia del uso de series de ti...