*Ultima actualización: mayo 2022

*Las bases de datos del MCS 2010 se pueden descargar en la pagina de internet del INEGI
*https://www.inegi.org.mx/programas/mcs/2010/#Microdatos

*El programa contiene dos partes, la primera parte, se requiere ejecutar el programa de Ajuste a cuentas nacionales 2012
* y posteriormente el de pobreza multidimensional 2010.

********************************************************************************
********************************************************************************
*Los resultados del MMIP que conforman esta publicación no son comparables 
* con la serie 2016 a 2020.
*En 2022, el Consejo de Evaluación de la Ciudad de México llevó a cabo dos conjuntos 
* de cálculos de la medición de la pobreza para el año 2016.

*Serie 2008-2016

*Para el MMIP 2016 se trabajó con la base de datos de la Encuesta Nacional de 
* Ingreso y Gasto de los Hogares 2016 (nueva serie) omitiendo la base de datos 
* de gasto de los hogares y simulando el Módulo de Condiciones socioeconómicas 
* de la ENIGH reportadas en los años 2008, 2012 y 2014 por el INEGI.

*Serie 2016-2020

*Para el MMIP 2016 se realizó la medición de la pobreza partiendo de la base de 
* datos de la Encuesta Nacional de Ingreso y Gasto de los Hogares (ENIGH) 2016 
* (nueva serie) y utilizando la metodología completa del MMIP.

********************************************************************************
********************************************************************************

********************************************************************************
********************************************************************************
*****************Segunda parte**************************************************
***************Programa de pobreza multidimensional 2010************************
********************************************************************************
********************************************************************************


********************************************************************************
* Contenido del archivo:
* 0. Directorios de trabajo
* 1. Pegado de bases de datos
* 2. NBI 
* 3. Educación
* 4. Salud y Seguridad Social
* 5. Tiempo
* 6. Ingreso
* 7. Cálculo de indicador de MMIP
********************************************************************************

clear all
set more off

********************************************************************************
* Módulo 0. Directorios de trabajo
********************************************************************************

*Globals Directorio de bases

gl ruta=       	"D:\MCS2010"
gl bases=		"$ruta/bases"
gl ingresos=	"$ruta/ingresos"  
gl tmp=			"$ruta/tmp"
gl final=		"$ruta/final"

********************************************************************************
* Módulo 1. Pegado de bases de datos
********************************************************************************


*Abrir la base hogar y pegar con la temporal de vivienda
use "$bases/Hogares.dta", clear
sort proyecto folioviv foliohog 
destring  claviv pared techos pisos antigua cua_coc coc_duer dormi cuart  ///
      dis_agua dot_agua excus uso_com adm_ag drenaje elect  ///
	  combus eli_ba tenen residentes calen bom_ag, replace
 
egen claviv1  =sum(claviv),   by(proyecto folioviv)
egen pared1   =sum(pared),    by(proyecto folioviv)
egen techos1  =sum(techos),   by(proyecto folioviv)
egen pisos1   =sum(pisos),    by(proyecto folioviv)
egen antigua1 =sum(antigua),  by(proyecto folioviv)
egen cua_coc1 =sum(cua_coc),  by(proyecto folioviv)
egen coc_duer1=sum(coc_duer), by(proyecto folioviv)
egen dormi1   =sum(dormi),    by(proyecto folioviv)
egen cuart1   =sum(cuart),    by(proyecto folioviv)
egen dis_agua1=sum(dis_agua), by(proyecto folioviv)
egen dot_agua1=sum(dot_agua), by(proyecto folioviv)
egen excus1   =sum(excus),    by(proyecto folioviv)
egen uso_com1 =sum(uso_com),  by(proyecto folioviv)
egen adm_ag1  =sum(adm_ag),   by(proyecto folioviv)
egen drenaje1 =sum(drenaje),  by(proyecto folioviv)
egen elect1   =sum(elect),    by(proyecto folioviv)
egen combus1  =sum(combus),   by(proyecto folioviv)
egen eli_ba1  =sum(eli_ba),   by(proyecto folioviv)
egen tenen1   =sum(tenen),    by(proyecto folioviv)
egen residen1 =sum(residentes), by(proyecto folioviv)
egen calen1   =sum(calen),    by(proyecto folioviv)
egen bom_ag1  =sum(bom_ag),   by(proyecto folioviv)

drop  claviv pared techos pisos antigua cua_coc coc_duer dormi cuart   ///
      dis_agua dot_agua excus uso_com adm_ag  drenaje elect  ///
	  combus eli_ba  tenen residentes calen bom_ag
	  
rename	claviv1	  claviv
rename	pared1	  pared
rename	techos1	  techos 
rename	pisos1	  pisos
rename	antigua1  antigua 
rename	cua_coc1  cua_coc
rename	coc_duer1 coc_duer 
rename	dormi1	  dormi 
rename	cuart1	  cuart 
rename	dis_agua1 dis_agua
rename	dot_agua1 dot_agua
rename	excus1	  excus
rename	uso_com1  uso_com
rename	adm_ag1	  adm_ag
rename	drenaje1  drenaje
rename	elect1    elect
rename	combus1	  combus
rename	eli_ba1	  eli_ba
rename	tenen1	  tenen
rename	residen1  residentes
rename	calen1	  calen
rename	bom_ag1	  bom_ag

save "$tmp/Hogares10.dta", replace

*Abrir la base hogar y pegar con la temporal de vivienda
use "$tmp/Hogares10.dta", clear

*Generar un folio único, de los folios de vivienda y hogares 
egen folio=concat(folioviv foliohog)

*Tamaño de localidad (tam_loc)
label define tam 1"100 mil habitantes y mas" 2"De 15,000 a 99,999 hab" ///
				 3"De 2,500 a 14,999 hab" 4"Menos de 2,500 hab"
destring tam_loc, replace 
label values tam_loc tam

*urbano y rural
gen ur_rur_2500=1
replace ur_rur_2500=2 if tam_loc==4
label define ur_rur 1 "Loc. >= 2,500 habs" 2 "Loc. < 2,500 habs"
label value  ur_rur_2500 ur_rur

* municipio y entidad
gen municipio=real(substr(ubica_geo,3,3))
gen entidad=real(substr(ubica_geo,1,2))

*Etiquetar las entidades
label define ent 1	"Aguascalientes" 2 "Baja California" 3 "Baja California Sur" 4 "Campeche" ///
5 "Coahuila" 6 	"Colima" 7 	"Chiapas" 8	"Chihuahua"  9	"Ciudad de México" 10	"Durango" ///
11	"Guanajuato"  12	"Guerrero"  13	"Hidalgo"  14	"Jalisco" 15	"México"  ///
16	"Michoacán"  17	"Morelos" 18	"Nayarit" 19	"Nuevo León" 20	"Oaxaca"  ///
21	"Puebla" 22	"Querétaro" 23	"Quintana Roo" 24	"San Luis Potosí"  25	"Sinaloa"  ///
26	"Sonora"  27	"Tabasco" 28	"Tamaulipas" 29	"Tlaxcala" 30	"Veracruz" 31	"Yucatan"32	"Zacatecas"
label value entidad ent

*Generar una base que contiene variables de vivienda y hogares y las siguientes variables:
save "$final/hogares+Viv.dta", replace

*Se seleccionan las variables de interes
keep proyecto folio proyecto municipio entidad ur_rur_2500 factor upm tam_loc est_dis
save "$final/factexp.dta", replace

* Base de población
use "$bases/Pobla10.dta", clear

egen folio=concat(folioviv foliohog)
sort proyecto folio

*Eliminar aquellos parentescos que no pertenecen al nucleo familiar
destring parentesco, replace
drop if parentesco>=400 & parentesco <500
drop if parentesco>=700 & parentesco <800

*tamaño de hogar
gen tam_hog=1
collapse (sum) tam_hog, by(proyecto folio)
save "$tmp/tamano_hogar.dta", replace


*Abrir la base con variables seleccionadas
use "$final/factexp.dta", clear
merge 1:1 proyecto folio using "$tmp/tamano_hogar.dta"
tab _merge
drop _merge

*factor de expansión por persona
gen factorxind = factor * tam_hog
save "$final/factexp.dta", replace

**Pegar el nuevo factor de expansión a la base de hogares con variables
use "$final/hogares+Viv.dta", clear
merge 1:1 proyecto folio using "$final/factexp.dta"
drop _merge

*base de datos que concentra variables de vivienda y tamaño de hogar que se utilizan en el MMIP
save "$tmp/hogaresmmip.dta", replace


********************************************************************************
* Módulo 2. NBI
*
*Se calcula con los siguientes seis componentes:
*	2.1 Construcción y cálculo del indicador de espacio y calidad de la vivienda
*   2.2 Construcción y cálculo del indicador de bienes durables
*   2.3 Construcción y cálculo del indicador de adecuación sanitaria
*   2.4 Construcción y cálculo del indicador de servicio telefónico
*   2.5 Construcción y cálculo del indicador de adecuación energética
*   2.6 Archivo con los  Indicadores de Adecuación de la Vivienda-NBI

********************************************************************************

********************************************************************************
*2.1 Construcción y cálculo del indicador de espacio y calidad de la vivienda
********************************************************************************
use "$tmp/hogaresmmip.dta", clear

***2.1.1 Calidad de la vivienda, se elaboran indicadores parciales que miden la calidad de muros, pisos y techos de las viviendas. 

*Pared de la vivienda (Norma: Tabique, ladrillo, block, piedra, cantera, cemento o concreto)

destring pared, replace 
gen AMj=0
*Material de desecho y lámina de cartón=0
replace AMj=0 if (pared==1 | pared==2)
*Lámina de asbesto o metálica, carrizo bambú o palma, y embarro o bajareque = 0.25
replace AMj=0.25 if (pared>2 & pared<6)
*Madera o adobe = 0.6							 										
replace AMj=0.6 if (pared==6 | pared==7)
*Muros de la vivienda (Norma Tabique, ladrillo, block, piedra, cantera, cemento o concreto)
replace AMj=1 if (pared==8)
label var AMj "Adecuación de muros"

***Techos de la vivienda
destring techos, replace
gen ATj=0
*Material de desecho y lámina de cartón = 0
replace ATj=0   if (techos==1 | techos==2)
*Lámina metálica, de asbesto de fibrocemento ondulada, palma o paja, madera o tejamanil y terrado con viguería = 0.5
replace ATj=0.5 if (techos> 2 & techos <8)
*Material de techo (Norma: Teja y Losa de concreto o viguetas con bovedilla)
replace ATj=1 if (techos==8 | techos==9)
label var ATj "Adecuación de techos"

*** 
***Material de piso
gen mat_pisos1= pisos
*destring pisos, gen(mat_pisos1) force
recode mat_pisos1(.=0)

gen APj=.
*Tierra = 0
replace APj=0    if (mat_pisos1==1 | mat_pisos1==0)
*Cemento o firme = .5   																
replace APj=0.5  if (mat_pisos1==2)
*Madera, mosaico o viguetas con bovedilla										<- Norma
replace APj=1    if (mat_pisos1==3)
label var APj "Adecuación de pisos"

* Índice compuesto de calidad de la vivienda

* Ponderadores de costos de la vivienda basandose en el estudio de  COPLAMAR VIVIENDA
gen ACVj=(APj*0.15) + (AMj*0.55) + (ATj*0.30)
label var ACVj "Ind compuesto calidad de la vivienda"

***2.1.2 Espacio disponible en la vivienda, se refiere al grado de hacinamiento, 
*Variable para identificar  hogares donde la cocina también es dormitorio, 1 si la cocina es exclusiva, es decir "sí no se usa como dormitorio"
gen KEh=0     
replace KEh=0 if (cua_coc==2) | (cua_coc==1 & coc_duer==1)
replace KEh=1 if (cua_coc==1 & coc_duer==2)

