*******************************
***** "Chile 2020" ***** 
******************************

local carpeta "C:\carpeta_CASEN"	/*Se define la ruta de la carpeta donde se encontrarán las bases a utilizar y donde se guardarán las bases intermedias y base final*/

set more off
set type double
cap log close
log using "`carpeta'\\generacion_ca20db06.log", text replace

cd "`carpeta'"

/* Se convierte el archivo con la información de los montos de SAP a matriz para ser utilizado posteriormente*/

 use "210512_comunasSAP.dta", clear
 rename cod_sap comun
 merge 1:1 comun using "SAP20.dta"
 tab _m
 keep if _m ==3
 drop com_sap com_sap subap _merge
 rename cod_corr subap
 mkmat *, matrix(SAP)
		

*******************************
****** "Creación dn01" ********
*******************************

	use "210629_Base de Datos Casen 2020 con FE y varunit varstrat", clear  /*versión final, recibida 29 junio 2021*/

/*Edición casos especiales*/ 

	/*Subsidio agua potable*/
	
	gen y24_o = y24
	
	local casos = rowsof(SAP)
		
		forval x = 1/ `casos'  {
			replace y24 = SAP[`x',2] if comuna == SAP[`x',1] & y24> SAP[`x',2] & y24>0 & y24!=99 & y24!=.
			replace y24 = round(y24,1)
			}

	/*Bono trabajo mujer*/ 
	
	gen y25f_o = y25f
	replace y25f = 32548 if inlist(y25fp,1,9) & y25f > 32548 & y25f!=.	
	replace y25f = 506630 if y25fp == 2 & y25f > 506630	& y25f!=.		
	
	/*Subsidio empleo joven*/ 
	
	gen y25e_o = y25e
	replace y25e = 32548 if inlist(y25ep,1,9) & y25e> 32548	& y25e!=.	
	replace y25e = 506630 if y25ep == 2 & y25e > 506630	& y25e!=.		
	
	/*Ingreso mínimo garantizado*/
	
	gen y25g_o = y25g
	replace y25g = 59200 if y25g>59200 & y25g!=.
	

	save "ca20dn01.dta", replace
	

****************************************************************************************************************************************
***** "Creación de dn02:generación de variables estandarizadas(factorex, id_hogar, id_pers, condact, ocupr, ramar, categ, anoest)" ***** 
***** "y generación de variables de ingreso mensualizadas a nivel persona"                     									   *****
****************************************************************************************************************************************

	use "ca20dn01.dta", clear
	
	
/* Construccion variables CEPAL*/

	gen factorex = expr
	
	bysort folio: gen id_hog = (_n == 1)
	gen id_hogar = sum( id_hog)
	drop id_hog

	duplicates report
	
	rename id_persona id_persona_orig
	bysort id_hogar: gen id_persona = o

	gen parentco = pco1
	

	/* Condición de actividad */ /*SE AGREGA "POR TEMOR A CONTAGIARSE DE COVID" "CREE QUE NO HAY TRABAJO DISPONIBLE", estas categorías forman parte de los inactivos*/
	
	gen condact = 0 if edad < 15 									/* Menores de 15, no aplica (cambia respecto a 2015, menores de 12)*/
	replace condact = 1 if o1 == 1| o2 == 1 |o3 == 1 | o3b==1		/* Ocupados*/
	replace condact = 2 if o6 == 1 & (o4 == 1| o4 == 9)				/* Desocupados - cesante*/					
	replace condact = 3 if o6 == 1 & o4 == 2 						/* Desocupados - Buscan primera vez */				
	replace condact = 3 + o7 if (o7	>=1 & o7 <= 19)					/* Inactivos*/				
	replace condact = 99 if condact ==. & o7 == .					/* Ignorado */

label define condact 0"Menor de 15 años" 1"Ocupado" 2"Cesante" 3"Busca por primera vez" 4"Consiguio trabajo, empezara pronto" 5"Esperando resultado de gestiones" /*
	*/ 6"No tiene con quien dejar a los niños" 7"No tiene con quien dejar adulto mayor" 8"No tiene con quien dejar otro familiar" 9 "Enfermo o discapacitado" /*
	*/ 10"Piensa que nadie le dara trabajo" 11"Condiciones laborales no le acomodan" 12"Ofrecen sueldos muy bajos" 13"Quehaceres del hogar" 14"Estudiante" /*
	*/ 15"Jubilado(a), pensionado(a) o montepiado(a)" 16"Tiene otra fuente de ingreso" 17"Por temor a contagiarse de COVID-19" 18"Se canso de buscar o cree que no hay trabajo disponible" /*
	*/ 19"Cree que no hay trabajo disponible" 20"Busca cuando lo necesita o tiene trabajo esporadico" 21"No tiene interes en trabajar" 22"Otra razon" 99"NS/NR"

label values condact condact
tab condact, miss

	/*Ocupacion primaria a un digito - CIUO 08*/
	
	gen ocupr = cond(condact == 1, oficio1_08, -1)
	replace ocupr = 99 if ocupr == .

label define ocup 0 "Fuerzas Armadas" 1 "Gerentes" 2 "Profesionales" 3 "Técnicos y profesionales asociados" 4 "Trabajadores de apoyo administrativo" /*
	*/5 "Trabajadores de servicios y ventas" 6 "Trabajadores calificados de la agricultura, la silvicultura y la pesca" 7 "Trabajadores de artesanía y oficios conexos" /*
	*/8 "Operadores de plantas y máquinas y ensambladores" 9 "Ocupaciones elementales" -1 "NA" 98 "No bien especificado" 99 "NS/NR"
 
label value ocupr ocup
tab1 ocupr , miss
	

	/* Creacion de RAMA - CIIU Rev 4*/ 
	
	
	gen ramar = cond(condact == 1, rama1, -1)
			
label define RAMA 1 "Agricultura, ganadería silvicultura y pesca" ///
		2 "Explotación de minas y canteras" ///
		3 "Industrias manufactureras" ///
		4 "Suministro de electricidad, gas, vapor y aire acondicionado" ///
		5 "Suministro de agua; evacuación de aguas residuales, gestión de desechos y descontaminación" ///
		6 "Construcción" ///
		7 "Comercio al por mayor y al por menor, reparación de vehículos automotores y motocicletas" ///
		8 "Transporte y almacenamiento" ///
		9 "Actividades de alojamiento y de servicio de comidas" ///
		10 "Información y comunicaciones" ///
		11 "Actividades financieras y de seguros" ///
		12 "Actividades inmobiliarias" ///
		13 "Actividades profesionales, científicas y técnicas" ///
		14 "Actividades de servicios administrativos y de apoyo" ///
		15 "Administración pública y defensa; planes de seguridad social de afiliación obligatoria" ///
		16 "Enseñanza" ///
		17 "Actividades de atención de la salud humana y de asistencia social" ///
		18 "Actividades artísticas, de entretenimiento y recreativas" ///
		19 "Otras actividades de servicios" ///
		20 "Los hogares como empleadores" ///
		21 "Actividades de organizaciones y órganos extraterritoriales" ///
		-1 "NA" 88 "No bien especificado" 99 "NS/NR"
	
label values ramar RAMA
tab1 ramar, miss


	/*Creación CATEG*/ 
	
	gen categ = cond((condact==1 & o15 >=1 & o15 <=9), o15, -1)
	replace categ = 99 if categ == .
	
label define categ 1"Patron o empleador" 2 "Trabajador por cuenta propia" 3 "Empleado u obrero del sector publico" 4 "Empleado u obrero de empresas publicas" 5 "Empleado u obrero del sector privado" /*
	*/ 6 "Servicio domestico puertas adentro" 7"Servicio domestico puertas afuera" 8"FF.AA. y del orden" 9"Familiar no remunerado" -1"NA" 99"NS/NR"
label values categ categ
tab categ, miss
	
	
	/* Anoest*//*PROFESIONAL COMPLETO Y POSTGRADO, SE FIJA EN 16 PARA VALORES MAYORES QUE 6 EN e6b*/
	
	gen anoest = cond(e6a >=1 & e6a<=4, 0,.)												/*Nunca asistió, jardin/sala cuna, kinder/prekinder (e6a = 1, 2, 3,4)*/
	replace anoest = 99 if e6a == 5															/*Educación diferencial*/
	replace anoest = e6b if e6a == 6 & e6b>=1 & e6b<=6 & anoest == .						/*Primaria*/
	replace anoest = e6b if e6a == 7 & e6b>=1 & e6b<=8 & anoest == .						/*Educación básica*/
	replace anoest = 99 if (e6a == 6 | e6a == 7) & e6b == 99 & anoest == .
	replace anoest = 6 + e6b if e6a == 8 & e6b>=1 & e6b<=6 & anoest == .					/*Secundaria*/
	replace anoest = 6 if e6a == 8 & e6b == 99 & anoest == .
	replace anoest = 8 + e6b if e6a == 9 & e6b>=1 & e6b<=4 & anoest == .					/*Educación media*/
	replace anoest = 8 if e6a == 9 & e6b == 99 & anoest == .
	replace anoest = 6 + e6b if e6a == 10 & e6b>=1 & e6b<=6 & anoest == .					/*Técnica comercial, industrial o normalista*/
	replace anoest = 6 if e6a == 10 & (e6b == 99 | e6b>6) & anoest == .
	replace anoest = 8 + e6b if e6a == 11 & e6b>=1 & e6b<=5 & anoest == .					/*Educación media técnica profesional*/
	replace anoest = 8 if e6a == 11 & e6b == 99 & anoest == .
	replace anoest = 12 + e6b if e6a>= 12 & e6a<=14 & e6b>=1 & e6b<=8 & anoest == .			/*Técnico nivel superior, profesional incompleto*/
	replace anoest = 12 if e6a>= 12 & e6a<=14 & (e6b == 99 | e6b >= 9) & anoest == .
	replace anoest = 12 + e6b if e6a>= 15 & e6a<=17 & e6b>=1 & e6b<=8 & anoest == .
	replace anoest = 17 if e6a>= 15 & e6a<=17 & (e6b == 99 | e6b >= 8) & anoest == .		/*Profesional completo, postgrado*/
	replace anoest = 99 if e6a == 99
	replace anoest = anoest - 1 if e2 == 1 & anoest>0 & anoest<99 & ((inlist(e6a, 7) & anoest>0 & anoest<=8 & anoest!= 99) |(inlist(e6a, 8,10) & anoest>6 & anoest!=99)|(inlist(e6a, 9, 11) & anoest>8 & anoest!=99)| (inlist(e6a,12,13,14,15,16,17) & anoest>12 & anoest!= 99))
	
	tab anoest e6a, miss
	
	
	/* Ingresos*/

	
	/*Sueldos y salarios*/
		
	local sys1 "y1 y3a y3b y3c y3d y3e y3f y4a y4b y4c y4d y5a y5b y5c y5d y5e y5f y5g y5h y5i y5j y5k y5l y6 y10 y18a y14b"
	local sys2 "y0101 y0301 y0302 y0303 y0304 y0305 y0306 y0401 y0402 y0403 y0404 y0501 y0502 y0503 y0504 y0505 y0506 y0507 y0508 y0509 y0510 y0511 y0512 y0601 y1001 yids aux01"
		
	local i = 1
	local n: word count `sys1'
	while `i' <= `n' {
		local var1 : word `i' of `sys1' 
		local var2 : word `i' of `sys2'
		gen `var2' = `var1' 
		replace `var2' = .z if `var1' == 0
		replace `var2' = .m if `var1' == 99
		local i = `i' + 1
		}
	
	
	/* Sueldos y salarios ocupación principal*/
	
	
	local sysp1 "y0301 y0302 y0303 y0304 y0305 y0306"
	local sysp1p "y3ap y3bp y3cp y3dp y3ep y3fp"

	local sysp2 "y0401 y0402 y0403 y0404"
	
	
	local i = 1
	local n: word count `sysp1'
	while `i' <= `n' {
		local var1 : word `i' of `sysp1' 
		local var2 : word `i' of `sysp1p'
	
		replace `var1' = `var1' 					if `var2' == 1 & `var1' >0 & `var1'!=. & `var1'!=.m
		replace `var1' = max(round(`var1' / 2),1)	if `var2' == 2 & `var1' >0 & `var1'!=. & `var1'!=.m
		replace `var1' = max(round(`var1' / 3),1)	if `var2' == 3 & `var1' >0 & `var1'!=. & `var1'!=.m
		replace `var1' = max(round(`var1' / 4),1) 	if `var2' == 4 & `var1' >0 & `var1'!=. & `var1'!=.m
		replace `var1' = max(round(`var1' / 6),1) 	if `var2' == 5 & `var1' >0 & `var1'!=. & `var1'!=.m
		replace `var1' = max(round(`var1' / 12),1) 	if `var2' == 6 & `var1' >0 & `var1'!=. & `var1'!=.m
		replace `var1' = `var1'					 	if (`var2' == 9 | `var2' == .) & `var1' >0
		local i = `i' + 1
		}
	
	replace y0301 = 0 if y3a == 999999999
	
	foreach w of local sysp2 {
		replace `w' = max(round(`w'/12),1) if `w'>0 & `w'!= . & `w'!= .m & `w'!= .z
		}		
	
	/* Sueldos y salarios ocupación secundaria*/
	
	egen yosa = rowtotal(y0601 y1001) if inlist(o30,3,4,5,6,7,8),m
		
	/* Sueldos y salarios otros */
	
	replace yids = max(round(yids / 12),1) if yids > 0 & yids!= . & yids!= .m & yids!= .z
	
	gen yta1 = cond(inlist(categ, 3,4,5,6,7,8),aux01, .)

	
	/*Ganancias*/
	
	
	local gan1 "y7 y8 y9 y17"
	local gan2 "y0701 y0801 y0901 yac2"

	local i = 1
	local n: word count `gan1'
	while `i' <= `n' {
		local var1 : word `i' of `gan1' 
		local var2 : word `i' of `gan2'
		gen `var2' = `var1' 
		replace `var2' = .z if `var1' == 0
		replace `var2' = .m if `var1' == 99
		local i = `i' + 1
		}
	
	/*Ganancias de la ocupacion principal*/
	
	
	replace y0901 = max(round(y0901 / 12),1) if y0901 >0 & y0901!= . & y0901!= .m & y0901!= .z
	

	/*Cambia ingresos del trabajo de no ocupados a y11*/
	
	local fnr1 "y11"
	local fnr2 "y1101"
	
	local i = 1
	local n: word count `fnr1'
	while `i' <= `n' {
		local var1 : word `i' of `fnr1' 
		local var2 : word `i' of `fnr2'
		gen `var2' = `var1' 
		replace `var2' = .z if `var1' == 0
		replace `var2' = .m if `var1' == 99
		local i = `i' + 1
		}
	
	
	egen y1101aux = rowtotal(y1101 y0701 y0801 y0901) if (categ<1 | categ>8) & y1101 == .,m
	replace y1101aux = y1101 if y1101>0 & y1101!=. & y1101!=.z & y1101!=.m
	drop y1101
	rename y1101aux y1101
	
	foreach var in y0701 y0801 y0901{
		replace `var' = . if condact!=1
		}

	/*Ganancias de la ocupacion secundaria*/
	
	egen yosi = rowtotal(y0601 y1001) if o30!=3 & o30!=4 & o30!=5 & o30!=6 & o30!=7 & o30!=8, m   /*Cambió o27 por o30*/
	
		
	/*Ganancias otras*/
	
	replace yac2 = max(round(yac / 12),1) if yac2 > 0 & yac2!= . & yac2!= .m & yac2!= .z

	gen yta2 = cond(categ!=3 & categ!=4 & categ!=5 & categ!=6 & categ!=7 & categ!=8,aux01, .)

	drop aux01 y0601 y1001
	

	
	/*Ingreso de capital*/
	
	local ycap1 "y12a y12b y15a y15b y15c y16a y16b"
	local ycap2 "yre1 yama yah1 yah2 yrut yre2 yre3"
	
	
	local i = 1
	local n: word count `ycap1'
	while `i' <= `n' {
		local var1 : word `i' of `ycap1' 
		local var2 : word `i' of `ycap2'
		gen `var2' = `var1' 
		replace `var2' = .z if `var1' == 0
		replace `var2' = .m if `var1' == 99
		local i = `i' + 1
		}
	
	foreach v of var yah1 yah2 yrut yre2 yre3 {
		replace `v' = max(round(`v' /12),1) if `v' >0 & `v'!=. & `v'!=.m & `v'!=.z
		}
	
		
	/*Ingreso por jubilaciones y pensiones*/
	
	/*Pregunta y28_2a (en cuestionario yp2a): monto pensión básica solidaria. Variable de control, no se utiliza para el cálculo, sigue generandose por imputación.*/
	
	local yjub1 "y28_2b1 y28_2b2 y28_2c y28_2e1 y28_2e2 y28_2f y28_2g y28_2h y28_2i y28_2j"
	local yjub2 "y280201 y280202 y2803 yinv01 yinv02 yinv03 ymon yorf yesp yotp"
	
	local i = 1
	local n: word count `yjub1'
	while `i' <= `n' {
		local var1 : word `i' of `yjub1' 
		local var2 : word `i' of `yjub2'
		gen `var2' = `var1' 
		replace `var2' = .z if `var1' == 0
		replace `var2' = .m if `var1' == 99 | `var1' == 9
		local i = `i' + 1
		}
		
	gen y2801 = cond(y28_1a == 1 & edad>=65 & edad <= 74, 141374, .)		/*Pensión básica solidaria de vejez*/
		replace y2801 = 147029 if y28_1a == 1 & edad>= 75 & edad <=79
		replace y2801 = 169649 if y28_1a == 1 & edad >= 80
		replace y2801 = .m if y28_1a == 9
		
		gen y2804 = cond(y28_1d == 1 & edad >= 18 & edad <= 64, 141374, .)		/*Pensión básica solidaria de invalidez*/
		replace y2804 = .m if y28_1d == 9

	replace yotp = . if y28_1j_esp == "CAJA JUNAEB"| y28_1j_esp == "CANASTA JUNAEB"| y28_1j_esp == "PRÉSTAMO SOLIDARIO" /*
		*/| y28_1j_esp == "PENSIÓN DE SUPERVIVENCIA" | y28_1j_esp == "MERCADERÍA JUNAEB" | y28_1j_esp == "JUNAEB" /*
		*/| y28_1j_esp == "SET ESCOLAR CAJA JUNAEB" | y28_1j_esp == "CASTA JUNAEB" | y28_1j_esp == "BECA INDÍGENA" 
	
	
	/*Ingreso por otras transferencias */
		
		
	local yot1 "y13a y13b y13c y14c y18b y18c y18d y23a y24 y25amonto y25bmonto y25cmonto y25dmonto y25e y25f y27"	
	local yot2 "ymes yfa1 yfa2 ydes ydon ydim yotr y2301 y2401 y2501 y2502 y2503 y2504 y2505 y2506 y2701"
	
	
	local i = 1
	local n: word count `yot1'
	while `i' <= `n' {
		local var1 : word `i' of `yot1' 
		local var2 : word `i' of `yot2'
		gen `var2' = `var1' 
		replace `var2' = .z if `var1' == 0
		replace `var2' = .m if `var1' == 9 | `var1' == 99
		local i = `i' + 1
		}

	replace yotr = . if y18d_esp=="AHORROS"| y18d_esp == "CRÉDITO BANCARIO" | y18d_esp == "CRÉDITO COVID" | y18d_esp == "CRÉDITO SOLIDARIO" | /*
		*/ y18d_esp == "FONDO RETIRO" | y18d_esp == "FONDOS DE AFP DE MADRE" | y18d_esp == "HERENCIA" | y18d_esp=="INGRESO DE DOS RETIROS 10% AFP"| /*
		*/ y18d_esp=="JUEGO CASINO" | y18d_esp=="PAGO DE AFP, NO BIEN ESPECIFICADO" | y18d_esp=="PRÉSTAMO SOLIDARIO" | /*
		*/ y18d_esp=="RETIRO DE AHORROS" | y18d_esp=="VENTA DE INMUEBLE" | y18d_esp=="VENTA DE MOTO" | y18d_esp=="VENTA DE PROPIEDAD" | /*
		*/ y18d_esp=="VENTA DE TERRENO" | y18d_esp=="VENTA DE TERRENO AGRÍCOLA" | y18d_esp=="VENTA DE VEHÍCULO"  /*
		
		*/| y18d_esp =="APV"| y18d_esp =="BECA DE ALIMENTACIÓN"| y18d_esp =="BECA DE DOCTORADO NACIONAL"| y18d_esp =="BECA DE ESTUDIOS" /*
		*/| y18d_esp =="BECA DE LA UNIVERSIDAD"| y18d_esp =="BECA DE POSTGRADO"| y18d_esp =="BECA DEL COLEGIO"| y18d_esp =="BECA ESCOLAR DE CODELCO" /*
		*/| y18d_esp =="BECA INDÍGENA"| y18d_esp =="BECA MUNICIPAL"| y18d_esp =="BECA PRESIDENCIAL"| y18d_esp =="BECA PRESIDENTE DE LA REPÚBLICA" /*
		*/| y18d_esp =="BECAS DE MANTENCIÓN DE ESTADO"| (y18d_esp =="BONO" & folio == 1310110491501 & o == 1)| y18d_esp =="BONO DE NAVIDAD" /*
		*/| y18d_esp =="BONO POR BAJO RENDIMIENTO" | y18d_esp =="BONO POR MICROEMPRESARIO"| y18d_esp =="CAJA DE MERCADERÍA" /*
		*/| y18d_esp =="CANASTA DE VÍVERES"| y18d_esp =="CANASTA JUNAEB"| y18d_esp =="DOS CAJAS DE MERCADERÍA"| y18d_esp =="IMPUESTOS INTERNO" /*
		*/| y18d_esp =="JUNAEB Y CAJAS DEL GOBIERNO"| y18d_esp =="REMANENTE DE CRÉDITO"| y18d_esp =="RETIRO DE AHORROS" | y18d_esp =="RETIRO DE FONDOS" /*
		*/| y18d_esp =="RETIRO DE FONDOS DE COPERATIVA"| y18d_esp =="TARJETA JUNAEB" | y18d_esp=="MERCADERÍA JUNAEB"/*
		
		*/| y18d_esp =="BONO DE SU TAXI"| y18d_esp =="BONO DE TAXI"| y18d_esp =="BONO EDUCACIÓN DE HIJOS"| y18d_esp =="BONO EMERGENCIA" /*
		*/| y18d_esp =="BONO POR TAXI"| y18d_esp =="EMPRENDIMIENTO"| y18d_esp =="EXCEDENTE EN AFP"| y18d_esp =="INGRESO DE TESORERÍA EN ÁREA" /*
		*/| y18d_esp =="PRODESAL"| y18d_esp =="PROYECTO FONDECYT"| y18d_esp =="PROYECTO FONDECYT Y REEMPLAZO"| y18d_esp =="PROYECTO INDAP" /*
		*/| (y18d_esp =="SII" & folio == 1311911660501)| y18d_esp =="VALE PARA COMPRAR MERCADERÍA"

	
	
	gen y2302 = cond(edad<=6 & y23b == 1, 6000, .)
		replace y2302 = .m if y23b == 9
	gen y2303 = cond(edad>=6 & edad <=19 & y23c == 1, 6000, .)
		replace y2303 = .m if y23c == 9

	replace y2502 = .z if y25b == 0
	replace y2502 = .m if y25b == 9
	replace y2503 = .z if y25c == 0
	replace y2503 = .m if y25c == 9
	replace y2504 = .z if y25d == 0
	replace y2504 = .m if y25d == 9
	
		
	/* Se elimina bono covid navidad 2020 (o bono navidad o bono navideño), créditos blandos del estado(clase media), entre otros*/
	
	replace y2701 = . if y27_esp == "BONO COVID NAVIDAD" | y27_esp == "BONO NAVIDAD" | y27_esp == "BONO DE NAVIDAD" |y27_esp=="BONO NAVIDEÑO" /*
		*/| y27_esp=="NAVIDAD" | y27_esp=="COVID" |y27_esp=="COVID 19" | y27_esp=="CRÉDITO BLANDO" | y27_esp=="CRÉDITO BLANDO ESTADO" /*
		*/| y27_esp=="CRÉDITO COVID 19 PARA EMPRESA" | y27_esp=="CRÉDITO SOLIDARIO" | y27_esp=="CRÉDITO SOLIDARIO CLASE MEDIA" /*
		*/| y27_esp=="IFE" | y27_esp=="IFE DE NAVIDAD" | y27_esp== "IFE TUVO UN SÉPTIMO PAGO" | y27_esp== "PRÉSTAMO AL TRABAJADOR INDEPENDIENTE" /*
		*/| y27_esp== "PRÉSTAMO COVID 19 POR EL BANCO" | y27_esp== "PRÉSTAMO DE AYUDA SOCIAL CLASE" /*
		*/| y27_esp== "PRÉSTAMO DE SERVICIO DE IMPUESTOS INTERNO" | y27_esp== "PRÉSTAMO DEL ESTADO" | y27_esp== "PRÉSTAMO DEL GOBIERNO" /*
		*/| y27_esp== "PRÉSTAMO SII" | y27_esp== "PRÉSTAMO SOLIDARI9" | y27_esp== "PRÉSTAMO SOLIDARIO" /*
		*/| y27_esp== "PRÉSTAMO SOLIDARIO CLASE MEDIA DEL SII" | y27_esp== "PRÉSTAMO SOLIDARIO DEL ESTADO" /*
		*/| y27_esp== "PRÉSTAMO SOLIDARIO DEL GOBIERNO" | y27_esp== "PRÉSTAMO SOLIDARIO POR PANDEMIA DEL SII" /*
		*/| y27_esp== "PRÉSTAMO TRABAJADOR INDEPENDIENTE" | y27_esp== "PRÉSTAMO TRABAJADOR INDEPENDIENTE COVID" /*
		
		*/| y27_esp=="AGUINALDO NAVIDAD Y 18 SEP"| y27_esp=="ALIMENTACIÓN UNIVERSITARIA"| y27_esp=="ALIMENTACIÓN Y BECA MENSUALIDAD" /*
		*/| y27_esp=="ALIMENTOS DE LA SALA CUNA (JUNJI)"| y27_esp=="AYUDA A TRABAJADORES INDEPENDIENTES"| y27_esp=="B.A.E" /*
		*/| y27_esp=="BAE"| y27_esp=="BAE Y GRATUIDAD EDUCACIÓN SUPERIOR"| y27_esp=="BECA"| y27_esp=="BECA ALIMENTACIÓN ESCOLAR SUPERIOR" /*
		*/| y27_esp=="BECA ALIMENTICIA"| y27_esp=="BECA ALIMENTICIA Y GRATUIDAD EDUCACIÓN SUPERIOR"| y27_esp=="BECA AYSÉN" /*
		*/| y27_esp=="BECA BAE"| y27_esp=="BECA BARE"| y27_esp=="BECA BARES"| y27_esp=="BECA BUMAR"| y27_esp=="BECA CONTINUIDAD" /*
		*/| y27_esp=="BECA DE ALIMENTACIÓN TICKET SODEXO"| y27_esp=="BECA DE ALIMENTOS"| y27_esp=="BECA DE ARANCEL COMPLETO DE CARRERA DE DERECHO" /*
		*/| y27_esp=="BECA DE DESCENDENCIA INDÍGENA"| y27_esp=="BECA DE EDUCACIÓN SUPERIOR"| y27_esp=="BECA DE ESTUDIO" /*
		*/| y27_esp=="BECA DE ESTUDIO DE ARANCEL UNIVERSITARIO ENAP"| y27_esp=="BECA DE ESTUDIOS POR ARANCEL UNIVERSITARIO" /*
		*/| y27_esp=="BECA DE EXCELENCIA ACADÉMICA"| y27_esp=="BECA DE EXCELENCIA PARA EXTRANJEROS"| y27_esp=="BECA DE JUAN GÓMEZ MILLAS" /*
		*/| y27_esp=="BECA DEL GOBIERNO BUEN ALUMNA"| y27_esp=="BECA EMERGENCIA"| y27_esp=="BECA ENSEÑANZA BÁSICA Y MEDIA DE LAS CONDES" /*
		*/| y27_esp=="BECA ESTUDIANTE"| y27_esp=="BECA EXCELENCIA ACADÉMICA"| y27_esp=="BECA EXCELENCIA ACADÉMICA MUNICIPALIDAD" /*
		*/| y27_esp=="BECA INDÍGENA"| y27_esp=="BECA INDÍGENA "| y27_esp=="BECA INDÍGENA $ 65000 Y JUNAEB $ 32.000" /*
		*/| y27_esp=="BECA INDÍGENA PARA ESTUDIANTES DE EDUCACIÓN BÁSICA Y MEDIA"| y27_esp=="BECA INTEGRACIÓN TERRITORIAL" /*
		*/| y27_esp=="BECA JUNAEB"| y27_esp=="BECA MANTENCIÓN ESTUDIANTE"| y27_esp=="BECA MENSUAL DE EDUCACIÓN" /*
		*/| y27_esp=="BECA MILENIO"| y27_esp=="BECA MILENIUM"| y27_esp=="BECA MUNICIPAL"| y27_esp=="BECA MUNICIPAL DE ESTUDIOS" /*
		*/| y27_esp=="BECA NUEVO MILENIO"| y27_esp=="BECA PATAGONIA"| y27_esp=="BECA PATAGONIA AYSÉN"| y27_esp=="BECA PATAGONIA POR ESTUDIOS" /*
		*/| y27_esp=="BECA PDTE DE LA REPUBLICA"| y27_esp=="BECA POLIMETALES"| y27_esp=="BECA POR NOTAS"| y27_esp=="BECA PRESIDENTE DE LA REPÚBLICA" /*
		*/| y27_esp=="BECA PRESIDENTE DE LA REPÚBLICA Y JUNAEB"| y27_esp=="BECA RESIDENCIA INDÍGENA"| y27_esp=="BECA TERRITORIAL" /*
		*/| y27_esp=="BECA UNIVERSITARIA"| y27_esp=="BECA UNIVERSITARIA DE LAS CONDES"| y27_esp=="BECA VOCACIÓN DE PROFESOR" | y27_esp=="BONO NAVIDAD IFE" /*
		*/| y27_esp=="BECAS DE ALIMENTACIÓN UNIVERSITARIAS"| y27_esp=="BECAS INDÍGENA"| y27_esp=="BENEFICIO DE TARJETA JUNJI" |y27_esp=="BONO DICIEMBRE NAVIDAD"/*
		*/| y27_esp=="BONA NAVIDAD"| y27_esp=="BONO A MICROEMPRESA"| y27_esp== "BONO CLASE MEDIA"| (y27_esp=="BONO DICIEMBRE" & folio == 570610010901) /*
		*/| y27_esp=="BONO DE IMPUESTOS INTERNOS"| y27_esp=="BONO JUNAEB"| y27_esp=="BONO NO ESPECIFICADO"| y27_esp=="BONO POR PANDEMIA IMPUESTOS INTERNOS" /*
		*/| y27_esp=="BONOS DE EDUCACIÓN DE CAJA DE COMPENSACIÓN"| y27_esp=="CAJA DE ALIMENTOS (JUNAEB)"| y27_esp=="CAJA DE ALIMENTOS Y 2 VALE DE GAS" /*
		*/| y27_esp=="CAJA DE COMIDA MUNICIPIO"| y27_esp=="CAJA DE COSAS ASEO MUNICIPAL"| y27_esp=="CAJA DE LA MUNICIPALIDAD, COSAS DE ASEO" /*
		*/| y27_esp=="CAJA DE MERCADERÍA"| y27_esp=="CAJA DE MERCADERÍA " | y27_esp=="CAJAs DE MERCADERÍA"| y27_esp=="CAJA DE MERCADERÍA (COLEGIO HIJOS)" /*
		*/| y27_esp=="CAJA DE MERCADERÍA (COLEGIO SUBVENCIONADO)"| y27_esp=="CAJA DE MERCADERÍA (GOBERNACIÓN)" /*
		*/| y27_esp=="CAJA DE MERCADERÍA (GOBIERNO Y MUNICIPAL)"| y27_esp=="CAJA DE MERCADERÍA (GOBIERNO Y MUNICIPIO)" /*
		*/| y27_esp=="CAJA DE MERCADERÍA (GOBIERNO Y MUNICIPALIDAD)"| y27_esp=="CAJA DE MERCADERÍA (GOBIERNO)"| y27_esp=="CAJA DE MERCADERÍA (JUNAEB)" /*
		*/| y27_esp=="CAJA DE MERCADERÍA (MUNICIPAL)"| y27_esp=="CAJA DE MERCADERÍA (TERCERA EDAD)"| y27_esp=="CAJA DE MERCADERÍA JUNAEB (DOS CARGAS)" /*
		*/| y27_esp=="CAJA DE MERCADERÍA MUNICIPAL"| y27_esp=="CAJA DE MERCADERÍA Y BOLSA DE MERCADERÍA"| y27_esp=="CAJA DE MUNICIPALIDAD" /*
		*/| y27_esp=="CAJA DE MUNICIPALIDADES"| y27_esp=="CAJA DEL GOBIERNO"| y27_esp=="CAJA MUNICIPAL Y COLEGIO"| y27_esp=="CAJAS DE MERCADERÍA" /*
		*/| y27_esp=="CAJAS JUNAEB"| y27_esp=="CAJAS JUNAEB DEL COLEGIO"| y27_esp=="CANASTA DE ALIMENTACIÓN JUNAEB"| y27_esp=="CANASTA DE COMIDA" /*
		*/| y27_esp=="CANASTA DE JUNAEB"| y27_esp=="CANASTA FAMILIAR DE LA MUNICIPALIDAD"| y27_esp=="CANASTA JUNAEB" /*
		*/| y27_esp=="CINCO CAJAS DE MERCADERÍA"| y27_esp=="CINCO CAJAS DE MERCADERÍA (MUNICIPALIDAD)"| y27_esp=="COLACIONES JUNAEB" /*
		*/| y27_esp=="CUATRO CAJAS DE MERCADERÍA"| y27_esp=="CUATRO CAJAS DE MERCADERÍA (MUNICIPAL)"| y27_esp=="DOS CAJA DE MERCADERÍA" /*
		*/| y27_esp=="DOS CAJAS DE MERCADERÍA"| y27_esp=="DOS CAJAS DE MERCADERÍA (ESTADO)"| y27_esp=="DOS CAJAS DE MERCADERÍA (GOBIERNO Y MUNICIPIO)" /*
		*/| y27_esp=="DOS CAJAS DE MERCADERÍA (GOBIERNO)"| y27_esp=="DOS CAJAS DE MERCADERÍA (MUNICIPIO Y GOBIERNO)" /*
		*/| y27_esp=="DOS CAJAS DE MERCADERÍA (MUNICIPIO)"| y27_esp=="DOS CAJAS DE MERCADERÍA JUNAEB" /*
		*/| y27_esp=="DOS CAJAS DE MERCADERÍA MUNICIPALIDAD (60 MIL)"| y27_esp=="DOS CAJAS DEL GOBIERNO Y DOS MUNICIPAL" /*
		*/| y27_esp=="DOS CAJITAS DE MERCADERÍA"| y27_esp=="ES UNA BECA PARA LA UNIVERSIDAD"| y27_esp=="EXCELENCIA ACADÉMICA" /*
		*/| y27_esp=="EXCELENCIA EDUCACIONAL"| y27_esp=="FOGAPE"| y27_esp=="FOGATE"| y27_esp=="GIF CARD, ALIMENTOS ANUAL, COLEGIO MUNICIPAL" /*
		*/| y27_esp=="GIF CARD ALIMENTOS ANUAL, COLEGIO MUNICIPAL"| y27_esp=="GIFT CARD DE JUNAEB"| y27_esp=="GRATUIDAD EDUCACIÓN SUPERIOR"| y27_esp=="JUNAEB" /*
		*/| y27_esp=="JUNAEB ($32000), BECA MANTENCIÓN ($50000)"| y27_esp=="JUNAEB (ESCOLAR)"| y27_esp=="JUNAEB (UNIVERSITARIA)" /*
		*/| y27_esp=="JUNAEB ALIMENTOS"| y27_esp=="JUNAEB GRATUIDAD"| y27_esp=="JUNAEB PRESIDENTE REPÚBLICA Y GRATUIDAD" /*
		*/| y27_esp=="JUNAEB Y GRATUIDAD"| y27_esp=="JUNAEB Y GRATUIDAD EDUCACIÓN SUPERIOR"| y27_esp=="PYME"| y27_esp=="SERCOTEC" /*
		*/| y27_esp=="SERVICIO DE IMPUESTOS INTERNOS"| y27_esp=="SERVICIO IMPUESTOS INTERNOS"| y27_esp=="SODEXO JUNAEB" | y27_esp=="SEIS CAJAS DE MERCADERÍA (MUNICIPAL)"/*
		*/| y27_esp=="SUBSIDIO A EMPRESAS SERCOTEC"| y27_esp=="SUBSIDIO CORFO"| y27_esp=="SUBSIDIO DE SERCOTEC"| y27_esp=="SUBSIDIO FAMILIAR QUE DA LA MUNICIPALIDAD POR CAJA" /*
		*/| y27_esp=="SUBSIDIO JUNAEB"| y27_esp=="SUBSIDIO JUNAEB, POR EL COLEGIO DE LOS NIÑOS"| y27_esp=="SUBSIDIO SII CUANDO BAJABAN LOS INGRESOS DE INDEPE" /*
		*/| y27_esp=="SUBSIDIO SII TRABAJADORES INDEPENDIENTES"| y27_esp=="TABLET PARA ESTUDIAR"| y27_esp=="TARJETA BAE ALIMENTACIÓN" /*
		*/| y27_esp=="TARJETA DE ALIMENTACIÓN JUNAEB"| y27_esp=="TARJETA DE ALIMENTOS"| y27_esp=="TARJETA DE ALIMENTOS PARA ESTUDIOS" /*
		*/| y27_esp=="TRES CAJAS DE MERCADERÍA"| y27_esp=="TRES CAJAS DE MERCADERÍA (MUNICIPAL)"| y27_esp=="UN NOTEBOOK PARA ESTUDIOS"/*
		
		*/| y27_esp=="ALIMENTOS PARA CHILE, MUNICIPALIDAD GOBIERNO"|y27_esp=="BONO A LOCOMOCIÓN COLECTIVA"| y27_esp=="BONO PROCESAL" /*
		*/| y27_esp=="BONO PRODESAL"| y27_esp=="BONO TRABAJADOR INDEPENDIENTE"| y27_esp=="BONO TRANSPORTE"| y27_esp=="CAPITAL ABEJA" /*
		*/| y27_esp=="COLACIÓN POR NO IR AL COLEGIO NO SABE NOMBRE"| y27_esp=="COMBUSTIBLE"| y27_esp=="DIDECO SUBSIDIO POR BENCINA" /*
		*/| y27_esp=="FOSI"| y27_esp=="FOSIS"| y27_esp=="FOSIS, PARA LEÑA"| y27_esp=="FOSIS, PROGRAMA DE FOSIS. NO SABE CÓMO SE LLAMA" /*
		*/| y27_esp=="INDA DE DESARROLLO"| y27_esp=="INDAP"| y27_esp=="INDAP EMERGENCIA"| y27_esp=="INDAP, CONAF" /*
		*/| y27_esp=="INDAT INSTITUCIÓN DE AGRICULTORES DEL ESTADO"| y27_esp=="PLAN FAMILIAR FOSIS" /*
		*/| y27_esp=="POR SER TAXISTA LA MUNICIPALIDAD LES DIO DOS VALES"| y27_esp=="PROGRAMA DE FOSIS"| y27_esp=="PROGRAMA FOSIS" /*
		*/| y27_esp=="PROYECTO SEMILLA DEL FOSI"| y27_esp=="SUBSIDIO FOSIS"| y27_esp=="SUBSIDIO INDAP"| y27_esp=="SUBSIDIO INDAP (PDI) PARA SEGADORA" /*
		*/| y27_esp=="SUBSIDIOS DE INDAP"| y27_esp=="TARJETA MUNICIPAL PARA COMPRAR ALIMENTOS EN SUPERM"| y27_esp=="TARJETA PARA SUPERMERCADO 1 SOLA VEZ" /*
		*/| y27_esp=="VALE DE GAS"| y27_esp=="VALE DE GAS"| y27_esp=="VALE DE GAS, DEBIÓ PAGAR $3000 MÁS"| y27_esp=="VALE GAS" /*
		*/| y27_esp=="VALE PARA BALÓN DE GAS 15KG"| y27_esp=="VALE POR GAS"| y27_esp=="VALES DE GAS (2)" | y27_esp=="BONO AL TRANSPORTE" /*
		*/| y27_esp=="BONO AL TRANSPORTISTA POR PANDEMIA"| y27_esp=="BONO APOYO CONDUCTORES" | y27_esp=="BONO CHÓFER DE COLECTIVO" /*
		*/| y27_esp=="BONO CHÓFER DE COLECTIVOS" | y27_esp=="BONO COLECTIVERO" | y27_esp=="BONO COLECTIVEROS" | y27_esp=="BONO COLECTIVO" /*
		*/| y27_esp=="BONO AGRÍCOLA" | y27_esp=="BONO AGRÍCOLA (IDAP)" | y27_esp=="VALE DE GAS " | y27_esp=="BONO DE APOYO PARA CONDUCTORES DEL TRANSPORTE PÚBLICO Y ESCOLAR" /*
		*/| y27_esp=="BONO DE CHOFER" | y27_esp=="BONO DE INDAP" | y27_esp=="BONO DE LOCOMOCIÓN COLECTIVA, PARA COLECTIVO"| substr(y27_esp,1,8) == "PRODESAL" /*
		*/| substr(y27_esp,1,3)== "GIF" | substr(y27_esp,1,3)== "GAS" | substr(y27_esp,1,5)== "GALÓN" | substr(y27_esp,1,5)== "FOSIS" /*
		*/ | y27_esp=="BONO GAS 15 KILOS" | y27_esp=="BONO INDAP"


	replace y2701 = max(round(y2701/12),1) if y27_preg == 2 & y2701!=. & y2701!= .m  /*Bonos anuales*/


	local yot3 "y20amonto y20bmonto y20cmonto y20dmonto y20emonto y22amonto y22bmonto y22cmonto y22dmonto" 		
	local yot4 "y2001 y2002 y2003 y2004 y2005 y2201 y2202 y2203 y2204"
		
	local i = 1
	local n: word count `yot3'
	while `i' <= `n' {
		local var1 : word `i' of `yot3' 
		local var2 : word `i' of `yot4'
		gen `var2' = `var1' 
		local i = `i' + 1
		}

	
	foreach v of var ydon ydim yotr y2501 y2502 y2503 y2504 {
		replace `v' = max(round(`v'/12),1) if `v'>0 & `v'!=. & `v'!=.m & `v'!=.z
		}
	replace y2505 = max(round(y2505/12),1) if y2505>0 & y2505!=. & y2505!=.m & y2505!=.z & y25ep == 2  /*frecuencia anual*/
	replace y2506 = max(round(y2506/12),1) if y2506>0 & y2506!=. & y2506!=.m & y2506!=.z & y25fp == 2  /*frecuencia anual*/

	
	/*Transferencias del estado*/
	
	gen yfam = y19n * 13155		if y19t == 1 & y19n>0 & y19n<99
	replace yfam = y19n * 8076 	if y19t == 2 & y19n>0 & y19n<99
	replace yfam = y19n * 2551 	if y19t == 3 & y19n>0 & y19n<99
	replace yfam = .m if y19t == 9 | ((y19n<=0 | y19n>=99) & inlist(y19t,1,2,3))
	
		
	/* Nuevas transferencias del estado*/
	/*Ingreso mínimo garantizado, bono ayuda familiar, bono emergencia COVID, IFE*/
	/* NO SE INCLUYE BONO CLASE MEDIA */
	
	local yot5 "y25g y26amonto y26bmonto y26d_pago y26d_pago_monto1 y26d_pago_monto2 y26d_pago_monto3 y26d_pago_monto4 y26d_pago_monto5 y26d_pago_monto6" 		
	local yot6 "y2507 y2601 y2602 y2604p y260401 y260402 y260403 y260404 y260405 y260406"
		
	local i = 1
	local n: word count `yot5'
	while `i' <= `n' {
		local var1 : word `i' of `yot5' 
		local var2 : word `i' of `yot6'
		gen `var2' = `var1' 
			replace `var2' = .z if `var1' == 0
			replace `var2' = .m if `var1' == 9 | `var1' == 99	
		local i = `i' + 1
		}
	
	
	/*IFE*/

	/*Identificacion de casos que recibieron IFE*/

	tab parentco y26d_hog
	egen _tieneifeh = max(y26d_hog == 1), by(id_hogar)
	
	tab y26d_preg _tieneifeh
	gen _tiene_recibe = _tieneifeh == 1 & y26d_preg == 1
	
	egen _tiene_recibeh = max(_tiene_recibe), by(id_hogar)

	/* hogares que declararon recibir IFE vs hogares en los que hay un receptor identificado */
	tab _tieneifeh _tiene_recibeh if parentco == 1

	gen 	caso_ife = 0 if _tiene_recibe == 1									/* 0 casos potenciales para calcular la variable IFE */

	/*Valida existencia y concordancia de monto de pagos declarados*/

	forval x = 1/6  {
		gen y26040`x'_s = 0
		replace y26040`x'_s = cond(y26040`x'!= 0 & y26040`x'!= . & y26040`x'!=.m , 1, 0) 
	}
			
	gen y2604ps = y260401_s + y260402_s + y260403_s + y260404_s + y260405_s + y260406_s
	
	tab y2604p y2604ps ,m 
	gen auxp = cond(y2604p == y2604ps,1,0)

	replace caso_ife = 1 if _tiene_recibe == 1 & auxp == 1						/* 1 Hay concordancia en numero de pagos y numero de montos */

	/*Generación de ingreso total por IFE*/
	
	/*Genera ing total por IFE (y2604) para quienes declaran montos recibidos y número de pagos*/

	/*Suma por hogar del monto total para quiernes declaran el monto de todos los pagos declarados*/
	egen y2604 = rowtotal(y260401 y260402 y260403 y260404 y260405 y260406) if caso_ife == 1	
	
	/*Revisa la suma de los montos respecto a la variable corregida*/ 

	gen 		aux_corr = 1 if y2604  > y26d_corregir_monto & y26d_corregir_monto!= . & y26d_corregir_monto != 99
		replace aux_corr = 2 if y2604 == y26d_corregir_monto & y26d_corregir_monto != . & y26d_corregir_monto != 99
		replace aux_corr = 3 if y2604  < y26d_corregir_monto & y26d_corregir_monto != . & y26d_corregir_monto != 99
	tab aux_corr, m	

	replace caso_ife = 2 if caso_ife == 1 & inlist(aux_corr,1,3) & y26d_corregir_monto!=0  		/* 2 Hay concordancia, pero se utiliza monto corregido */

	/* Se corrige y2604 de acuerdo a y26d_corregir_monto*/	/* SUPUESTO DEFINIDO POR MDSF: MANDA LA VARIABLE CORREGIDA TOTAL SOBRE EL MONTO TOTAL GENERADO POR SUMA*/

	replace y2604 = y26d_corregir_monto if caso_ife == 2
	
	/* Cuando no se conoce número de pagos o el número de pagos no coincide con número de montos válidos declarados */
	/* se utiliza y26d_total para generar y2604 */

	gen y26d_total_usable = 1 if y26d_total>0 & y26d_total<. & y26d_total!=99 & y26d_total!=9 & y26d_total!=699 & y26d_total!=66 & y26d_total >= 20000

	replace caso_ife = 3 if caso_ife == 0 & y26d_total_usable == 1		/* 3 Se puede utilizar monto total */
	
	replace y2604 = y26d_total if caso_ife == 3

	/* Para los casos en que y26d_total es missing, pero hay información sobre el número de integrantes y de pagos, se imputa el valor total con la media correspondiente */

	replace caso_ife = 4 if caso_ife == 0 & y26d_total_usable ~= 1 & y26d_integrantes >=1 & y26d_integrantes <=10 & y26d_pago >= 1 & y26d_pago < 9
																		/* 4 Casos imputables con base en numero de integrantes y pagos */
	
	recode y26d_integrantes (4/10=4) (99=.), into(y26d_int_rec)		/* donante para imputacion: agrupa casos con 4 o mas integrantes */
	recode y26d_pago (9 = .), into(y26d_pag_rec)					/* donante para imputacion: excluye casos sin numero de pagos */

	forval i = 1/4 {
		forval p = 1/6 {
			qui sum y2604 [aw=factorex] if y26d_int_rec == `i' & y26d_pag_rec == `p' & y2604 > 0 & y2604 < . & caso_ife == 1, d
			gen y2604_`i'_`p' = r(mean)
			replace y2604 = y2604_`i'_`p' if y26d_int_rec == `i' & y26d_pag_rec == `p' & caso_ife == 4
		}
	}

	tab caso_ife
	tabstat y2604, by(caso_ife) s(min p50 mean max)
	tab caso_ife y26d_int_rec, row
	tab caso_ife y26d_pag_rec, row

	drop y26040*_s y2604ps
	drop auxp aux_corr y2604p y260401 y260402 y260403 y260404 y260405 y260406
	drop _tieneifeh _tiene_recibe*
	drop y26d_total_usable y26d_int_rec y26d_pag_rec 
	drop caso_ife
	drop y2604_1_1 y2604_1_2 y2604_1_3 y2604_1_4 y2604_1_5 y2604_1_6 y2604_2_1 y2604_2_2 y2604_2_3 y2604_2_4 /*
		*/y2604_2_5 y2604_2_6 y2604_3_1 y2604_3_2 y2604_3_3 y2604_3_4 y2604_3_5 y2604_3_6 y2604_4_1 y2604_4_2 /*
		*/y2604_4_3 y2604_4_4 y2604_4_5 y2604_4_6
	
	/*Mensualiza monto de transferencias anuales (o agregado anual)*/
	
	foreach v of var y2601 y2602 y2604 {		
		replace `v' = max(round(`v'/12),1) if `v'>0 & `v'!=. & `v'!=.m & `v'!=.z
	}

	
	/*Otros ingresos*/
	
	gen ytro = y14a
	replace ytro = .z if y14a == 0
	replace ytro = .m if y14a == 99
	
		
	/*Se calcula agregados de Ingreso */
	
		
	egen yaut = rowtotal(y0101 y0301 y0302 y0303 y0304 y0305 y0306 y0401 y0402 y0403 y0404 y0501 y0502 y0503 y0504 y0505 /*
		*/ y0506 y0507 y0508 y0509 y0510 y0511 y0512 yosa ytro yta1 y0701 y0801 y0901 yosi yta2 yrut yac2 ydes yids /*
		*/ yotr y280201 y2803 yinv01 yinv03 ymon yorf yotp yre1 yre2 yre3 yama yah1 yah2 ydon ymes yfa1 yfa2 y1101 ydim),m
		
	egen ysub1 = rowtotal(yfam y2001 y2002 y2003 y2004 y2005  y2201 y2202 y2203 y2204 y2301 /*
		*/y2302 y2303 y2401 y2501 y2502 y2503 y2504 y2505 y2506 y2701 y2801 y280202 yinv02 y2804 yesp),m
	
	egen ysub2 = rowtotal(y2507 y2601 y2602 y2604)
	
	egen ysub = rowtotal(ysub1 ysub2)
	
	egen ytot = rowtotal(yaut ysub1 ysub2),m

	save "ca20dn02.dta", replace
	

**************************************************************************************************
***** "Creación de DB03: generación de variables sociodemográficas y de ingreso nivel hogar" ***** 
**************************************************************************************************

		
	use "ca20dn02", clear
	
	
	/*Se generan variables nivel hogar*/
	
	gen pers = 1

	gen persindo = 	cond(nucleo!= 0,1,0)		/*personas en el hogar si considerar servicio doméstico(miembros del hogar)*/
	gen ncony = 	cond(parentco == 2, 1, 0)
	gen nhijosam = 	cond(parentco == 3, 1, 0)
	gen nhijossj = 	cond(parentco == 4, 1, 0)
	gen nhijossc = 	cond(parentco == 5, 1, 0)
	gen npadres = 	cond(parentco == 6, 1, 0)
	gen nsuegros =  cond(parentco == 7, 1, 0)
	gen nyerno =	cond(parentco == 8, 1, 0)
	gen nnieto =	cond(parentco == 9, 1, 0)
	gen nherman =	cond(parentco == 10, 1, 0)
	gen ncunados = 	cond(parentco == 11, 1, 0)
	gen notrop =	cond(parentco == 12, 1, 0)
	gen notronp =	cond(parentco == 13, 1, 0)
	gen dom =		cond(nucleo == 0, 1, 0)
	gen nocup = 	cond(condact == 1 & nucleo!= 0,1,0)
	gen ndesocup =	cond((condact == 2 | condact == 3) & nucleo!= 0,1,0)
	
	gen nninos04 = cond(nucleo!= 0 & edad <=4, 1, 0)
	gen np12ym =   cond(nucleo!= 0 & edad >=12, 1, 0)
	gen np15ym =   cond(nucleo!= 0 & edad >=15, 1, 0)
	gen np25ym =   cond(nucleo!= 0 & edad >=25, 1, 0)
	gen estsum15 = anoest if np15ym == 1 & anoest>0 & anoest <99
	gen estsum25 = anoest if np25ym == 1 & anoest>0 & anoest <99
	
	
	
	/*Agregados de ingreso nivel hogar*/
		
	local agreing "y0101 y0301 y0302 y0303 y0304 y0305 y0306 y0401 y0402 y0403 y0404 y0501 y0502 y0503 y0504 y0505 y0506 y0507 y0508 y0509 y0510"
	local agreing "`agreing' y0511 y0512 yosa ytro yta1 y0701 y0801 y0901 yosi yta2 yrut yac2 ydes yids yotr y280201 y2803 yinv01 yinv03 ymon yorf"
	local agreing "`agreing' yotp yre1 yre2 yre3 yama yah1 yah2 ydon ymes yfa1 yfa2 y1101 ydim yfam y2001 y2002 y2003 y2004 y2005  y2201 y2202 "
	local agreing "`agreing' y2203 y2204 y2301 y2302 y2303 y2401 y2501 y2502 y2503 y2504 y2506 y2507 y2801 y280202 yinv02 y2804 yesp"	
	local agreing "`agreing' y2505 y2601 y2602 y2604 y2701 yaut ysub1 ysub2 ysub ytot"
	
	
	foreach var of local agreing {
		gen `var'h = cond(nucleo!= 0 & `var'>0,`var',0)
		}

	local varjef "sexo edad condact ocupr ramar categ anoest"
	
	foreach var of local varjef {
		gen `var'j = cond(parentco==1,`var',-1)
		}

	sort id_hogar

	collapse (max) sexoj edadj anoestj condactj ocuprj ramarj categj (sum) pers-ytoth ,by(id_hogar) 
	
	rename anoestj educj
	
	save "ca20temp", replace

