10 oct 2015

Trabajando la Encuesta Nacional de Fuerza de Trabajo: un ejemplo aplicado al cálculo de indicadores del mercado laboral dominicano


La siguiente entrada muestra como trabajar usando STATA y desde cero, la encuesta Nacional de Fuerza de Trabajo. Utilizando del archivo Excel que facilita el Banco Central de la República Dominicana, al ser solicitada. El objetivo de la entrada es incentivar el uso de la Encuesta como estudio de análisis del mercado laboral en la República Dominicana. ESPERO OS SIRVA!!!

Al solicitar la base de dato al Banco Central se contará con dos archivos Excel, un diccionario y la base de dato. El primer documento contiene una hoja de cálculo donde se explican los valores de las variables contenidas en las diversas bases, mientras que el segundo archivo contiene una serie de hojas de cálculo con las bases de miembros y de hogares correspondientes a los distintos cuestionarios de la encuesta. A continuación se coloca una imagen de dicho documento.

Ilustración 1. ENFT en Excel: documento sin trabajar recibido desde el Banco Central

Ahora es necesario importar las bases en Stata considerando algunos puntos importantes:

-          Elimina las comas de los formatos números, así evitas Stata te impute las variables como texto.
-          La forma como se muestra la importación corresponde a la versión 12 de Stata, utilizando bases guardades en formato *.txt , (delimitado por tabulaciones). Versiones anteriores a las 11 puedes guardar cada pestaña en formato txt (delimitado por tabulaciones) o cvs (delimitado por coma) y posteriormente importarlos en Stata, pero este último formato puede dar problemas en versiones de Windows anteriores a la versión 8.

-          Confirma el formato de la columna eft_periodo sea el mismo para todas las bases de datos. Existen ocasiones en que las bases tienen 1/2009 y otras ene-2009, esto ocasiona errores al combinar las bases de datos, mediante el marge.