label var cuart "Cuartos totales viv(cuart)"
label var dormi "Num. dormitorios hogar(dormi)"
recode cuart dormi (.=0)

*Generar la variable cuartos comparables donde se identifican los cuartos de la vivienda
gen CCj= cuart- KEh
label var CCj "Cuartos comparables"
gen CMj= cuart - (dormi + KEh)
label var CMj "Cuartos multiusos viv"

*Norma del total de cuartos de la vivienda
recode residentes (.=0)
gen CTj_N= 1 + (0.75* residentes) if (residentes >1)
*Si solo reside una persona, la norma es 1
replace CTj_N=1 if (residentes ==1)
label var CTj_N "Norma cuartos totales vivienda"

*Generar las variables normas para construir el indicador de carencia de la vivienda
*Norma de dormitorios-> Un cuarto por dos personas				<- Norma

gen Dh_N = residentes/2
label var Dh_N "Norma dormitorios hogar"

*Generar adecuación dormitorios por hogar
gen ADh  = dormi / Dh_N
label var ADh "Ind Adecuación dormitorios"
recode ADh (.=0)

*Norma de cuartos multiusos de vivienda -> Un cuarto por cada cinco personas			<- Norma
gen CMj_N = residentes/5
label var CMj_N "Norma cuarto multiuso vivienda"

*Norma de dormitorios equivalentes								<- Norma
gen DEh_N = (0.5) + Dh_N + (CMj_N*1.5)
label var DEh_N "Norma Dormitorios Equivalentes"

*Número de dormitorios equivalentes								
gen DEh = (KEh*0.5) + dormi + (CMj*1.5)
label var DEh "Número de Dormitorios Equivalentes"

*Generar adecuación espacio de la vivienda
gen AEVh = DEh / DEh_N
label var AEVh "Adec espacio de la vivienda"

***
*** Cálculo del indicador de espacio disponible en la vivienda
***

*Reescalación de indicador de adecuación de la vivienda
gen 	AEVh_P = DEh  					if (residentes ==1 & AEVh <=1)
replace AEVh_P = 1 + ((AEVh-1)/(2)) 	if (residentes == 1 & AEVh >1)
replace AEVh_P = DEh / DEh_N 			if (residentes != 1 & AEVh <= 1)
replace AEVh_P =  1 + ((AEVh-1)/(2)) 	if (residentes != 1 & AEVh >  1)

label var AEVh_P "Reescal de Adec espacio viv"
replace AEVh_P=2 if AEVh_P>=2

gen HMDh = 1 - AEVh_P
label var HMDh "Hacinamiento multidimensional"

***
***Cálculo del consolidado de cantidad y calidad de la vivienda.
***
*Se toman en cuenta ambos indicadores, de espacio y calidad de la vivienda
gen acevj = ACVj*AEVh_P
label var acevj "Ind de espacio y calidad de la vivienda"
*Generar la variable de carencia
gen ccevj= 1-acevj
label var ccevj "Ind carencia de espacio y calidad de la vivienda"

******************************************************************
*2.2 Construcción y cálculo del indicador de bienes durables.
******************************************************************

*Se renombran las variables de bienes durables
gen calgas=1 if calen==1
gen bomag=1 if (bom_ag==1)
gen auto=vehi1_n
gen camneta=vehi2_n
gen camcaj=vehi3_n                                 
gen moto=vehi4_n                                     
gen bici=vehi5_n 
gen estereo=eqh1_n
gen grabado=eqh2_n       
gen radio=eqh3_n
gen tv=eqh4_n
gen dvd=eqh5_n
gen licuad=eqh7_n
gen refri=eqh10_n
gen estgas=eqh11_n
gen lavado=eqh12_n
gen plancha=eqh13_n
gen mcoser=eqh14_n
gen venti=eqh15_n
gen aspirado=eqh16_n
gen compu=eqh17_n
gen juegovi=eqh19_n

*Cambiar los valores de missing a 0 y de -1 a 0 para poder hacer la deflactación y la suma
recode auto camneta camcaj moto bici estereo grabado radio tv dvd licuad  ///
    refri estgas lavado plancha mcoser venti aspirado compu  juegovi ///
    calgas bomag(.=0)(-1=0) (99=0)

*Dato externo 1 = Precios de bienes durables, actualizados a 2010. Véase documento metodológico
 
*Valores de artículos del hogar deflactados al mes de agosto de 2010
gen Nauto   =118238.68     	* auto
gen Ncamnet =132512.61     	* camneta
gen Ncamcaj =132512.53     	* camcaj
gen Nmoto   =26781.77     	* moto
gen Nbici   =1283.86      	* bici
gen Nradio  =600.03     	* radio
gen Ngrabad =600.03     	* grabado
gen Nestereo=1287.53     	* estereo
gen Ntv     =3921.13     	* tv
gen Ndvd    =476.64      	* dvd
gen Njuegov =6324.46        * juegovi
gen Ncompu  =14043.08     	* compu
gen Nventi  =286.77     	* venti
gen Nmcoser =2514.23     	* mcoser
gen Nestgas =2829.90     	* estgas
gen Nrefri  =4940.59     	* refri
gen Nlicuad =326.52      	* licuad
gen Nbomag  =836.88     	* bomag
gen Nplanch =164.57      	* plancha
gen Nlavado =3480.75     	* lavado
gen Naspira =409.82     	* aspirado
gen Ncalgas =1786.10     	* calgas

***Cálculo del indicador de bienes durables

*D2
*Dato externo 2 = Canasta de bienes durables
*NORMA es la suma del valor presente de: bicicleta, grabadora, tv, ventilador, 
*estufa de gas, refrigerador, licuadora, plancha y lavadora
*Para obtener la carencia se suma de todos los bienes durables y se dividen 
*entre norma, siendo el denominador en 2010, 17,834.13
************************************************.
gen ABDj = (Nauto +  Ncamnet + Ncamcaj +  Nmoto  + Nbici  + Nradio  +  ///      
Ngrabad + Nestereo + Ntv + Nventi + Nmcoser + Nestgas + Nrefri  + Nlicuad + ///
Nbomag + Nplanch + Nlavado + Naspira + Ncalgas + Ndvd	+ Njuegov + ///
Ncompu ) / (17834.13) 
label var ABDj "Adec. Bienes Durables" 

*Reescalación de variable de bienes durables
gen ABDj_P = ABDj
replace ABDj_P=1 + ((ABDj-1)/ 9) if (ABDj > 1 ) 
replace ABDj_P=2 if ABDj_P>=2
label var ABDj_P "Adec bienes durables reescalado"

*Generación de variable de carencia
gen CBDj = 1 - ABDj_P
label var CBDj "Carenc Resc Adec bienes durables"

******************************************************************
*2.3 Construcción y cálculo del indicador de adecuación sanitaria
******************************************************************
*** el indicador tiene tres componentes parciales, adecuación de disponibilidad de agua, conexión al drenaje y excusado

***2.3.1 Agua, la norma corresponde a la disponibilidad de agua dentro de la vivienda, con frecuencia diaria.

gen agua_disp=dis_agua
gen agua_dot=dot_agua

*Se recodifica variable de disponibilidad de agua
*La norma es agua entubada dentro de la vivienda (código 1)							<- Norma
recode agua_disp (6 4 =0) (3 5 =1) (2=2) (1=3), gen(ag_disp)
gen aaa = ag_disp/3
label var aaa "Adecuación forma de abasto hídrica"

*Se recodifica variable de frecuencia de agua
*La norma es frecuencia diaria (código 1)             <- Norma
destring dot_agua, replace											
gen frec_agua = 0
replace frec_agua= 4   if (dot_agua == 1)
replace frec_agua= 2.0 if (dot_agua == 2)
replace frec_agua= 1.2 if (dot_agua == 3)
replace frec_agua= 0.6 if (dot_agua == 4)
replace frec_agua= 0.4 if (dot_agua == 5)

label var frec_agua  "Frecuencia del agua"
gen afa = frec_agua/4
label var afa "Adecuación de frecuencia del agua"

*Generar índice de adecuación y frecuencia de agua
gen AA = (aaa + afa)/2
label var AA "Adecuación de abasto hídrico"

***2.3.2 Drenaje y excusado, Norma: excusado exclusivo conectado a drenaje o fosa séptica
***

*Generar índice de adecuación de drenaje
*Se convierten en numéricas las variables relacionadas con drenaje
destring drenaje, replace
recode drenaje (.=0)

*La norma es drenaje conectado a red pública o fosa séptica							<- Norma
recode drenaje (1 2=1)(3 4 5=0)
gen ADr =drenaje/1
label var ADr "Adecuación del drenaje"

*Generar índice de adecuación de excusado
*La norma es que tengan excusado, no compartido y con descarga directa de agua		<- Norma
gen EX=.
replace EX=0 if ( excus  ==2)
replace EX=0 if ( adm_ag ==3)
replace EX=2 if ( uso_com==1 & adm_ag==2)
replace EX=3 if ( uso_com==1 & adm_ag==1)
replace EX=3 if ( uso_com==2 & adm_ag==2)
replace EX=4 if ( uso_com==2 & adm_ag==1)
gen AEX = EX /4.                             
label var AEX "Adecuación de excusado"   
recode AEX (.=0)
 
*Generar indicador consolidado de adecuación sanitaria, con base en adecuación de abasto hídrico, de drenaje y de excusado
gen ASj = AA * ADr * AEX 
label var ASj "Indicador consolidado de adecuación sanitaria"

*Generar indicador de carencia sanitaria
gen CSj = 1 - ASj
label var CSj "Ind de carencia de adecuación sanitaria"

******************************************************************* 
*2.4 Construcción y cálculo del indicador de servicio telefónico
*******************************************************************
rename serv_1 telefono
rename serv_2 celular

*Generación de indicador conjunto de telefonía o celular
* La norma es tener almenos uno de los dos										<- Norma	
gen ATlj =0 		if (telefono == "2" & celular == "2")
replace ATlj =1 	if (telefono == "1" | celular == "1")									
replace ATlj =1.5 	if (telefono == "1" & celular == "1")
label var ATlj "Adecuación telefonía"

*Generación de indicador de carencia de servicio telefónico
gen CTELJ = 1 - ATlj
label var CTELJ "Ind carencia del serv. telefónico"

************************************************************************
* 2.5 Construcción y cálculo del indicador de adecuación energética
*************************************************************************

*Generación indicador de disponibilidad de energía eléctrica
*La norma es cualquier opción en que sí tengan abasto de energía 

gen AElj=0 
*La norma es cualquier opción en que sí tengan abasto de energía 						<- Norma
replace AElj=0 if (elect == 5)
replace AElj=1 if (elect == 1 | elect == 2 | elect == 3 | elect ==4 ) 
label var AElj "Adecuación energía eléctrica"

*Generación indicador de adecuación de combustible
** 1 Leña, 2 Carbón,  6 Otro combustible; 
**Norma: 3 Gas de tanque, 4 Gas natural o de tubería y 5 Electricidad

gen ck=.
replace ck=3 if (combus ==3 | combus == 4 | combus == 5 )
* La norma es utilizar gas o electricidad para cocinar 									<- Norma
replace ck=1 if (combus ==1 | combus == 2 | combus == 6 )
replace ck=0 if  combus ==0 			
gen ACK=(ck/3)
label var ACK "Indicadores de adecuación combustible"

*Generación indicador conjunto de adecuación energética
gen AENj= ACK*(0.30) + AElj*(0.70)
label var AENj "Indicador de adecuación energetica"  

*Generación indicador de carencia energética
gen CENJ=1-AENj
label var CENJ "Indicadores de carencia en energetica"


************************************************************************
*2.6 Archivo con los Indicadores de Adecuación de la Vivienda-NBI 
************************************************************************