/*AGREGA VARIABLES DE HOGAR AL ARCHIVO DB02 */

	use "ca20dn02", clear

	sort id_hogar

	merge m:1 id_hogar using ca20temp
	drop _merge
	
	compress
	
		/* Alquiler imputado*/
	
	gen yaimh = cond(parentco == 1 & v13!= 2 & v19>0 & v19!= ., v19, 0)
	bysort id_hogar: egen aux_yaimh = max(yaimh)
	bysort id_hogar: replace yaimh = aux_yaimh
	
	replace ytoth = ytoth + yaimh
	gen ypch = round(ytoth / persindo)

	
	drop aux_yaimh

	save "ca20dn03", replace


***********************************************************************************************
******Creación de DN04: Corrección por no respuesta de ingresos de ocupados y jubilados********
***********************************************************************************************

	use "ca20dn03", clear
	
	
		/*Crea variables de control recodificadas*/ 

	gen paren1 = cond(parentco == 1, 1, 2)
	
	recode anoest (0/3 = 1) (4/7 = 2) (8/11 = 3) (12 = 4) (13/25 = 5) (99 = 1), into(niveduc)
	recode niveduc (1/3 = 1) (4/5 = 2), into(niveduc1)
	
	recode ramar (0 = 7) (-1 = -1) (1 = 1) (2 = 2) (3 6 = 3) (4 5 = 4) (7/10 = 5) (11/12 = 6) (13/21 = 7), into(ramar1)
	replace ramar1 = cond(categ == 8, .,ramar1)		/*en FFAA no se considera ni rama ni ocupación*/
	
	gen ramar2 = ramar
	replace ramar2 = cond(categ == 8, .,ramar)
	
	recode region (1/5 15 = 1) (6/12 14 16= 2) (13 = 13), into(reg1)
	
	recode edad (0/14 = 1) (15/24 = 2) (25/44 = 3) (45/64 = 4) (else = 5), into(tred1)
	recode edad (0/59 = 1) (60/69 = 2) (70/79 = 3) (else = 4), into(tredadam)
	
	recode categ (4 = 5) (6 = 7), into(categ1)
	recode categ1 (5 8 = 3), into(categ2) 
	
	recode ocupr (0 = 8) (5/7 10 = 5) (8 = 6) (9 = 7), into(ocupr1)
	replace ocupr1 = cond(categ == 1|categ == 8, ., ocupr1)			/*en empleadores no se considera ocupación*/ /*en FFAA no se considera ni rama ni ocupación*/
	
	
	/*Corrección ingresos de los ocupados*/
	
	/*Reemplazos en y1 y y7 para distinguir 0 y no responden de missing + generación de vbles para corte de colas (p1,p99)*/
	
	replace y0101 = .z if y1_preg == 2
	replace y0101 = .m if y1_preg == 9
	
	replace y0701 = .z if y7_preg == 2
	replace y0701 = .m if y7_preg == 9
	
	tabstat y0101 y0701 if y0101>0 & y0701>0, s(min p1 p50 p99 max) save f(%12.0f)
	mat YL = r(StatTotal)
	mat list YL
	
	gen y0101p1 = YL[2,1]
	gen y0101p99 = YL[4,1]
	gen y0701p1 = YL[2,2]
	gen y0701p99 = YL[4,2]
	
	
	gen y0101c = y0101
	gen y0701c = y0701
	
	local paso1 "comuna ramar2 tred1 categ 	niveduc  condact sexo ocupr1"
	local paso2 "region ramar2 tred1 categ 	niveduc  condact sexo ocupr1"
	local paso3 "region ramar1 tred1 categ 	niveduc  condact sexo ocupr1"
	local paso4 "region ramar1 tred1 categ1 niveduc  condact sexo ocupr1"
	local paso5 "region ramar1 tred1 categ1 niveduc1 condact sexo ocupr1"
	local paso6 "reg1 	ramar1 tred1 categ1 niveduc1 condact sexo ocupr1"
	local paso7 "reg1 	ramar1 tred1 categ2 niveduc1 condact sexo ocupr1"

		
	forval p = 1/7 {
	
		di _n(1) "Paso `p'"
	
		foreach v of var y0101 y0701 {
			preserve
			if "`v'" == "y0101" {
				keep if `v'>0 & `v'!=.m & `v'!=. & `v'!=.z & `v'>`v'p1 & `v'<`v'p99 & condact== 1 & categ>=3 & categ<=8
			}
			else if "`v'" == "y0701" {
				keep if `v'>0 & `v'!=.m & `v'!=. & `v'!=.z & `v'>`v'p1 & `v'<`v'p99 & condact== 1 & categ>=1 & categ<=2
				}
			collapse (mean) `v' [aw = factorex], by(`paso`p'')
			ren `v' _`v'
			save "temp`p'_`v'", replace
			restore
			}
	
		count if y0101c == .m & condact == 1 & categ>=3 & categ<=8   			/*Casos a imputar y0101*/
	
		merge m:1 `paso`p'' using temp`p'_y0101
		tab _merge
		replace y0101c = round(_y0101) if y0101c == .m & _merge == 3 & condact == 1 & categ>=3 & categ<=8 
	
		drop _merge
	
		count if y0701c ==.m & condact == 1 & inlist(categ,1,2) 				/*Casos a imputar y0701*/

		merge m:1 `paso`p'' using temp`p'_y0701
		tab _merge
		replace y0701c = round(_y0701) if y0701c ==.m & _merge == 3 & condact == 1 & inlist(categ,1,2) 
		drop _merge
	
		summ y0101 y0101c y0701 y0701c
		drop _y0101 _y0701
	}
	
	count if y0101c == .m & condact == 1 & categ>=3 & categ<=8   				/*Casos sin imputar y0101*/
	count if y0701c ==.m & condact == 1 & inlist(categ,1,2) 					/*Casos sin imputar y0701*/

	
	/*Corrección de jubilaciones y rentas vitalicias*/
	
	egen y2802 = rowtotal(y280201 y280202),m			/*Genera jubilación más aps*/

	tabstat y2802 y2803 if y2802>0 & y2803>0, s(min p1 p50 p99 max) save f(%12.0f)
	mat YJ = r(StatTotal)
	mat list YJ
	
	gen y2802p1 = YJ[2,1]
	gen y2802p99 = YJ[4,1]
	gen y2803p1 = YJ[2,2]
	gen y2803p99 = YJ[4,2]
	
	
	gen y280201c = y280201
	gen y2803c = y2803
	

	local paso1_jub "comuna paren1 sexo niveduc tredadam"
	local paso2_jub "region paren1 sexo niveduc tredadam"
	local paso3_jub "region paren1 sexo niveduc"

	
	forval p = 1/3 {
	
		di _n(1) "Paso `p' jub"
	
		foreach v of var y2802 y2803 {
		preserve
		
		if "`v'" == "y2802" {
			keep if `v'>0 & `v'!=.m & `v'!=. & `v'!= .z & `v'>`v'p1 & `v'<`v'p99 & y28_1b == 1
			}
		
		if "`v'" == "y2803" {
			keep if `v'>0 & `v'!=.m & `v'!=. & `v'!= .z & `v'>`v'p1 & `v'<`v'p99 & y28_1c == 1
			}
		
		collapse (mean) `v' [aw = factorex], by(`paso`p'_jub')
		ren `v' _`v'
		save "temp`p'_`v'", replace
		
		restore
		}
	
	count if y2803c == .m  	/*Casos a imputar y2803*/
	count if y280201c == .m	/*Casos a imputar y280201*/
	
		merge m:1 `paso`p'_jub' using temp`p'_y2802
		tab _merge
		replace y280201c = round(_y2802) if y280201c == .m & (y280202 == .m | y280202 == .z | y280202 == .) & (y2803 == .|y2803==.m |y2803==.z) & _merge == 3 & y28_1b == 1
	
		drop _merge
		
		merge m:1 `paso`p'_jub' using temp`p'_y2803
		tab _merge
		replace y2803c = round(_y2803) if y2803c == .m & _merge == 3 & y28_1c == 1
	
		drop _merge
		summ y2802 _y2802  y2803 _y2803
		drop  _y2802 _y2803 
}

	count if y2803c == .m  	/*Casos sin imputar y2803*/
	count if y280201c == .m	/*Casos sin imputar y280201*/

	drop paren1 niveduc niveduc1 ramar1 ramar2 reg1 tred1 tredadam categ1 categ2 ocupr1 y2802 y2802p1 y2802p99 y2803p1 y2803p99 y0101p1 y0101p99 y0701p1 y0701p99
	

	/*Genera agregados corregidos*/
	
	egen yautcor = rowtotal(y0101c y0301 y0302 y0303 y0304 y0305 y0306 y0401 y0402 y0403 y0404 y0501 y0502 y0503 y0504 y0505 /*
		*/ y0506 y0507 y0508 y0509 y0510 y0511 y0512 yosa ytro yta1 y0701c y0801 y0901 yosi yta2 yrut yac2 ydes yids /*
		*/ yotr y280201c y2803c yinv01 yinv03 ymon yorf yotp yre1 yre2 yre3 yama yah1 yah2 ydon ymes yfa1 yfa2 y1101 ydim),m
   
   egen ytotcor = rowtotal(yautcor ysub1 ysub2),m
	
	save "ca20dn04", replace
	
	