Teniendo claro esto, el próximo paso es guardar cada una de las beses de datos en el formato especificado (*.txt , (delimitado por tabulaciones). Este procedimiento se realiza de una manera trivial en Excel. A continuación se muestra como importar las bases a Stata, luego de guardar cada pestaña en formato “txt” delimitado por tabulaciones (se hace por “guardar como” en Excel).

* =======================================
* Preliminares

cd "C:\Users\AMD\Documents\...\ENFT Abril 2009"
capture log using "ResultsENFT20091", t replace
set more off

* =======================================
* Transforma bases de Excel a Stata

*Organizando y ordenando las bases de datos*
*-----------------------------------------------------------
 insheet using  "miembro20091.txt", tab clear
sort eft_periodo eft_vivienda eft_hogar eft_miembro
save "miembros20091.dta", replace

insheet using "vivienda20091.txt", tab clear
drop eft_factor_exp
keep eft_periodo eft_vivienda eft_estrato-eft_zona eft_tipo_vivienda-eft_monto_probable_alq_dolares
sort eft_periodo eft_vivienda
save "vivienda20091", replace

insheet using "calculadas20091.txt", tab clear
sort eft_periodo eft_vivienda eft_hogar eft_miembro
save "calculadas200904.dta", replace

En este caso solo se colocan tres, que son las bases que utilizaremos en nuestro ejemplo, en caso de necesitar otras variables, que se encuentre en otro cuestionario, el procedimiento es el mismo. Luego a que las bases están listas se procede a unirlas, siempre atendiendo al fin que queremos atender o a que tipos de análisis queremos generar.

* Pegando base de datos
* -----------------------------------------------------------

use "miembros20091.dta", clear

gen VAR_VIVIENDA=.
sort eft_periodo eft_vivienda
merge m:1 eft_periodo eft_vivienda using "vivienda20091.dta"
tab _m

drop _m

gen VAR_CALCULADAS=.
sort eft_periodo eft_vivienda eft_hogar eft_miembro
merge 1:1 eft_periodo eft_vivienda eft_hogar eft_miembro using "calculadas200904.dta"
tab _m
drop _m

A este punto es importante aclarar que el procedimiento anterior permite transferir información de las bases de hogares, donde cada vivienda/hogar es la unidad de análisis a la base de miembros, donde cada observación corresponde a un miembro del hogar. Así en caso que una vivienda indique que contiene una estufa (eft_estufa=1 en la base de vivienda) ese 1 se le coloca a cada uno de los miembros del hogar de esa vivienda, tal como se muestra a continuación. Ahora ya estamos en disposición de realizar cálculos globales utilizando todo el potencial de la encuesta.

. list eft_vivienda eft_hogar eft_miembro eft_estufa in 1/10

     +-------------------------------------------+
     | eft_vi~a   eft_ho~r   eft_~bro   eft_e~fa |
     |-------------------------------------------|
  1. |        1          1          1          1 |
  2. |        1          1          2          1 |
  3. |        1          1          3          1 |
  4. |        3          1          1          1 |
  5. |        3          1          2          1 |
     |-------------------------------------------|
  6. |        3          1          3          1 |
  7. |        3          1          4          1 |
  8. |       13          1          1          1 |
  9. |       13          1          2          1 |
 10. |       13          1          3          1 |

     +-------------------------------------------+

Haciendo un paréntesis y dado que el ejemplo anterior puede no resultar claro, se coloca otro pequeño ejemplo, donde se coloca valores de si o no a la tenencia de estufa y se supone que el tercer hogar no tiene para ilustra de manera más clara la idea:

* En un inicio tenemos dos bases, una de viviendas y una de miembros
* base de viviendas
     +-------------------------------+
     | vivienda      hogar    estufa |
     |-------------------------------|
  1. |        1          1        si |
  2. |        3          1        no |
     |-------------------------------|

* y tenemos una base de miembros, obsérvese que variables como tenencias de electrodomésticos o acceso a servicios se encuentran en el cuestionario de viviendas, sin embargo otras variables como edad se encuentran en la base de miembros, este procedimiento nos permite tener ambos en una misma base.

     +--------------------------------+
     | vivienda      hogar    miembro |
     |--------------------------------|
  1. |        1          1          1 |
  2. |        1          1          2 |
  3. |        1          1          3 |
  4. |        3          1          1 |
  5. |        3          1          2 |
     |--------------------------------|
  6. |        3          1          3 |
  7. |        3          1          4 |
     +--------------------------------+

* Finalmente, lo que se hace al combinar las bases de datos es colocar la información de la base de vivienda a la base de miembros, por tanto, el resultado final es el siguiente:

     +-------------------------------------------+
     | vivienda      hogar    miembro     estufa |
     |-------------------------------------------|
  1. |        1          1          1         si |
  2. |        1          1          2         si |
  3. |        1          1          3         si |
  4. |        3          1          1         no |
  5. |        3          1          2         no |
     |-------------------------------------------|
  6. |        3          1          3         no |
  7. |        3          1          4         no |
     +-------------------------------------------+



Ahora podemos guardar esta base y comenzar a explotar la encuesta.


. save BaseENFT20091.dta, replace

Ahora como hemos anexado la parte de variables calculada, podemos calcular directamente la información que el BCRD pública en su página, con el potencial que contamos con los microdatos que abren, casi de forma infinita, el abanico de análisis disponibles. En los próximos comandos se muestran ejemplos de cómo obtener algunos valores relacionados con el mercado laboral.

* recodifica variable ocupacion 

gen      condi_mer = 1 if ocupado   ==1
replace  condi_mer = 2 if desocupado==1
replace  condi_mer = 3 if inactivo  ==1

label define condi_merlbl 1 "ocupado" 2 "desocupado" 3 "inactivo"
label values condi_mer    condi_merlbl

. table condi_mer [fweight = eft_factor_exp] if  pet==1, row col format(%12.0gc)

-------------------------
 condi_mer |        Freq.
-----------+-------------
   ocupado |    3,577,258
desocupado |      624,227
  inactivo |    3,638,634
           |
     Total |    7,840,119
-------------------------


Con la próxima imagen, extraída directamente de la página del BCRD, se puede observar la similitud entre las cifras publicadas por el Banco y las obtenidas trabajando la ENFT.

Ilustración 2. Compara resultados con respecto a los publicados por el BCRD








Recodificación de variables usando dplyr en R

Una base de datos suele tener diversos tipos de variables del tipo cualitativo y cuantitativo. En función del tipo de variables aplicamos di...