keep proyecto folio municipio entidad ur_rur_2500 factor tam_hog factorxind ///
ACVj AEVh AEVh_P acevj ccevj ///
ABDj ABDj_P CBDj ///
AA ADr AEX ASj CSj ///
ATlj CTELJ ///
pared techos pisos mat_pisos1 CMj_N ///
cua_coc agua_dot coc_duer agua_disp drenaje excus ADh  ///
AElj ACK AENj CENJ uso_com

save "$final/nbi.dta", replace 


********************************************************************************
* Módulo 3. Educación
*
*  3.1 Años de escolaridad
*  3.2 Condición de analfabetismo
*  3.3 Cálculo del indicador de adecuación y rezago educativo 

********************************************************************************

*Abrir la base de población 
use "$bases/Pobla10.dta", clear

*Se crea el identificador "folio"
egen folio= concat(folioviv foliohog)
sort proyecto folio numren

*Se eliminan los que no son miembros de la familia  
destring edad parentesco, replace 
drop if parentesco>=400 & parentesco<500
drop if parentesco>=700 & parentesco<800

*Pegar con base de factor	
merge m:1 proyecto folio using "${final}/factexp.dta"
drop _merge

* Tanto alfabetización (alfabetism) como asistencia escolar (asis_esc)
*	está codificadas de la siguiente manera: 1=si  2 = no
destring nivelaprob gradoaprob antec_esc alfabe asis_esc, replace
recode nivelaprob gradoaprob antec_esc alfabe asis_esc (.=0)
************************
*3.1 Años de escolaridad
************************

***
***Reescalación de años de escolaridad
***

* Generar la variable rescgen
gen rescgen=0

*Paso 1: Si el nivel aprobado es 1, de preescolar, se reemplaza como el grado aprobado que tiene
	*la persona, ya que no tiene antecedentes escolares que sumen años de escolaridad.
	*Si tenían más de tres años de preescolar, solo se les cuenta tres años máximo.
replace rescgen=gradoaprob if nivelaprob==1
replace rescgen=3 if rescgen > 3

*Paso 2: Si el nivel aprobado es primaria, secundaria o bachillerato, se les suma una cantidad de años dada
* de manera que, en suma, se obtenga el número de años que llevan estudiando, tomando en cuenta preescolar.
replace rescgen=(2 + (gradoaprob+1)) if nivelaprob==2
replace rescgen=(3 + (gradoaprob+6)) if nivelaprob==3
replace rescgen=(4 + (gradoaprob+8)) if nivelaprob ==4

*Paso 3: Al grado "normal" o "carrera técnica",
* se les suma el número de años dependiendo del antecedente escolar
replace rescgen=10 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==1 & antec_esc==1) 
replace rescgen=11 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==2 & antec_esc==1)
replace rescgen=12 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==3 & antec_esc==1)
replace rescgen=13 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==4 & antec_esc==1) 
replace rescgen=14 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==5 & antec_esc==1) 

replace rescgen=13 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==1 & antec_esc==2)
replace rescgen=14 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==2 & antec_esc==2) 
replace rescgen=15 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==3 & antec_esc==2) 
replace rescgen=16 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==4 & antec_esc==2)
replace rescgen=17 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==5 & antec_esc==2)
 
replace rescgen=16 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==1 & antec_esc==3) 
replace rescgen=17 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==2 & antec_esc==3)
replace rescgen=18 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==3 & antec_esc==3)
replace rescgen=19 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==4 & antec_esc==3)
replace rescgen=20 if ((nivelaprob==6 | nivelaprob==5) & gradoaprob==5 & antec_esc==3)
 
*Paso 4: Si el nivel aprobado es profesional, maestría o doctorado, solo se le suman los años que llevan estudiando 
replace rescgen=((7 * 2) + (gradoaprob+1)) if (nivelaprob==7 ) 
replace rescgen=((8 * 2) + (gradoaprob+4)) if (nivelaprob==8 )
replace rescgen=((9 * 2) + (gradoaprob+4)) if (nivelaprob==9 )

***
*** Norma educativa de años estudiados, de acuerdo a la edad
***

*Generar variable que identifica el año de nacimiento
gen a_nacimiento= 2010-edad

*Generación variable de norma educativa																	<- Norma
gen 	normaedu=0
*9 años  de educación equivalen a primaria
replace normaedu=  	9 if 				a_nacimiento <= 1946
*12 años de educación equivalen a secundaria   				        				 	  
replace normaedu=	12 if 				a_nacimiento >= 1947 & a_nacimiento 	<= 1976  
*15 años de educación equivalen a media superior   				        				 	 
replace normaedu=	15 if 				a_nacimiento >= 1977 & edad>=19					
*Norma específica para los nacidos después de 1977 y menores de 18 años
replace normaedu= 	edad-4 if 			a_nacimiento >= 1977 & edad >=4  & edad<19

label var normaedu "Norma educativa"

************************************************************************
*3.2 Condición de analfabetismo
************************************************************************

***Analfabetismo
*Generar una nueva variable para condición de alfabetismo,
	*donde normativamente se asume que mayores de ocho años analfabetas están en carencia				<- Normagen alij=0
gen ali=0
replace ali=1 if alfabe==1
replace ali=0 if (alfabe==2 & edad >=8) 
label var ali "Condición de alfabetismo"

***Asistencia Escolar

*Generación de asistencia escolar
recode asis_esc (1=1) (2=0)

*Generar variable de norma de asistencia, donde los de tres años o más y menores de 17 años 
	*tienen que asistir a la escuela, en términos normativos. En caso contrario, están en carencia.		<- Norma
gen normaasis=0																						
replace normaasis=1 if (edad >=3 & edad <=17) 

************************************************************************
* 3.3 Cálculo del indicador de adecuación y rezago educativo   
************************************************************************ 
***Generación de indicador de adecuación de educación
recode asis_esc (.=0)
gen anei=((rescgen + asis_esc)/ (normaedu + normaasis)) * ali
replace anei=((rescgen + asis_esc)/ (normaedu + normaasis)) if (edad>2 & edad<8)
label var anei "Adecuación de educación"

*Se reescala el indicador de anei (adecuación de educación), solo para los que están por arriba de la norma
*Generar valores de reescalación
recode edad (0/17=1)(18/29=2) (30/59=3)(60/197=4), gen(redad)
tabstat anei, s(mean min max) by (redad)
*Se introducen valores de reescalación
gen     anei_p=anei
summarize anei if redad==2
return list
replace anei_p = 1 + ((anei - 1) / (r(max) -1)) if ( anei>1 & (edad >= 18 & edad  <= 29) )
summarize anei if redad==3
return list
replace anei_p = 1 + ((anei - 1) / (r(max) -1)) if ( anei>1 & (edad >= 30 & edad  <= 59) ) 
summarize anei if redad==4
return list
replace anei_p = 1 + ((anei - 1) / (r(max) -1)) if ( anei>1 & edad > 59)
replace anei_p=2 if anei_p>2
label var anei_p "Adecuación de educación del individuo"

*A los menores de 4 años se les da valor de 0 = satisfacción mínima
* alos que tienen 4 años y no asisten a la escuela se clasifica en pobreza 
replace  anei_p =1 if  edad<=4
replace  anei_p =0 if (edad==4) & asis_esc==0

***Generación de indicador de carencia de educación

*Generar variable que identifique a los mayores a dos años
gen mayores_dos_años=1 if edad>2
label var mayores_dos_años "Mayor de 2 años"

*Generar variable de rezago educativo individual
gen rei =  1 - anei_p 
label var rei "Rezago educativo individual"

keep proyecto folio numren rei rescgen anei_p 

save "$final/edu.dta", replace

********************************************************************************
* Módulo 4. Salud y Seguridad Social
*
* 4.1 Generación de indicador de ingresos por pensiones y programas de adultos mayores
* 4.2 Acceso a la salud
* 4.3 Indicadores para cálculo de acceso Seguridad Social
* 4.4 Variable de acceso a seguridad social 
                       
********************************************************************************

************************************************************************
*4.1 Generación de indicador de ingresos por pensiones y programas de adultos mayores
************************************************************************

*Abrir la base de datos de ingresos
use "$bases/Ingresos.dta", clear

*Se mantienen solo los datos de ingresos por pensiones (P033 y P032) y de Programas de Adultos Mayores (P044 y P045)
keep if clave =="P032"| clave =="P033" | clave =="P044" | clave =="P045" 

*Se mantiene en la base solo algunas variables, y se genera la variable folio
keep proyecto folioviv foliohog numren clave ing_tri
egen folio= concat(folioviv foliohog)
sort proyecto folio numren 


*Identificar cuántos hogares tienen ingresos por pensiones
gen pen032=0
replace pen032=1 if clave=="P032" & ing_tri > 0

gen pen033=0
replace pen033=1 if clave=="P033" & ing_tri > 0

gen pen044=0
replace pen044=1 if clave=="P044" & ing_tri > 0

gen pen045=0
replace pen045=1 if clave=="P045"& ing_tri > 0

label var pen032 "Jubilación dentro del país"
label var pen033 "Jubilación de otros países"
label var pen044 "Beneficio de programa 70 y más" 
label var pen045 "Beneficio otros programas adultos mayores"

*Colapsar a nivel población dejando 1 como identificador en cada persona que percibe alguno de estos tipos de ingresos
collapse (max) pen032 pen033 pen044 pen045, by(proyecto folio numren)

*Abrir la base de datos de pensiones a nivel persona
save "$tmp/Pensiones10.dta", replace 

*Generar la base de población para unirse a la anterior de pensiones
use "$bases/Pobla10.dta", clear

*Se genera la variable folio
egen folio= concat(folioviv foliohog)
sort proyecto folio numren 

*Se une a la base de factor
merge m:1 proyecto folio using "$final/factexp.dta"
drop _merge

*Se une con la base de pensiones
merge 1:1 proyecto folio numren using "$tmp/Pensiones10.dta"
drop _merge

************************************************************************
*4.2 Acceso a la salud
************************************************************************

*Generar variable de acceso a salud
gen asaludi=0

*Se reemplaza el Acceso a Salud, con los siguientes valores
*0.51 si tiene Seguro Popular o IMSS Prospera
replace asaludi=0.51 if segpop=="1"
*0.33 si tiene "otro"
replace asaludi=0.33 if inst_5=="5"
*1 si tiene IMSS, ISSSTE, ISSSTE estatal
replace asaludi=1 if inst_1 =="1" | inst_2=="2" | inst_3=="3" 
*1.1 Pemex y seguro privado
replace asaludi=1.1 if inst_4=="4" | segvol_2=="2"

*D3
*Dato externo número 3
***https://idconline.mx/seguridad/sabias-que/2010/primas-de-salud-para-la-familia-2010	
***Precios originales reportados en febrero de 2010, 
************************************************

*Generar variable de "Cuota mensual de IMSS por persona 2010"
gen segimmsi=0

replace segimmsi=(1265.10)/12 if edad>=0  & edad<=19 
replace segimmsi=(1478.60)/12 if edad>=20 & edad<=39 
replace segimmsi=(2210.10)/12 if edad>=40 & edad<=59 
replace segimmsi=(3325.70)/12 if edad>=60 

label var segimmsi "Cuota IMSS régimen voluntario mensual por persona"

**Se establece costo monetario de ser no derechohabiente en salud
*Primero, se genera una  variable que identifica a aquellos que no tienen acceso a Salud
gen nodersali=0
replace nodersali=1 if asaludi==0
*Luego se crea una variable que le identifica el costo del seguro voluntario, solo para aquellos que no tienen acceso a salud
gen cnoderchsali=0
replace cnoderchsali=segimmsi if nodersali==1