*****************************************************************************************************************
********"Creación DN05: crea agregados de ingreso corregidos nivel hogar y se incorporan a la base"**************
*****************************************************************************************************************

	use "ca20dn04", clear

	local agreingco "yautcor ytotcor"  
	
	foreach var of local agreingco {
		gen `var'h = cond(nucleo!= 0,`var',0)
	}	
	
	gen nrecep = cond(nucleo!= 0 & ytotcor>0 & ytotcor!=. , 1, 0)		/*Se genera número de perceptores de ingreso del hogar posterior a la corrección por no respuesta*/

	sort id_hogar
	collapse (sum) yautcorh ytotcorh nrecep, by(id_hogar) 
	
	save "ca20temp1", replace
	
	use "ca20dn04", clear
	merge m:1 id_hogar using ca20temp1
	tab _merge
	drop _merge
	
	
	save "ca20dn05", replace
	
	
***************************************************************************************************
***** "Creación de DN06: corrección de alquiler imputado y generación de variable de pobreza" ***** 
***************************************************************************************************

	use "ca20dn05.dta", clear
	
	/* Valor de la línea de pobreza e indigencia: obtenida de la página del MDSF, a noviembre 2020*/ 

	gen li= 116087
	gen lp= 174131
	

	/*Alquiler imputado*/
	
	/*Generación de matriz de alquiler*/
	
	/* Se trabaja con variable p6_p_con, que corresponde al tipo de vivienda obtenido por observación del encuestador,*/
	/* y que corresponde con la antigua vble v1. En los casos de no contar con esta variable se utiliza v1 (compuesta), que */
	/* corresponde al tipo de vivienda por declaración del informante*/
	
	gen p6_p_con_o = p6_p_con
	replace p6_p_con = 1 if p6_p_con == 99 & v1 == 1 & v1_casa == 1
	replace p6_p_con = 2 if p6_p_con == 99 & v1 == 1 & v1_casa == 2
	replace p6_p_con = 3 if p6_p_con == 99 & v1 == 1 & v1_casa == 3
	replace p6_p_con = 4 if p6_p_con == 99 & v1 == 2 & v1_depto == 4
	replace p6_p_con = 5 if p6_p_con == 99 & v1 == 2 & v1_depto == 5
	replace p6_p_con = 6 if p6_p_con == 99 & v1 == 6 
	replace p6_p_con = 7 if p6_p_con == 99 & v1 == 7 
	replace p6_p_con = 8 if p6_p_con == 99 & v1 == 8 
	replace p6_p_con = 9 if p6_p_con == 99 & v1 == 9
	
	
	gen v13_o = v13
	replace v13= 1 if v13 == 1 & v13_propia == 1
	replace v13= 2 if v13 == 1 & v13_propia == 2
	replace v13= 3 if v13 == 1 & v13_propia == 3
	replace v13= 4 if v13 == 1 & v13_propia == 4
	replace v13= 5 if v13 == 2 & v13_arrendada == 5
	replace v13= 6 if v13 == 2 & v13_arrendada == 6
	replace v13= 7 if v13 == 3 & v13_cedida == 7
	replace v13= 8 if v13 == 3 & v13_cedida == 8
	
	label define sit_viv 1 "Propia pagada" 2 "Propia pagándose" 3 "Propia compartida (pagada) con otros hogares de la vivienda" /*
		*/4 "Propia compartida (pagándose) con otros hogares de la vivienda" 5 "Arrendada con contrato" 6 "Arrendada sin contrato" /*
		*/7 "Cedida por servicio o trabajo" 8 "Cedida por familiar u otro" 9 "Usufructo (sólo uso y goce)" 10 "Ocupación irregular (de hecho)" /*
		*/11 "Poseedor irregular"
	
	label value v13 sit_viv
	
	
	matrix YAIM = J(9,9,0)
	matrix rownames YAIM = 1 2 3 4 5 6 7 8 9 
	matrix colnames YAIM = 1 2 3 4 5 6 7 8 9	
	
	gen v19_o = v19
		replace v19= 0 if v19==.
               
    sum v19 [aw=factorex] if parentco == 1 & v19 > 0 & v19 < ., d
    local v19_p1 = r(p1)
    local v19_p99 = r(p99)

    forval x = 1/9 {
		forval y = 1/9 {
			sum v19 [aw=factorex] if parentco == 1 & p6_p_con ==`x' & v13 == `y' & v19> `v19_p1' & v19 < `v19_p99'
				if `y'!=5 & `y'!=6 {
					matrix YAIM[`x', `y'] = r(mean)
                    }
                 else {
                    matrix YAIM[`x', `y'] = .
                 }
        }
    }
               
	matrix list YAIM 
               
               
    gen yaicoh_aux = 0
               
    forval x = 1/9 {
		forval y = 1/9 {
			replace yaicoh_aux = YAIM[`x',`y'] if yaimh == 0 & p6_p_con ==`x' & v13 == `y' & YAIM[`x',`y']>0 
            replace yaicoh_aux = YAIM[`x',1] if yaimh == 0 & p6_p_con ==`x' & YAIM[`x',`y']<= 0
            }
	}
                              
	preserve
	keep id_hogar yaimh p6_p_con v13 parentco
	keep if parentco == 1
               
	gen y2 = yaimh
	sort p6_p_con v13 id_hogar 
	by p6_p_con v13: replace y2 = y2[_n-1] if y2 == 0 & y2[_n-1]!=0 & y2[_n-1]>`v19_p1' & y2[_n-1]<`v19_p99'

	save "temp_ai.dta", replace

	sum yaimh          if yaimh == 0 & inlist(v13,1,2,3,4,7,8,9)
	sum y2                if y2 == 0 & inlist(v13,1,2,3,4,7,8,9)

	restore
               
	merge m:1 id_hogar using temp_ai, keepus(y2)
               
	gen yaimcorh = cond(inlist(v13,1,2,3,4,7,8,9),round(y2,1), 0)
		replace yaimcorh = 0 if yaimcorh == .
		replace yaimcorh = round(yaicoh_aux,1) if yaimcorh == 0 & inlist(v13,1,2,3,4,7,8,9)
		replace yaimcorh = 0 if y0503h > 0 & v13_cedida == 7                     /* En cedidas por servicio o trabajo se toma como alquiler imputado el pago en vivienda si este es mayor que cero */
        replace yaimcorh = 0 if yaimcorh == .
		
		sum yaimcorh if yaimcorh == 0 & inlist(v13,1,2,3,4,7,8,9)
                              
		drop yaicoh_aux _merge y2
               
		replace ytotcorh = ytotcorh + yaimcorh

	
/* Calculo  POBREZA*/ 
	
	gen ypc = round(ytotcorh /persindo)
	gen nae = persindo^0.7
	gen yae = round(ytotcorh / nae)
		
	gen pobreza = 3
	replace pobreza = 2 if yae < lp
	replace pobreza = 1 if yae < li
	
	label define pobreza 1 "Pobreza extrema" 2 "Pobreza no extrema" 3 "Fuera de la pobreza" 
	label values pobreza pobreza

	
	gen yae_sinte = (ytotcorh - y2602h - y2604h)/nae
	gen pobreza_sinte = 3
	replace pobreza_sinte = 2 if yae_sinte < lp
	replace pobreza_sinte = 1 if yae_sinte < li
	
	label define pobreza2 1 "Pobreza extrema_sinT" 2 "Pobreza no extrema_sinT" 3 "Fuera de la pobreza_sinT" 
	label values pobreza_sinte pobreza2

	/* Se dejan variables de ingreso final y pobreza en 0 para nucleo==0*/
	
	replace ytotcorh = . if nucleo == 0
	replace ypc =. if nucleo == 0
	replace yae =. if nucleo == 0
	replace pobreza =. if nucleo == 0
	
	sort region area comuna segmento id_vivienda id_hogar id_persona
	
	
do "`carpeta'\\_labels_chl20dn06.do" 
compress
	save "ca20dn06", replace
	
log close