************************************************************************
* 4.3 Indicadores para cálculo de acceso Seguridad Social (SS)
************************************************************************

*Generar el identificador de acceso a SS por alguna de las siguientes instituciones
*Que contenga 1 (inscrito como prestación laboral) o 2 (jubilación o invalidez) como su identificador
gen p1=0
gen p2=0
gen p3=0
gen p4=0


replace p1=1 if inst_1=="1" & inscr_1=="1"
replace p2=1 if inst_2=="2" & inscr_1=="1"
replace p3=1 if inst_3=="3" & inscr_1=="1"
replace p4=1 if inst_4=="4" & inscr_1=="1"

replace p1=1 if inst_1=="1" & inscr_2=="2"
replace p2=1 if inst_2=="2" & inscr_2=="2"
replace p3=1 if inst_3=="3" & inscr_2=="2"
replace p4=1 if inst_4=="4" & inscr_2=="2"

* A fin de determinar la cobertura se la SS, Se crean variable para identificar 
* a los familiares directos del jefe de familia (pers1) y se aplican las reglas 
* establecidas en las leyes de SS vigentes:
	*Parejas = pers2, hija(o)s=pers3, padres= pers4 o suegros=pers5
	*Dichas variables pers1 a pers5,  toman valor de 1, e identifican al pariente que existe en el hogar
destring parentesco, replace
recode parentesco   /// 
       (101 102=1)  ///
	   (200/204=2)  ///
	   (300/305=3)  ///
	   (601=4)      ///
	   (615=5)      ///
	   (else=0), ///
	   gen (paren1) 

gen pers1=1 if paren1==1
gen pers2=1 if paren1==2
gen pers3=1 if paren1==3
gen pers4=1 if paren1==4
gen pers5=1 if paren1==5

replace pers1=0 if pers1==.
replace pers2=0 if pers2==.
replace pers3=0 if pers3==.
replace pers4=0 if pers4==.
replace pers5=0 if pers5==.

* Generar la variable "persm", que identifica a la persona que tiene SERVICIO MEDICO DIRECTO por prestación laboral*.
gen persm=p1+ p2 + p3 + p4
label var persm "Persona con prestación de SS laboral"

* Generar variable (segsocj) que identifica tipo de institución a la que se tiene acceso, para Jefes de familia
	* 1 = imss, 2 = issste federal y estatal, 3 = pemex
gen segsocj=0
replace segsocj=3 if  persm>0 & paren1==1
replace segsocj=1 if  persm>0 & paren1==1 &  inst_1=="1" 
replace segsocj=2 if (persm>0 & paren1==1 & (inst_2=="2" | inst_3=="3"))

* Generar variable (segsocc) que identifica tipo de institución a la que se tiene acceso, para parejas
	* 1 = imss, 2 = issste federal y estatal, 3 = pemex
gen segsocc=0
replace segsocc=3 if (persm>0 & paren1==2)
replace segsocc=1 if (persm>0 & paren1==2 &  inst_1=="1") 
replace segsocc=2 if (persm>0 & paren1==2 & (inst_2=="2" | inst_3=="3")) 

* Generar variable (segsocc) que identifica si los hijos tienen acceso a SS
gen segsoch=0
replace segsoch=1 if (persm>0 & (paren1==3 & edad>=16)) 

* Generar variable que identifica si en el hogar hay personas con seguridad social, según parentesco
egen padre=   max(segsocj), by (proyecto folio)
egen conyuge= max(segsocc), by (proyecto folio)
egen hijoss=  max(segsoch), by (proyecto folio) 
egen per1=    max(pers1),   by (proyecto folio)
egen per2=    max(pers2),   by (proyecto folio)
egen per3=    max(pers3),   by (proyecto folio)
egen per4=    max(pers4),   by (proyecto folio)
egen per5=    max(pers5),   by (proyecto folio)

*Genera una variable que identifica a los hijos de asegurados que van a la escuela y por lo tanto acceden aa SS
*Para ISSSTE, los que son menores a 16 años, o entre 15 y 25 pero asisten a escuela
gen h_b_issste=0
replace h_b_issste=1 if   (((edad<16) | ((edad>15 & edad<25) & asis_esc=="1")) & (paren1==3))
*Para IMSS,   los que son menores a 18 años, o entre 17 y 25 pero asisten a escuela
gen h_b_imss=0
replace h_b_imss=1   if   (((edad<18) | ((edad>17 & edad<25) & asis_esc=="1")) & (paren1==3)) 

************************************************************************
*4.4 Variable de acceso a seguridad social 
************************************************************************

*Generar una variable de Acceso a seguridad social 
gen asegsoci=0 

*Paso 1: Se asigna valor según si es beneficiario de programa de adultos mayores
*Le asigna 0.25 a los que tienen PAM ("70 y más")
replace asegsoci=0.25 if pen044==1
*También para los programas estatales,
replace asegsoci=0.25 if pen045==1
*Con excepción del prorgrama de la CDxMX, que se le asigna 0.5
replace asegsoci=0.5 if pen045== 1 & entidad==9

*Paso 2: Se reemplaza de acuerdo a ser asegurado o recibirlo por medio de la pareja, padre/madre o hijas/hijos
replace asegsoci=1 if segsocj>0 | segsocc>0 | segsoch==1
replace asegsoci=1 if (padre==1 & h_b_imss==1) 
replace asegsoci=1 if (padre==2 & h_b_issste==1) 
replace asegsoci=1 if (conyuge==1 & h_b_imss==1) 
replace asegsoci=1 if (conyuge==2 & h_b_issste==1) 
replace asegsoci=1 if (padre>0 & paren1==4) 
replace asegsoci=1 if (conyuge>0 & paren1==5) 

*Paso 3: Jefe cubre a cónyuge y viceversa.
replace asegsoci=1 if (padre>0 & (conyuge==0 & paren1==2))
replace asegsoci=1 if (conyuge>0 & (padre==0 & paren1==1)) 

*Paso 4: Hijos con prestaciones cubren a  jefe y cónyuge.
replace asegsoci=1 if (hijoss>=1 & padre==0 & paren1==1) 
replace asegsoci=1 if (hijoss>=1 & conyuge==0 & paren1==2) 
replace asegsoci=1 if (hijoss>=1 & segsoch==1)
replace asegsoci=0 if (hijoss>=1 & segsoch==0 & segsocj==0 & segsocc==0 & (paren1==3 | paren1==0)) 


*Paso 5: Se identifica a las personas que tienen acceso indirecto a SS
	* inscr_2 = 2 jubilacion o invalidez
	* inscr_3 = 3 un familiar en el hogar 
	* inscr_4 = 4 muerte de asegurado
	* incsr_7 = 7 un familiar de otro hogar.
replace asegsoci=1 if ((inst_1=="1" | inst_2=="2" | inst_3=="3" | inst_4=="4") & (inscr_2=="2" | inscr_3=="3" | inscr_4=="4" | inscr_7=="7"))
replace asegsoci=1 if (pen032==1 | pen033==1)

replace asegsoci=1 if persm>=1

*Etiquetar variables
label var asaludi "Acceso a servicios de salud, individuo"
label var asegsoci "Acceso a seguridad social, individuo"
label var cnoderchsali "Costo Seguro Voluntario IMSS en salud, individuo"

* Se identifica con 1 a los trabajadores del hogar y los huespedes, y luego se retiran de la base.
recode parentesco    /// 
       (400/470=1)   ///
	   (700/800=1)   ///
	   (else=0),  ///
	   gen (paren)
replace paren=0 if paren==.
keep if paren==0


*Generar los agregados por hogar y se colocan en la misma base a nivel individual
egen cnoderchsalij=   		 sum(cnoderchsali), by (proyecto folio)
label var cnoderchsalij "Costo Seguro Voluntario IMSS en salud, suma x hogar"

save "$tmp/salud_y_ss.dta", replace


********************************************************************************
* Módulo 5. Tiempo
*
* 5.1 Generación de indicadores de carencia de cobertura de menores
* 5.2 Generación de indicador de requerimiento de trabajo doméstico
* 5.3 Generación de indicadores sobre discapacidad y disponibilidad
* 5.4 Generación de indicadores sobre trabajadores del hogar e integrantes disponibles
* 5.5 Calculo del indicador del tiempo

********************************************************************************

************************************************************************
*5.1 Generación de indicadores de carencia de cobertura de menores
************************************************************************

*Abrir base de "Trabajo"
use "$bases/Trabajos.dta", clear
*Se crea el identificador "folio"
egen folio = concat(folioviv foliohog)
sort proyecto folio

*Se identifica la variable de prestación de guardería (prestación_6)
gen pres_6_mod= pres_6
destring pres_6_mod htrab, replace
replace pres_6_mod=0 if  pres_6_mod==.
replace htrab=0 if  htrab==.

*Colapsar indicador de Guardería como prestación y suma de horas trabajadas en ambos trabajos por persona.
collapse (sum) htrab (max) pres_6_mod, by(proyecto folio numren)
rename htrab hstrmesp
label var hstrmesp "Horas trabajadas en ambos empleos"
label var pres_6_mod "Indicador prestación de guardería"
* Guardar base
save "$tmp/htrabyguarde.dta", replace

***Variables relacionadas con cuidado de menores

*Abrir la base de población
use "$bases/Pobla10.dta", clear
*Se crea el identificador "folio"
egen folio = concat(folioviv foliohog)
sort proyecto folio

*Se unen las bases creadas anteriormente
merge 1:1 proyecto folio numren using "$tmp/htrabyguarde.dta"
drop _merge

*Quitar missings de hstrmesp
replace hstrmesp=0 if  hstrmesp==.

*Generar variables de parentesco y sexo a modificar
destring parentesco sexo, replace

*Generar variable de guardería
gen guard=0
replace guard=1 if pres_6_mod==6

*Generar variable que identifica menores de 10 años
gen menorh10=0
replace menorh10=1 if edad<=10

*Generar variable que identifica trabajadores del hogar
gen trab_hogar=0
replace trab_hogar=1 if ( parentesco >= 401 &  parentesco <= 412)

*Colapsar Indicador de Trabajadores del hogar y agregar a la misma base
egen trab_hogar_h=sum(trab_hogar), by(proyecto folio)

*Recodificar variable de parentesco, 1 identifica a los no familiares
recode parentesco      /// 
       (400/470=1)     ///
	   (700/999=1),  ///
       gen (paren) 
replace paren=0 if paren !=1
keep if paren==0	   

*Generar identificador de madre 
gen esmama=0
replace esmama=1 if ((parentesco== 101 | (parentesco>=201 & parentesco<= 204 )) & sexo== 2)

*Generar identificador de hija
gen esmama_hija=0
replace esmama_hija=1 if ((parentesco>=301 & parentesco<= 305 ) & sexo==2)

*Crear y modificar identificador de asistencia a la escuela
destring asis_esc, replace
recode asis_esc (2=0) (missing=0) , gen(asis_esc_modif)
tab asis_esc_modif asis_esc
tab asis_esc_modif

*Identificador de mujeres que tienen prestación de guardería
gen der_guard=0
gen der_guard_hija=0
replace der_guard=1 if (guard== 1 & esmama== 1) 
replace der_guard_hija=1 if (guard== 1 & esmama_hija== 1) 

*Generar variable de derecho a guardería a nivel hogar, aún por madre e hija
egen der_guard_max=max(der_guard), by(proyecto folio)
egen der_guard_hija_max=max(der_guard_hija), by(proyecto folio)

*Generar identificador de menores de hasta 5 años
gen menorh5=0
replace menorh5=1 if edad <= 5
label var menorh5 "Menor de hasta cinco" 
replace menorh5 =0 if menorh5==.

*Identificador de menores que asisten a escuela o guardería
gen menor_asis_esc=0
replace menor_asis_esc=1 if (asis_esc== 1 & menorh10== 1)
replace menor_asis_esc=1 if (der_guard_max==1 & (parentesco>=301 & parentesco<= 305) &  menorh5== 1)
replace menor_asis_esc=1 if (der_guard_hija_max== 1 & parentesco== 609 &  menorh5== 1)

*Identificar pob de 15 a 69 años
gen n15_69 = 0 
replace n15_69 =1 if (edad>= 15 & edad< 70)

*Identificar pob de 12 a 14 años
gen d_12_14=0
replace d_12_14=6/48 if (edad >= 12 & edad <= 14) 
label var d_12_14 "Disponible 12 a 14 años"

*Identificar pob de 70 a 79 años
gen d_70_79=0
replace d_70_79=16/48 if  (edad >= 70 & edad <= 79) 
label var d_70_79 "Disponible 70 a 79 años"

*Colapsar y renombrar variables
collapse (sum) n15_69 hstrmesp menorh10 menor_asis_esc d_70_79 d_12_14 (max) trab_hogar_h, by(proyecto folio)
label var n15_69 "Total personas entre 15 y 69 en hogar"
label var menorh10 "Menores de hasta 10 años en el hogar" 

rename hstrmesp wj 
label var wj "Total de horas de trabajo por hogar (ocup princ y sec)"

rename trab_hogar_h JTH
label var  JTH "Trabajadores del hogar"

rename menor_asis_esc asis_esch 
label var asis_esch "Menores de 11 años en hogar que asisten escuela o guardería"  

rename d_70_79 dj70_79
label var dj70_79 "Disponible 70 a 79 años"

rename d_12_14 dj12_14
label var dj12_14 "Disponible 12 a 14 años"

*Crear variable de cobertura de menores (en escuela o guarderías)
gen cobertura_menores=0
replace  cobertura_menores=asis_esch/menorh10 if menorh10 > 0
label var cobertura_menores "Cobertura educativa de menores de 11"

*Generar variable de carencia de cuidado de menores
gen CASCMj= (1-cobertura_menores)*2
label var CASCMj "Carencia cuidado de menores"

*Verificar que no se le esté imputando carencia en el cuidado de menores a hogares que no tienen menores
replace CASCMj=0 if (menorh10==0 & CASCMj==2)

*Guardar base de datos
save "$tmp/cascm.dta", replace

************************************************************************
*5.2 Generación de indicador de requerimiento de trabajo doméstico
************************************************************************

*Trabajar base temporal proveniente del módulo 1 "NBI"
use "$tmp/hogaresmmip.dta", clear

*Disponibilidad del agua 
destring dis_agua, replace
recode dis_agua (1=0) (2=0.66) (3/7=2), gen(AAJ)

*Recodificación de variables de bienes del hogar
	*Nota, algunos indicadores tienen un valor -1, que reporta dato "no especificado". Se mandan a Cero.
recode eqh10_n eqh7_n eqh12_n vehi1_n vehi2_n vehi3_n vehi4_n (2/999=1) (.=0) (0=0) (1=1) (-1=0), 
label var eqh10_n "¿Tiene refrigerador?"
label var eqh7_n  "¿Tiene licuadora?"
label var eqh12_n "¿Tiene lavadora?"
label var vehi1_n "Auto"
label var vehi2_n "Camioneta"
label var vehi3_n "Camioneta_caja"
label var vehi4_n "Moto"

*Indicador de vehiculo motorizado
gen vehicmot = 0
label var vehicmot "¿Tiene vehiculo motorizado?"
replace vehicmot = 1 if (vehi1_n==1 | vehi2_n==1 | vehi3_n==1 | vehi4_n==1)  

*Indicador de equipo domestico 
gen equipdom= 0
replace equipdom= eqh10_n + eqh7_n + eqh12_n
label var equipdom "¿Tiene equipo doméstico?"

*Indicador de carencia de equipo ahorrador de trabajo doméstico 
gen CEATDj=0
label var CEATDj "Carencia de equipo ahorrador de trabajo doméstico"

*Se pondera el indicador de acuerdo a disponibilidad de vehículo motorizado o equipo doméstico
replace CEATDj = 0  if (equipdom == 3 & vehicmot == 1) 
replace CEATDj = 0  if (equipdom == 3 & vehicmot == 0)  
replace CEATDj = 0  if (equipdom == 2 & vehicmot == 1) 
replace CEATDj = 1  if (equipdom == 2 & vehicmot == 0) 
replace CEATDj = 1  if (equipdom == 1 & vehicmot == 1) 
replace CEATDj = 1  if (equipdom == 0 & vehicmot == 1) 
replace CEATDj = 2  if (equipdom == 1 & vehicmot == 0)  
replace CEATDj = 2  if (equipdom == 0 & vehicmot == 0) 

*Se unen las bases creadas anteriormente
merge 1:1 proyecto folio using "$tmp/cascm.dta"

*Indicador de la intensidad del trabajo doméstico
gen ITDj=.
replace ITDj = ((AAJ + CEATDj)/2) if menorh10==0
replace ITDj = ((AAJ + CEATDj + CASCMj)/3)  if menorh10>0

*Indicador de la intensidad del trabajo doméstico por estratos
gen       ITDj_r=.
replace   ITDj_r=0 if ITDj<=0.5
replace   ITDj_r=1 if ITDj>0.5 & ITDj<=1.5
replace   ITDj_r=2 if ITDj>1.5 
label var ITDj_r "Intensidad trab dom por estratos"
drop ITDj
rename ITDj_r ITDj

*Se agrupa tamaño de hogar para un mejor manejo de la variable
recode tam_hog (1 2=1)(3 4=3)(5 6=5)(7/999=7), gen(rank_nhog)
label var rank_nhog "Recodificación de tamaño de hogar" 

***
***Indicador de requerimiento de jornada de trabajo doméstico
***
gen RTDj=.
replace RTDj = 0.7 if (menorh10 == 0 & ITDj == 2 & rank_nhog == 1)
replace RTDj = 0.9 if (menorh10 == 0 & ITDj == 2 & rank_nhog == 3)
replace RTDj = 1.1 if (menorh10 == 0 & ITDj == 2 & rank_nhog == 5)
replace RTDj = 1.3 if (menorh10 == 0 & ITDj == 2 & rank_nhog == 7)

replace RTDj = 0.5 if (menorh10 == 0 & ITDj == 1 & rank_nhog == 1)
replace RTDj = 0.7 if (menorh10 == 0 & ITDj == 1 & rank_nhog == 3)
replace RTDj = 0.9 if (menorh10 == 0 & ITDj == 1 & rank_nhog == 5) 
replace RTDj = 1.1 if (menorh10 == 0 & ITDj == 1 & rank_nhog == 7) 

replace RTDj = 0.3 if (menorh10 == 0 & ITDj == 0 & rank_nhog == 1) 
replace RTDj = 0.5 if (menorh10 == 0 & ITDj == 0 & rank_nhog == 3) 
replace RTDj = 0.7 if (menorh10 == 0 & ITDj == 0 & rank_nhog == 5) 
replace RTDj = 0.9 if (menorh10 == 0 & ITDj == 0 & rank_nhog == 7) 

replace RTDj = 1.2 if (menorh10  > 0 & ITDj == 2  & rank_nhog == 1) 
replace RTDj = 1.4 if (menorh10  > 0 & ITDj == 2  & rank_nhog == 3) 
replace RTDj = 1.6 if (menorh10  > 0 & ITDj == 2  & rank_nhog == 5) 
replace RTDj = 1.8 if (menorh10  > 0 & ITDj == 2  & rank_nhog == 7) 

replace RTDj = 1.0 if (menorh10  > 0 & ITDj == 1  & rank_nhog == 1) 
replace RTDj = 1.2 if (menorh10  > 0 & ITDj == 1  & rank_nhog == 3) 
replace RTDj = 1.4 if (menorh10  > 0 & ITDj == 1  & rank_nhog == 5) 
replace RTDj = 1.6 if (menorh10  > 0 & ITDj == 1  & rank_nhog == 7) 

replace RTDj = 0.8 if (menorh10  > 0 & ITDj == 0  & rank_nhog == 1) 
replace RTDj = 1.0 if (menorh10  > 0 & ITDj == 0  & rank_nhog == 3) 
replace RTDj = 1.2 if (menorh10  > 0 & ITDj == 0  & rank_nhog == 5) 
replace RTDj = 1.4 if (menorh10  > 0 & ITDj == 0  & rank_nhog == 7) 

label var RTDj "Requerimiento de jornada de trabajo doméstico" 

*Guardar la base de datos
keep proyecto folio municipio entidad ur_rur_2500 cobertura_menores ITDj ///
n15_69 dj12_14 dj70_79 wj menorh10 JTH RTDj RTDj 
save "$tmp/ocuph.dta", replace


************************************************************************
*5.3 Generación de indicadores sobre discapacidad y disponibilidad
************************************************************************

***Identificador de población que tiene trabajo, pero no trabajó mes pasado, estudiantes e incapacitados  

use "$bases/Pobla10.dta", clear

*Se crea el identificador "folio"
egen folio = concat(folioviv foliohog)
sort proyecto folio

*Indicador ocupados de 12 a 79 años 
keep if edad>=12 & edad<80
label var motivo "Causa no trabajo mes pasado"

*Indicador ONT (Ocupados que No Trabajaron) causa por la que no trabajó el mes pasado 
gen ont=0
* Reemplazar si es 1) Tenía permiso por enfermedad o para realizar trámites, etcétera. 2) Estaba recibiendo 
* capacitación para su trabajo o de vacaciones, 3) Había un conflicto laboral o huelga 4) No tenía materias 
* primas, clientes o el equipo estaba descompuesto, 5) No era temporada de trabajo agrícola 6) Había mal clima u otro fenómeno natural

replace  ont = 1 if (motivo == "1" | motivo == "2" | motivo == "3" | ///
                     motivo == "4" | motivo == "5" | motivo == "6" )
label var ont "Ocupados que no trabajaron" 

*Indicador de ocupados que no trabajaron de 12 a 79 años 
gen 		ONT=0
replace 	ONT=6/48  if  (ont == 1 & (edad >= 12 & edad  <= 14))
replace 	ONT=16/48 if  (ont == 1 & (edad >= 70 & edad  <= 79)) 
replace 	ONT=1     if  (ont == 1 & (edad >= 15 & edad  <= 69))
label var 	ONT "Ocupados que no trabajaron de 12 a 79 años" 

*Indicador de 15 a 79 años que asisten a la escuela 
gen EST=0
replace  EST = 1 if ((edad >= 15 & edad < 80) & asis_esc == "1")
label var EST "Estudiantes"

*Indicador de personas con discapacidad y que por esa razón no trabajan
gen C_Disc_a=0
replace C_Disc=1 if bustrab_6=="6"
label var C_Disc "Personas con discapacidad y que por esa razón no trabajan"

*Indicador de personas con discapacidad  de 12 a 79 años y que por esa razón no trabajan 
gen 		C_Disca=0
replace   	C_Disca=6/48  	if  (C_Disc_a==1 & (edad >= 12 & edad  <= 14))
replace   	C_Disca=16/48 	if  (C_Disc_a==1 & (edad >= 70 & edad  <= 79))
replace   	C_Disca=1	 	if  (C_Disc_a==1 & (edad >= 15 & edad  <= 69))
label var 	C_Disca "Personas con discapacidad y que por esa razón no trabajan de 12 a 79"

*Se colapsan las variables a nivel hogar
collapse (sum) C_Disca EST ONT, by(proyecto folio)

label var C_Disca "Número de personas con discapacidad"
label var EST "Número de estudiantes en el hogar"
label var ONT "Número de ocupados que no trabajó mes pasado"

save "$tmp/jorexc.dta", replace

************************************************************************
*5.4 Generación de indicadores sobre trabajo doméstico
************************************************************************

*Utilizar base creada anteriormente
use "$final/factexp.dta",clear 
merge 1:1 proyecto folio using "$tmp/ocuph.dta"
drop _merge

*Generar indicador de jornadas de trabajadores del hogar
label var JTH "Jornadas desempeñadas por trabajadores del hogar"

*Generar con la base jorexc
merge 1:1 proyecto folio using "$tmp/jorexc.dta"
drop _merge

*Se reemplanzan valores perdidos por cero
replace ONT=0 		if ONT==.
replace EST=0 		if EST==.
replace C_Disca=0 	if C_Disca==.
replace RTDj=0 		if RTDj==.
replace JTH=0 		if JTH==.  

*Generar indicador de jornadas de trabajo que no se suman al total del hogar
gen hj= ONT + (EST*0.5833) +  C_Disca
label var hj "Jornadas de trabajo excluidas en el hogar"
replace hj=0 if hj==. | hj<0

*Generar indicador neto de disponibilidad de jornadas de trabajo doméstico por hogar
gen 	kj= (n15_69 + dj12_14 + dj70_79) - hj
replace kj=0 if kj==. | kj<0
label var kj "Horas disponibles de trabajo por hogar"

************************************************************************
*5.5 Calculo del indicador del tiempo
************************************************************************

gen ett=0

replace ett= ((1 + wj) + ((RTDj - JTH) * 48)) /   (kj * 48) 	if (kj >  0 & RTDj >= JTH) 
replace ett= ((1 + wj)                        /   (kj * 48))  	if (kj >  0 & RTDj <  JTH) 
replace ett= ((1 + wj) + ((RTDj - JTH) * 48)) /(1+(kj * 48)) 	if (kj <= 0 & RTDj >= JTH) 
replace ett= ((1 + wj)                        /(1+(kj * 48)))   if (kj <= 0 & RTDj <  JTH) 

replace ett=0.1 if ett>0 & ett<=0.5
replace ett=2 if ett>2 

*Generación de indicador de trabajo doméstico
gen trab_dom = (RTDj - JTH)*48 

*Guardar una base que contiene todas las variables 
save "$tmp/indocu.dta", replace 

*Se seleccionan algunas variables y se guarda una base con solo esas variables
keep proyecto folio municipio entidad ur_rur_2500 ett trab_dom
save "$final/etj.dta", replace 


******************************************************************************
* Módulo 6. Ingresos
*
* 6.1   Adultos equivalente
* 6.2   Ingreso total 
* 6.3   Líneas de pobreza
* 6.4  Indicador de carencia de salud y SS
* 6.5  Indicador de Ingresos-Tiempo
*
*******************************************************************************

********************************************************************************
*6.1  Construcción de Adulto equivalente
********************************************************************************
*Abrir la base datos, y solo dejamos variables de edad sexo y parentesco 
use "$bases/Pobla10.dta", clear 
keep proyecto folioviv foliohog edad sexo parentesco 
egen folio=concat (folioviv foliohog)
sort proyecto folio

merge m:1 proyecto folio using "$final/factexp.dta"
tab _merge
drop _merge

*Se eliminan los que no son miembros de la familia en el hogar
destring parentesco, replace
drop if parentesco>=400 & parentesco <500
drop if parentesco>=700 & parentesco <800

*Se identifican individuos por edades
gen bebe=1 if edad>=0 & edad<=2
gen nino=1 if edad>=3 & edad<=14
gen adulto=1 if edad>=15 & edad<=112

*Adulto Equivalente Urbano
gen AE=.
replace AE=0.40 if bebe==1   & sexo=="1"
replace AE=0.39 if bebe==1   & sexo=="2"
replace AE=0.56 if nino==1   & sexo=="1"
replace AE=0.55 if nino==1   & sexo=="2"
replace AE=1.00 if adulto==1 & sexo=="1"
replace AE=0.81 if adulto==1 & sexo=="2"

*Adulto Equivalente Rural
replace AE=0.47 if bebe==1   & sexo=="1" & tam_loc==4
replace AE=0.45 if bebe==1   & sexo=="2" & tam_loc==4
replace AE=0.65 if nino==1   & sexo=="1" & tam_loc==4
replace AE=0.63 if nino==1   & sexo=="2" & tam_loc==4
replace AE=1.00 if adulto==1 & sexo=="1" & tam_loc==4
replace AE=0.83 if adulto==1 & sexo=="2" & tam_loc==4

*Identificador de individuo
gen N=1

*Se colapsan las variables a nivel hogar
collapse (sum) AE N, by(proyecto folio)
rename AE ae_sum
rename N N_BREAK

*Abrir base de datos
save "$tmp/adultos_equivalentes.dta", replace

********************************************************************************
*6.2 Construcción del ingreso total 
********************************************************************************

*Abrir la base previamente elaborada 
use "$bases/base_final_ACN1.dta", clear 

keep proyecto folio tam_hog ur_rur_2500 remun_ACN renta_ACN tran_gobACN tran_nogobACN YNagro_ACN Yagro_ACN ///
     rem_esp_ACN p009_ACN p016_ACN p034_ACN p035_ACN p036_ACN alq_ACN rem_esp_ACN 

	 
gen double incomod=((remun_ACN+renta_ACN+tran_gobACN+tran_nogobACN+YNagro_ACN +Yagro_ACN)-(p009_ACN+p016_ACN))
gen double inglabt=((remun_ACN+YNagro_ACN +Yagro_ACN)-(p009_ACN+p016_ACN))

gen double P_34=p034_ACN 
gen double P_35=p035_ACN
gen double P_36=p036_ACN

label var incomod "Ingreso corriente monetario mensual ajustado a CN"
label var inglabt "Ingreso laboral mensual ajustado a CN"
label var   P_34  "Indemnizaciones recibidas de seguros contra riesgos mensual ajustado a CN"
label var   P_35  "Indemnizaciones por accidentes de trabajo mensual ajustado a CN"
label var   P_36  "Indemnizaciones por despido y retiro voluntario"
 
*Cambiar los valores perdidos a 0
recode incomod inglabt P_34 P_35 P_36 (.=0)

*Se renombran variables para identificar que son a nivel hogar
rename incomod ing_mon 
rename inglabt inglabth 
rename P_34 YIDj 
rename P_35 YISj 
rename P_36 YISj2 


gen double icnmhm    = alq_ACN+ rem_esp_ACN 
gen double inglabtot = inglabth+rem_esp_ACN
gen double ict       = ing_mon + icnmhm 
gen double yctj      = ict
 

label var  icnmhm    "Ingreso no monetario  mensual"
label var  ict       "Ingreso Corriente Total Mensual 8/2010"
label var  inglabtot "Ingreso total laboral"
label var  yctj      "Ing Corr Tot Mensual Hogar"

*Se redefine el ingreso, quitando las indemizaciones (las cuáles son pagos únicos y no corrientes)
gen double yctrj = yctj - (YISj + YIDj + YISj2)
label var  yctrj "Ing Corr Tot Mensual Hogar Redefinido"
gen double yctraj    = yctrj 
gen double yctradj   = yctraj

*Se une con la base de Adulto Equivalente
merge 1:1 proyecto folio using "$tmp/adultos_equivalentes.dta"
drop _merge

*Ingreso corriente total mensual
gen double ing_men_hog=yctrj
label var ing_men_hog "ingreso corriente total mensual por hogar"

*Ingreso sin trafserencias publicas
gen double ing_men_hog_stp= ing_men_hog-tran_gobACN
label var ing_men_hog_stp "ingreso corriente total mensual por hogar sin transferncias publicas"

*Ingreso crriente total mensual per cápita
gen double ict_per= ing_men_hog/tam_hog
label var ict_per "ingreso corriente total mensual por hogar per cápita"

*Ingreso corriente total promedio mensual per cápita sin transferencias
gen double ict_sintransf_per= (ing_men_hog-tran_gobACN)/(tam_hog)
label var ict_sintransf_per "ingreso corriente total mensual por hogar sin transferensias per cápita"

*Se guarda la base
save "$ingresos/ing_cor_tot.dta", replace

********************************************************
* 6.3  Líneas de pobreza
********************************************************

*Abrir la base de ingresos recien creada
use "$ingresos/ing_cor_tot.dta", replace

* Lineas de pobreza urbana y rural 
gen LP=. 

*Línea de pobreza mensual 
replace LP = 2558.62 +(563.41* tam_hog)+(2353.46 * ae_sum) if ur_rur_2500==1
replace LP = 2238.74 +(545.56* tam_hog)+(2143.65 * ae_sum) if ur_rur_2500==2

*Se genera línea de pobreza promedio por persona
gen LP_pc = LP / tam_hog 
label var LP_pc "Línea de pobreza mensual por persona"

*Se reemplaza a los hogares que tengan ingresos negativos por cero 

gen double yctradj_hogar = yctradj
replace yctradj_hogar=0 if yctradj_hogar<0

gen double ayj_nueva_LP  = yctradj_hogar/ LP
gen double ayj_NLP_reesc = ayj_nueva_LP

replace ayj_NLP_reesc=0 if ayj_NLP_reesc<=0
replace ayj_NLP_reesc= 1+((ayj_nueva_LP- 1)/9) if (ayj_nueva_LP > 1)
replace ayj_NLP_reesc=2 if ayj_NLP_reesc> 2
recode ayj_NLP_reesc (.=0)

gen cyj_NLP = 1-(ayj_NLP_reesc)
replace cyj_NLP=1 if cyj_NLP >= 1

save "$final/cict.dta", replace


*******************************************************************************
* 6.4  Indicador de carencia de salud y SS
********************************************************************************

*Abrir base de población y se genera folio
use "$bases/Pobla10.dta", clear
egen folio=concat(folioviv foliohog)

*Pegar con base de ingresos
merge m:1 proyecto folio using "$final/cict.dta"
drop _merge

*Se eliminan los que no son miembros de la familia en el hogar
destring parentesco, replace
drop if parentesco>=400 & parentesco <500
drop if parentesco>=700 & parentesco <800

*Pegar con base de datos de salud y seguridad social
merge 1:1 proyecto folio numren using "$tmp/salud_y_ss.dta"
drop _merge

***Generación indicador de Salud verificado por ingresos

*Generar variable de acceso a salud, verificado por ingresos
gen ASi=.
label var ASi "Ind Acceso a Salud verif x ingresos"

*Se reemplaza con el valor del acceso a salud anterior, si es que este último es menor a 1,
	*y su ingreso es menor a la suma de la linea de pobreza, más el costo del IMSS voluntario
replace ASi= asaludi if (asaludi < 1 & (yctradj_hogar < (LP + cnoderchsalij)))
replace ASi= yctradj_hogar/ (LP + cnoderchsalij) if (asaludi <1 & ((LP + cnoderchsalij) <=yctradj_hogar))
replace ASi= asaludi if (asaludi >= 1)

* Se reescala variable
* Para valores > 2, se iguala a 2
gen ASi_r = ASi
replace ASi_r= 1 + ((ASi-1)/9)    if ASi>1
replace ASi_r=2 if  (ASi > 2) 

*Generar indicadores de carencia
gen CASi = 1 - (ASi_r)
label var CASi "Ind de carencia en salud"

***Generación indicador de Salud verificado por ingresos

*Se crea variable de acceso a la seguridad social verificado por ingresos
gen ASSi = .

*Se Reemplaza según los que pertenecen a "clase alta" en ingresos
replace ASSi = 1 if ((asegsoci < 1) & (cyj_NLP >= -1 & cyj_NLP <= -0.5))
replace ASSi= asegsoci if (asegsoci >= 1)
replace ASSi= asegsoci if ((asegsoci < 1) & (cyj_NLP > -0.5))

*Generar indicador de carencia de Seguridad Social
gen CASSi = 1 - (ASSi) 
*label var CASSi sum "Ind de carencia en seguridad social"

*Guardar la base de datos
keep proyecto folio numren CASi CASSi
save "$final/cass.dta", replace 

********************************************************************************
* 6.5  Indicador de Ingresos-Tiempo
********************************************************************************

*Abrir la base de datos de tiempo
use "$final/etj.dta", clear

*Se elimnan variables repetidas pero con diferente formato para realizar pegado
drop entidad municipio ur_rur_2500

*Pegar con la base de ingresos
merge 1:1 proyecto folio using "$final/cict.dta"
drop _merge 

*Se reemplaza valores perdidos por cero
replace inglabtot=0 if inglabtot==.

*Generar el indicador de ingreso tiempo con verificación por ingresos laborales y tiempo
gen ytj = yctradj_hogar

replace ytj= yctradj_hogar - inglabtot + (inglabtot / ett) if ((ett>1 & yctradj_hogar <=LP)|(yctradj_hogar>LP)) 

*Generar la variable de adecuación de tiempo verificada por línea de pobreza
gen aytj = ytj / LP

*Generar la variable reescalada de adecuación de tiempo
gen aytj_r = aytj
replace aytj_r = 1 + ((aytj - 1) / 9) if (aytj > 1)
replace aytj_r = 2 if (aytj_r > 2)

*Generar la variable de carencia en Ingresos-tiempo
gen cyt = 1 - aytj_r 
replace cyt  = 1 if (cyt >= 1)
label var cyt "Carencia en Ingreso-tiempo"

*Guardar base con indicadores de Ingresos-Tiempo
keep proyecto folio ytj aytj aytj_r cyt

save "$final/cyt.dta", replace


********************************************************************************
* Módulo 7.- Cálculo de indicador de MMIP
* 7.1 Pegar las bases finales y quedarse con una sola de trabajo
* 7.2 Calcular el NBI y el MMIP
* 7.3 Generar los estratos del MMIP
* 7.4 Guardado de base final
********************************************************************************

********************************************************************************
* 7.1 Pegado de bases
********************************************************************************

*Abrir base de población y se genera folio
use "$bases/Pobla10.dta", clear
egen folio=concat(folioviv foliohog)
sort  proyecto folio
	
*Se eliminan los que no son miembros de la familia en el hogar
destring parentesco, replace
drop if parentesco>=400 & parentesco <500
drop if parentesco>=700 & parentesco <800
	
*Pegar con base de factor	
merge m:1 proyecto folio using "${final}/factexp.dta"
drop _merge

*Pegar con la base de NBI
merge m:1 proyecto folio using "${final}/nbi.dta"
drop _merge

*Pegar con la base de educación
merge 1:1 proyecto folio numren using "${final}/edu.dta"
drop _merge

*Pegar con la base de tiempo
merge m:1 proyecto folio using "${final}/etj.dta"
drop _merge

*Pegar con la base de ingresos
merge m:1 proyecto folio using "${final}/cict.dta"
drop _merge

*Pegar con la base Salud y Seguridad Social
merge m:1 proyecto folio numren using "${final}/cass.dta"
drop _merge

*Pegar con la base de lienas de pobreza
merge m:1 proyecto folio using "${final}/cyt.dta"
drop _merge

***
***Guardar una base final con las bases pegadas para trabajar y hacer calculos
***
save "${final}/basefinal_pegadas.dta", replace

********************************************************************************
* 7.2 Cálculos de  NBI y MMIP
********************************************************************************

*Abrir base con todas las demas ya pegadas
use "${final}/basefinal_pegadas.dta", clear

*Generar indicador de NBI
gen nbi= (ccevj*.328) + (CSj*.037) + (CENJ*.028) + (CTELJ*.030) +  (CBDj *.058) + (rei*.236) + (CASSi*.1415) + (CASi*.1415)
label variable nbi "Indice global NBI"

*Generar indicador de MMIP
gen mmip= (nbi * .374) + (cyt * .626)
label variable mmip "Indice Pobreza MMIP"

********************************************************************************
* 7.3 Generar los estratos del MMIP
********************************************************************************

*** Etiqueta de estratos
label define estratos 6"Estrato alto" 5"Estrato medio" 4"Satisfaccion mínima" 3"Pobreza moderada" 2"Pobreza alta" 1"Pobreza muy alta"

* 1. Estrato de calidad de espacio de la vivienda
gen E_ccevj=.
replace E_ccevj=6 if ccevj <=-0.5
replace E_ccevj=5 if (ccevj > -0.5 & ccevj <= -.1) 
replace E_ccevj=4 if (ccevj > -0.1 & ccevj <= 0) 
replace E_ccevj=3 if (ccevj > 0 & ccevj <= (1/3)) 
replace E_ccevj=2 if (ccevj > (1/3) & ccevj <= .5) 
replace E_ccevj=1 if (ccevj > .5 & ccevj <= 1) 
label var E_ccevj "Estratos de Calidad y Espacio de la Vivienda"
label values E_ccevj estratos


***
*Calidad y Espacio de la Vivienda
gen pobreza_ccevj=.
replace pobreza_ccevj=0 if E_ccevj>=4
replace pobreza_ccevj=1 if E_ccevj<=3
label var pobreza_ccevj "Pobreza por Calidad y Espacio de la Vivienda"

gen pobre_ext_ccevj=.
replace pobre_ext_ccevj=0 if E_ccevj>=3
replace pobre_ext_ccevj=1 if E_ccevj<=2
label var pobre_ext_ccevj "Pobreza extrema por Calidad y Espacio de la Vivienda"


* 2. Estrato de carencia de bienes durables
gen E_CBDj=.
replace E_CBDj=6 if CBDj<= -0.5                  
replace E_CBDj=5 if (CBDj> -0.5 & CBDj <= -.1) 
replace E_CBDj=4 if (CBDj> -0.1 & CBDj <= 0) 
replace E_CBDj=3 if (CBDj> 0 & CBDj <= (1/3)) 
replace E_CBDj=2 if (CBDj> (1/3) & CBDj <=.5) 
replace E_CBDj=1 if (CBDj> .5 & CBDj <= 1) 
label var E_CBDj "Estrato de carencia de bienes durables"
label values E_CBDj estratos

***
*Carencia de bienes durables 
gen pobreza_cbdj=.
replace pobreza_cbdj=0 if E_CBDj>=4
replace pobreza_cbdj=1 if E_CBDj<=3
label var pobreza_cbdj "Pobreza por Bienes durables"

gen pobre_ext_cbdj=.
replace pobre_ext_cbdj=0 if E_CBDj>=3
replace pobre_ext_cbdj=1 if E_CBDj<=2
label var pobre_ext_cbdj "Pobreza extrema por Bienes durables"


* 3. Estrato de adecuación sanitaria
gen E_CSj =.
replace E_CSj=6 if CSj<= -0.5                  
replace E_CSj=5 if (CSj> -0.5 & CSj <= -.1) 
replace E_CSj=4 if (CSj> -0.1 & CSj <= 0) 
replace E_CSj=3 if (CSj> 0 & CSj <= (1/3)) 
replace E_CSj=2 if (CSj> (1/3) & CSj <=.5) 
replace E_CSj=1 if (CSj> .5 & CSj <= 1) 
label var E_CSj "Estrato de adecuación sanitaria"
label values E_CSj estratos

***
*Adecuacion sanitaria
gen pobreza_csj=.
replace pobreza_csj=0 if E_CSj>=4
replace pobreza_csj=1 if E_CSj<=3
label var pobreza_csj "Pobreza por Adecuacion Sanitaria"

gen pobre_ext_csj=.
replace pobre_ext_csj=0 if E_CSj>=3
replace pobre_ext_csj=1 if E_CSj<=2
label var pobre_ext_csj "Pobreza extrema por Adecuacion Sanitaria"


* 4. Estrato de carencia de teléfono
gen E_CTELJ=.
replace E_CTELJ=6 if  CTELJ <= -0.5                  
replace E_CTELJ=5 if (CTELJ > -0.5 & CTELJ <= -.1) 
replace E_CTELJ=4 if (CTELJ > -0.1 & CTELJ <= 0) 
replace E_CTELJ=3 if (CTELJ > 0 & CTELJ <= (1/3)) 
replace E_CTELJ=2 if (CTELJ > (1/3) & CTELJ <=.5) 
replace E_CTELJ=1 if (CTELJ > .5 & CTELJ <= 1) 
label var E_CTELJ  "Estrato de carencia de teléfono"
label values E_CTELJ estratos
***
*Carencia de Teléfono
gen pobreza_ctelj=.
replace pobreza_ctelj=0 if E_CTELJ>=4
replace pobreza_ctelj=1 if E_CTELJ<=3
label var pobreza_ctelj "Pobreza por Carencia de teléfono"

gen pobre_ext_ctelj=.
replace pobre_ext_ctelj=0 if E_CTELJ>=3
replace pobre_ext_ctelj=1 if E_CTELJ<=2
label var pobre_ext_ctelj "Pobreza extrema por Carencia de teléfono"


* 5. Estrato de carencia energética
gen E_CENJ=.
replace E_CENJ=6 if  CENJ <= -0.5                  
replace E_CENJ=5 if (CENJ > -0.5 & CENJ <= -.1) 
replace E_CENJ=4 if (CENJ > -0.1 & CENJ <= 0) 
replace E_CENJ=3 if (CENJ > 0 & CENJ <= (1/3)) 
replace E_CENJ=2 if (CENJ > (1/3) & CENJ <=.5) 
replace E_CENJ=1 if (CENJ > .5 & CENJ <= 1) 
label var E_CENJ "Estrato de carencia energética"
label values E_CENJ estratos  

***
*Carencia Energética
gen pobreza_cenj=.
replace pobreza_cenj=0 if E_CENJ>=4
replace pobreza_cenj=1 if E_CENJ<=3
label var pobreza_cenj "Pobreza por Carencia Energética"

gen pobre_ext_cenj=.
replace pobre_ext_cenj=0 if E_CENJ>=3
replace pobre_ext_cenj=1 if E_CENJ<=2
label var pobre_ext_cenj "Pobreza extrema por Carencia Energética"


* 6. Estrato de rezago educativo
gen E_rei=.
replace E_rei=6 if  rei <= -0.5                  
replace E_rei=5 if (rei > -0.5 & rei <= -.1) 
replace E_rei=4 if (rei > -0.1 & rei <= 0) 
replace E_rei=3 if (rei > 0 & rei <= (1/3)) 
replace E_rei=2 if (rei > (1/3) & rei <=.5) 
replace E_rei=1 if (rei > .5 & rei <= 1) 
label var E_rei  "Estrato de rezago educativo"
label values E_rei estratos  

***
*Rezago Educativo
gen pobreza_rei=.
replace pobreza_rei=0 if E_rei>=4
replace pobreza_rei=1 if E_rei<=3
label var pobreza_rei "Pobreza por Rezago educativo"

gen pobre_ext_rei=.
replace pobre_ext_rei=0 if E_rei>=3
replace pobre_ext_rei=1 if E_rei<=2
label var pobre_ext_rei "Pobreza extrema por Rezago educativo"


* 7. Estratos de Acceso a Seguridad social
gen E_CASSi=.
replace E_CASSi=6 if  CASSi <=  -0.5                  
replace E_CASSi=5 if (CASSi >  -0.5 & CASSi <= -.1) 
replace E_CASSi=4 if (CASSi >  -0.1 & CASSi <= 0) 
replace E_CASSi=3 if (CASSi >     0 & CASSi <= (1/3)) 
replace E_CASSi=2 if (CASSi > (1/3) & CASSi <=.5) 
replace E_CASSi=1 if (CASSi >    .5 & CASSi <= 1) 
label var E_CASSi "Estratos de Acceso a Seguridad Social"
label values E_CASSi estratos

***
*Rezago de Acceso a Seguridad Social
gen pobreza_cassi=.
replace pobreza_cassi=0 if E_CASSi>=4
replace pobreza_cassi=1 if E_CASSi<=3
label var pobreza_cassi "Pobreza por Acceso a Seguridad Social"

gen pobre_ext_cassi=.
replace pobre_ext_cassi=0 if E_CASSi>=3
replace pobre_ext_cassi=1 if E_CASSi<=2
label var pobre_ext_cassi "Pobreza extrema por Acceso a Seguridad Social"



* 8. Estratos de Acceso a Salud
gen E_CASi=.
replace E_CASi=6 if  CASi <= -0.5                  
replace E_CASi=5 if (CASi > -0.5 & CASi <= -.1) 
replace E_CASi=4 if (CASi > -0.1 & CASi <= 0) 
replace E_CASi=3 if (CASi > 0 & CASi <= (1/3)) 
replace E_CASi=2 if (CASi > (1/3) & CASi <=.5) 
replace E_CASi=1 if (CASi > .5 & CASi <= 1) 
label var E_CASi "Estratos de Acceso a Salud"
label values E_CASi estratos

***
*Rezago de Acceso a Salud
gen pobreza_casi=.
replace pobreza_casi=0 if E_CASi>=4
replace pobreza_casi=1 if E_CASi<=3
label var pobreza_casi "Pobreza por Acceso a Salud"

gen pobre_ext_casi=.
replace pobre_ext_casi=0 if E_CASi>=3
replace pobre_ext_casi=1 if E_CASi<=2
label var pobre_ext_casi "Pobreza extrema por a Salud"



* 9. Estratos de Necesidades Básicas Insatisfechas 
gen E_nbi=.
replace E_nbi=6 if (nbi  <= -0.5)                  
replace E_nbi=5 if (nbi  > -0.5   & nbi  <= -.1) 
replace E_nbi=4 if (nbi  > -0.1   & nbi  <= 0) 
replace E_nbi=3 if (nbi  > 0      & nbi  <= (1/3)) 
replace E_nbi=2 if (nbi  > (1/3)  & nbi  <=.5) 
replace E_nbi=1 if (nbi  > .5     & nbi  <= 1) 
label var E_nbi  "Estratos de Necesidades Básicas Insatisfechas"
label values E_nbi estratos
   
***
*Pobreza por NBI
gen pobreza_nbi=.
replace pobreza_nbi=0 if E_nbi>=4
replace pobreza_nbi=1 if E_nbi<=3
label var pobreza_nbi "Pobreza por NBI"

gen pobre_ext_nbi=.
replace pobre_ext_nbi=0 if E_nbi>=3
replace pobre_ext_nbi=1 if E_nbi<=2
label var pobre_ext_nbi "Pobreza extrema por NBI"

* 10. Estratos de ingreso
gen E_cict=.
replace E_cict=6 if ( cyj_NLP  <= -0.5)
replace E_cict=5 if ( cyj_NLP  >  -0.5  &  cyj_NLP  <= -0.1)
replace E_cict=4 if ( cyj_NLP  >  -0.1  &  cyj_NLP  <= 0)
replace E_cict=3 if ( cyj_NLP  >    0   &  cyj_NLP  <= (1/3))
replace E_cict=2 if ( cyj_NLP  > (1/3)  &  cyj_NLP  <= 0.5)
replace E_cict=1 if ( cyj_NLP  >  0.5   &  cyj_NLP  <= 1)
label var E_cict "Estratos del ingreso"
label values E_cict estratos

***
*Pobreza por Ingreso
gen pobreza_cict=.
replace pobreza_cict=0 if E_cict>=4
replace pobreza_cict=1 if E_cict<=3
label var pobreza_cict "Pobreza por Ingreso"

gen pobre_ext_cict=.
replace pobre_ext_cict=0 if E_cict>=3
replace pobre_ext_cict=1 if E_cict<=2
label var pobre_ext_cict "Pobreza extrema por Ingreso"


* 11. Estratos de tiempo
gen E_ett=.
replace E_ett=6 if  ett <= 0.5
replace E_ett=5 if (ett >  0.5 & ett <= .9)   
replace E_ett=4 if (ett >  0.9  & ett <= 1)    
replace E_ett=3 if (ett >  1  & ett <= 1.333)
replace E_ett=2 if (ett > 1.333  & ett <= 1.5)
replace E_ett=1 if (ett >  1.5   & ett <= 2)
label var E_ett "Estratos del tiempo"
label values E_ett estratos

***
*Pobreza por Tiempo
gen pobreza_ett=.
replace pobreza_ett=0 if E_ett>=4
replace pobreza_ett=1 if E_ett<=3
label var pobreza_ett "Pobreza por Tiempo"

gen pobre_ext_ett=.
replace pobre_ext_ett=0 if E_ett>=3
replace pobre_ext_ett=1 if E_ett<=2
label var pobre_ext_ett "Pobreza extrema por Tiempo"


* 12. Estratos por Ingreso-Tiempo
gen E_cyt=.
replace E_cyt=6 if (cyt >= -1 & cyt<= -0.5)
replace E_cyt=5 if (cyt > -0.5 & cyt<= -0.1)
replace E_cyt=4 if (cyt > -0.1 & cyt<= 0)
replace E_cyt=3 if (cyt > 0 & cyt<= (1/3))
replace E_cyt=2 if (cyt >(1/3) & cyt<=  0.5)
replace E_cyt=1 if (cyt > 0.5 & cyt<= 1)
label var E_cyt "Estratos del ingreso-tiempo"
label values E_cyt estratos

***
*Pobreza por Ingreso-Tiempo
gen pobreza_cyt=.
replace pobreza_cyt=0 if E_cyt>=4
replace pobreza_cyt=1 if E_cyt<=3
label var pobreza_cyt "Pobreza por Ingreso-Tiempo"

gen pobre_ext_cyt=.
replace pobre_ext_cyt=0 if E_cyt>=3
replace pobre_ext_cyt=1 if E_cyt<=2
label var pobre_ext_cyt "Pobreza extrema por Ingreso-Tiempo"

* 13. Estratos del MMIP
gen E_mmip=.
replace E_mmip=6 if  mmip <= -0.5  
replace E_mmip=5 if (mmip >  -0.5  & mmip <= -.1)
replace E_mmip=4 if (mmip >  -0.1  & mmip <=  0)
replace E_mmip=3 if (mmip >    0   & mmip <=  (1/3))
replace E_mmip=2 if (mmip > (1/3)  & mmip <=  0.5 )
replace E_mmip=1 if (mmip >  0.5   & mmip <=  1)
label var E_mmip "Estratos del MMIP"
label values E_mmip estratos

***
*Pobreza por MMIP
gen pobreza_mmip=.
replace pobreza_mmip=0 if E_mmip>=4
replace pobreza_mmip=1 if E_mmip<=3
label var pobreza_mmip "Pobreza MMIP"

gen pobre_ext_mmip=.
replace pobre_ext_mmip=0 if E_mmip>=3
replace pobre_ext_mmip=1 if E_mmip<=2
label var pobre_ext_mmip "Pobreza extrema MMIP"

save "$tmp/final_10.dta", replace
********************************************************************
* 7.4 Guardado de base final
********************************************************************

use "$tmp/final_10.dta", clear

*selección de variables
keep proyecto folio numren upm est_dis factor parentesco tam_loc ur_rur_2500 tam_hog entidad municipio  ///
     sexo edad parentesco edocony etnia lenguaind hablaind alfabe asis_esc          ///
	 disc* inst_* segpop segvol_2 nbi mmip E_* ing_men_hog ing_men_hog_stp yctradj_hogar   ///
	  LP LP_pc


order folio proyecto numren upm est_dis factor parentesco tam_loc ur_rur_2500 tam_hog entidad       ///
      municipio sexo edad  edocony etnia lenguaind hablaind alfabe asis_esc disc*        ///
	  inst_* segpop segvol_2 ing_men_hog ing_men_hog_stp yctradj_hogar LP  LP_pc   nbi mmip E_* ///
	
	 
	 
*Etiquetar variables	 
label var	folio	        "Folio"
label var   proyecto        "Proyecto"
label var	numren	        "Identificador de la persona"
label var	upm	            "Unidad primaria de muestreo"
label var	est_dis	        "Estrato de diseño muestral"
label var   factor          "Factor de expansión"
label var	parentesco	    "Parentesco"
label var	tam_loc	        "Tamaño de localidad"
label var	ur_rur_2500	    "Localidades urbanas o rurales"
label var	tam_hog	        "Tamaño del hogar"
label var	entidad	        "Entidad"
label var	municipio	    "Municipio"
label var	sexo	        "Sexo"
label var	edad	        "Edad"
label var	edocony	        "Situación conyugal"
label var	etnia	        "Auto adscripción étnica"
label var	lenguaind	    "Lengua indígena"
label var	hablaind	    "Hablante indígena"
label var	alfabe	        "Alfabetismo"
label var	asis_esc	    "Asistencia a la escuela"
label var	disc1	        "Discapacidad 1"
label var	disc2	        "Discapacidad 2"
label var	disc3	        "Discapacidad 3"
label var	disc4	        "Discapacidad 4"
label var	disc5	        "Discapacidad 5"
label var	disc6	        "Discapacidad 6"
label var	disc7	        "Discapacidad 7"
label var	inst_1	        "Institución médica IMSS"
label var	inst_2	        "Institución médica ISSSTE"
label var	inst_3	        "Institución médica ISSSTE estatal"
label var	inst_4	        "Institución médica PEMEX"
label var	inst_5	        "Otra institución médica"
label var   segpop          "Seguro popular"
label var	segvol_2        "Seguro voluntario de gastos médicos"
label var	ing_men_hog 	"Ingreso corriente total mensual por hogar"
label var	ing_men_hog_stp	"Ingreso corriente total mensual por hogar sin transferencias publicas"
label var	yctradj_hogar	"Ingreso corriente mensual disponible MMIP (ajustado1)"
label var	LP	            "Línea de pobreza por hogar"
label var	LP_pc	        "Línea de pobreza mensual por persona"
label var	nbi	            "Índice global NBI"
label var	mmip	        "Índice Pobreza MMIP"
label var	E_ccevj	        "Estratos de Calidad y Espacio de la Vivienda"
label var	E_CBDj	        "Estratos de carencia de bienes durables"
label var	E_CSj	        "Estratos de adecuación sanitaria"
label var	E_CTELJ     	"Estratos de carencia de teléfono"
label var	E_CENJ      	"Estratos de carencia energética"
label var	E_rei	        "Estratos de rezago educativo"
label var	E_CASSi     	"Estratos de Acceso a Seguridad Social"
label var	E_CASi      	"Estratos de Acceso a Salud"
label var	E_nbi	        "Estratos de Necesidades Básicas Insatisfechas"
label var	E_cict	        "Estratos del ingreso"
label var	E_ett       	"Estratos del tiempo"
label var	E_cyt       	"Estratos del ingreso-tiempo"
label var	E_mmip       	"Estratos del MMIP"

*tabulados principales
foreach var of varlist E_mmip E_nbi E_cict E_ett E_cyt  E_ccevj ///
 E_CBDj E_CSj E_CTELJ E_CENJ E_rei  E_CASi E_CASSi  {
 tab `var'  [iw=factor] if entidad==09
 }
* 

foreach var of varlist E_mmip E_nbi E_cict E_ett E_cyt  E_ccevj ///
 E_CBDj E_CSj E_CTELJ E_CENJ E_rei  E_CASi E_CASSi  {
 tab `var'  [iw=factor] 
 }
* 
save "$final/final_10.dta", replace


