*Ultima actualización: mayo 2022

*Las bases de datos del MCS de la ENIGH 2012 se pueden descargar en la página de internet del INEGI
*https://www.inegi.org.mx/programas/mcs/2012/#Microdatos

********************************************************************************
********************************************************************************
**********************Primera parte*********************************************
****Programa de cálculo para ajuste a cuentas nacionales al ingreso total*******
********************************************************************************
********************************************************************************

********************************************************************************
* Contenido del archivo:
* 0. Directorios de trabajo
* 1. Fuentes de ingresos
* 2. Ajuste a cuentas nacionales 
* 3. Construcción de base MMIP
********************************************************************************

clear all
set more off

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

*Globals Directorio de bases

gl ruta=       	"D:\MCS2012"
gl AjusteCN     "$ruta/AjusteCN"
gl bases=		"$ruta/bases"
gl ingresos=	"$ruta/ingresos"
gl gasto=	    "$ruta/gasto"
gl tmp=			"$ruta/tmp"
gl final=		"$ruta/final"

********************************************************************************
* Módulo 1. Fuentes de ingresos 
*
* 1.1 Factor de expansión y tamaño de hogar
* 1.2 Construcción del ingreso mensual deflactado por claves
* 1.3 Construcción de fuentes de ingresos monetarios 
*   1.3.1 Ingresos por trabajo subordinado
*   1.3.2 Ingresos por negocios propios 
*   1.3.3 Transferencias
* 1.4 Construcción del ingreso por negocios según tamaño de empresa
*   *1.4.1 Tamaño de empresa 1
*   *1.4.2 Tamaño de empresa 2
*   *1.4.3 Origen del ingreso por tipo de negocio (agropecuario y no agropecuario)
********************************************************************************

********************************************************************************
*1.1 Factor de expansión y tamaño de hogar
********************************************************************************

*Abrir la base de viviendas
use "$bases/viviendas.dta", clear
*Guardar la base idéntica en la carpeta de archivos temporales para modificarla posteriormente
save "$tmp/viviendas.dta", replace

*Abrir la base hogar y pegar con la temporal de vivienda
use "$bases/hogares.dta", clear
merge  m:1 folioviv  using "$tmp/viviendas.dta", nogen

*Generar un folio único
egen folio=concat(folioviv foliohog)

*Generar etiquetas para la variable 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

*Generar variable uniendo localidades urbanas y rurales
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

*Se substrae municipio y entidad y se genera una variable para cada una
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

********************************************************
********************************************************
* se elimina el Factor de viviendas que aparece en el MCS
drop factor_viv
* se renombra el factor hogar
rename factor_hog factor
********************************************************
********************************************************

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

*Se seleccionan las variables creados y las de diseño muestral y se genera una nueva base
keep folio folioviv foliohog entidad ur_rur_2500  factor upm tam_loc est_dis
save "$final/factexp.dta", replace

* Generación del tamaño de hogar
use "$bases/poblacion.dta", clear

*Generar un folio único
egen folio=concat(folioviv foliohog)

*Eliminar los folios de 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 <999

* Se obtiene el numero de integrantes del hogar excluyendo a los no parientes
gen tam_hog=1
collapse (sum) tam_hog, by(folioviv foliohog folio)
save "$tmp/tamano_hogar.dta", replace

*Abrir la base con variables seleccionadas
use "$final/factexp.dta", clear
merge 1:1 folioviv foliohog folio using "$tmp/tamano_hogar.dta", nogen

*Guardar base factexp
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 folio using "$final/factexp.dta", nogen

*Guardar en una nueva base de datos
save "$tmp/hogaresmmip.dta", replace

********************************************************************************
*1.2 Construccion del ingreso mensual deflactado por claves
*********************************************************************************
* Abrir base de ingresos
use "$bases/ingresos.dta", clear 

*Generar variable de decena de levantamiento
gen decena= substr(folioviv,3,1)
destring decena, replace
recode decena ///
	(0/1 = 8 "Agosto") ///
	(2/4 = 9 "Septiembre") ///
	(5/7 = 10 "Octubre") ///
	(8/9 = 11 "Noviembre"), ///
	gen (meslevan) label (meslevan)

destring mes_*, replace
	
*Generar folio	
egen folio=concat (folioviv foliohog)

*Generar una variable de ingreso identica para hacer modificaciones
gen ing_11=ing_1
gen ing_21=ing_2
gen ing_31=ing_3
gen ing_41=ing_4
gen ing_51=ing_5
gen ing_61=ing_6

*Se regresa a un mes antes para deflactar conforme el mes de referencia
rename ing_11 ing_ma
rename ing_21 ing_11
rename ing_31 ing_21
rename ing_41 ing_31
rename ing_51 ing_41
rename ing_61 ing_51

*Se generó nueva variable de ingresos para deflactar
*D1
*Dato externo 1:
*Deflactor del INPC tomado de INEGI 2012
scalar par_1 =	0.992562619 // 
scalar par_2 =	0.993132534 // 
scalar par_3 =	0.990017002 // 
scalar par_4 =	0.986891973 // 
scalar par_5 =	0.991441788 // 
scalar par_6 =	0.997007950 // 
scalar par_7 =	1.000000000 // 
scalar par_8 =	1.004407337 // 
scalar par_9 =	1.009489072 //


*Deflactor 5-> den 5
gen den5=.
replace den5= par_1 if meslevan==8
replace den5= par_2 if meslevan==9
replace den5= par_3 if meslevan==10
replace den5= par_4 if meslevan==11

*Deflactor 4-> den 4
gen den4=.
replace den4= par_2 if meslevan==8
replace den4= par_3 if meslevan==9
replace den4= par_4 if meslevan==10
replace den4= par_5 if meslevan==11

*Deflactor 3-> den 3
gen den3=.
replace den3= par_3 if meslevan==8
replace den3= par_4 if meslevan==9
replace den3= par_5 if meslevan==10
replace den3= par_6 if meslevan==11

*Deflactor 2-> den 2
gen den2=.
replace den2= par_4 if meslevan==8
replace den2= par_5 if meslevan==9
replace den2= par_6 if meslevan==10
replace den2= par_7 if meslevan==11

*Deflactor 1-> den 1
gen den1=.
replace den1= par_5 if meslevan==8
replace den1= par_6 if meslevan==9
replace den1= par_7 if meslevan==10
replace den1= par_8 if meslevan==11

*Deflactor principal -> den ma
gen denma=.
replace denma= par_6 if meslevan==8
replace denma= par_7 if meslevan==9
replace denma= par_8 if meslevan==10
replace denma= par_9 if meslevan==11

*Se deflactan de acuerdo al mes de levantamiento
replace ing_51=ing_6/den5 
replace ing_41=ing_5/den4 
replace ing_31=ing_4/den3 
replace ing_21=ing_3/den2 
replace ing_11=ing_2/den1 
replace ing_ma=ing_1/denma 

*Para poder hacer el loop se genera el valor numérico de la clave
gen clave_sin= substr(clave,-2,2)
destring clave_sin, replace

*recodificar para poder sumar todos los ingresos 
recode ing_51 ing_41  ing_31  ing_21  ing_11  ing_ma (.=0)

*Se hace el loop para generar la suma del ingreso deflactado para cada clave de ingreso
forvalues i= 1 / 89 {
 gen P_`i'=0
 replace P_`i' = ing_51 + ing_41 + ing_31 + ing_21 + ing_11 + ing_ma if clave_sin==`i'
 replace P_`i'= 0 if P_`i'==.
}
*

* Generar el ingreso mensual en cada clave
foreach i of numlist 1/7 10/14 17/49 51/81{
 gen P_M`i'=0
replace P_M`i'= P_`i'/6
}
*
foreach i of numlist 8/9 15/16 50{
 gen P_M`i'=0
replace P_M`i'= P_`i'/12
}

********************************************************************************
*1.3 Construcción de fuentes de ingresos monetarios para empatarlas a cuentas nacionales
*********************************************************************************

********************************************************************************
*1.3.1 Ingresos por trabajo subordinado
********************************************************************************
gen double remun = P_M1+P_M2+P_M11+P_M14+P_M18+P_M67+P_M4+P_M3+P_M8+P_M9+P_M15+P_M16+P_M35+P_M36+P_M5+P_M6+P_M7+P_M21+P_M22+P_M49

gen double ganancias = P_M12+P_M13+P_M19+P_M20+P_M68+P_M69+P_M70+P_M71+P_M72+P_M73+P_M74+P_M75+P_M76+P_M77+P_M78+P_M79+P_M80+P_M81
gen double renta_prop =  P_M23+P_M24+P_M25+P_M26+P_M27+P_M28+P_M29+P_M30+P_M31+P_M50

********************************************************************************
* 1.3.2 Ingresos por negocios propios 
********************************************************************************
gen double YCOOP=P_M12+P_M19+P_M13+P_M20
gen double YAGRO_sincoop=P_M71+P_M72+P_M73+P_M74+P_M78+P_M79+P_M80+P_M81
gen double YNOAGRO_sincoop=P_M68+P_M69+P_M70+P_M75+P_M76+P_M77

********************************************************************************
* 1.3.3 Transferencias
********************************************************************************
gen double trans_nogob =P_M32+P_M33+P_M34+P_M37+P_M38+P_M41 
gen double trans_gob   =P_M42+P_M43+P_M44+P_M45+P_M46+P_M47+P_M48 
gen double p034=P_M34
gen double p035=P_M35
gen double p036=P_M36
gen double p009=P_M9
gen double p016=P_M16

recode remun-p016 (.=0)

local ingresos remun ganancias renta_prop YCOOP YAGRO_sincoop ///
 YNOAGRO_sincoop trans_nogob trans_gob p034 p035 p036 p009 p016

*Generar ingreso por fuentes mensualizado individual 
collapse (sum) `ingresos', by(folio numren)
save "$AjusteCN/Ing_PC_2012.dta", replace

*Generar ingreso por fuentes mensualizado por hogar 
collapse (sum) `ingresos', by(folio)

save "$AjusteCN/Ingxfuentes_hogar.dta", replace


********************************************************************************
*1.4 Construcción del ingreso por negocios según tamaño de empresa 
********************************************************************************

********************************************************************************
*1.4.1 Tamaño de empresa 1
********************************************************************************

*identificador del tamaño de empresa
use "$bases/trabajos.dta", clear 
egen folio=concat (folioviv foliohog)

keep if id_trabajo == "1" & subor == "2"

destring tam_emp id_trabajo, replace
collapse  (max) tam_emp id_trabajo, by(folio numren)

rename tam_emp  tam_emp_1
rename id_trabajo id_trabajo_1

save "$AjusteCN/Neg_1er trab.dta", replace

********************************************************************************
*1.4.2 Tamaño de empresa 2
**************************************|******************************************

use "$bases/trabajos.dta", clear 
egen folio=concat (folioviv foliohog)

keep if id_trabajo == "2" & subor == "2"
destring tam_emp id_trabajo, replace

collapse  (max) tam_emp id_trabajo, by(folio numren)

rename tam_emp  tam_emp_2
rename id_trabajo id_trabajo_2

save "$AjusteCN/Neg_2o trab.dta", replace

********************************************************************************
* 1.4.3 Origen del ingreso por tipo de negocio (agropecuario y no agropecuario)
********************************************************************************

use "$AjusteCN/Ing_PC_2012.dta", clear 

merge 1:1 folio numren using "$AjusteCN/Neg_1er trab.dta"
drop if _merge==2
drop _merge

merge 1:1 folio numren using "$AjusteCN/Neg_2o trab.dta"
drop if _merge==2
drop _merge 

recode remun- YNOAGRO_sincoop (.=0)

gen id_tipos_Y_coop=0
replace id_tipos_Y_coop=1 if YCOOP>0 & YAGRO_sincoop==0 & YNOAGRO_sincoop==0
replace id_tipos_Y_coop=2 if YCOOP>0 & YAGRO_sincoop>0  & YNOAGRO_sincoop==0
replace id_tipos_Y_coop=3 if YCOOP>0 & YAGRO_sincoop==0 & YNOAGRO_sincoop>0
replace id_tipos_Y_coop=4 if YCOOP>0 & YAGRO_sincoop==1 & YNOAGRO_sincoop==1

label define id_tipos_Y_coop 1 "sólo coop" ///
                             2 "Coop + Agro" ///
							 3 "Coop + No Agro" ///
							 4 "Coop con ambos" 
label values id_tipos_Y_coop id_tipos_Y_coop

merge m:1 folio using "$final/factexp.dta"
drop if _merge==2
drop _merge 


*Generar el ingreso agropecuario con y sin cooperativas 
gen double Y_AGRO_con_coop=YAGRO_sincoop
replace Y_AGRO_con_coop=YAGRO_sincoop  + YCOOP if YAGRO_sincoop>0 & YNOAGRO_sincoop==0
replace Y_AGRO_con_coop=YCOOP                  if YAGRO_sincoop==0 & YNOAGRO_sincoop==0 & tam_loc==4


*Generar el ingreso NO agropecuario con y sin cooperativas
gen double Y_NO_AGRO_con_coop=YNOAGRO_sincoop
replace Y_NO_AGRO_con_coop=YNOAGRO_sincoop  + YCOOP if YAGRO_sincoop==0 & YNOAGRO_sincoop>0
replace Y_NO_AGRO_con_coop=YNOAGRO_sincoop  + YCOOP if  YAGRO_sincoop==0 & YNOAGRO_sincoop==0 & tam_loc<4

***
replace Y_NO_AGRO_con_coop = YNOAGRO_sincoop + YCOOP if (YCOOP>0 & YAGRO_sincoop>0 & YNOAGRO_sincoop >0)


*Identificador del tamaño de empresa urbano y rural

destring tam_emp_1, replace
destring tam_emp_2, replace

recode tam_emp_1 tam_emp_2 (.=0)

rename tam_emp_1 tam_empresa1
rename tam_emp_2 tam_empresa2

gen tam_emp =  tam_empresa1
replace tam_emp=tam_empresa2 if tam_empresa1==0

* Tamaño de empresas agropecuarias
gen tam_emp_ajuste=tam_emp
recode tam_emp_ajuste (1 2=1) (0=.)
recode tam_emp_ajuste (9 10 11 12=9) (0=.)

* Tamaño de empresas no agropecuarias
gen tam_emp_ajuste_rural=tam_emp
recode tam_emp_ajuste_rural (1 2=1) (0=.)
recode tam_emp_ajuste_rural (5 6 7 8 9 10 11 12=5) (0=.)


label define tam_emp_ajuste 1 "1 a 5" ///
                            3 "6 a 10" /// 
							4 "11 a 15" /// 
							5 "16 a 20" /// 
							6 "21 a 30" /// 
							7 "31 a 50" /// 
							8 "51 a 100" /// 
							9 "101 a MÁS" 
label values tam_emp_ajuste tam_emp_ajuste


label define tam_emp_ajuste_rural 1 "1 a 5" /// 
                                  3 "6 a 10" /// 
								  4 "11 a 15" /// 
								  5 "16 a más"

label values tam_emp_ajuste_rural tam_emp_ajuste_rural
recode tam_emp_ajuste tam_emp_ajuste_rural (.=0)

*factor de ajuste 1
tabstat Y_NO_AGRO_con_coop [fw=factor], stats(sum) format(%22.2fc) 
tabstat Y_AGRO_con_coop [fw=factor], stats(sum) format(%22.2fc)

*factor de ajuste 
tabstat Y_NO_AGRO_con_coop  if Y_NO_AGRO_con_coop>0 [fw=factor], by (tam_emp_ajuste) format(%22.2fc) statistics(sum N) 
tabstat Y_AGRO_con_coop     if Y_AGRO_con_coop >0 [fw=factor], by (tam_emp_ajuste_rural) format(%22.2fc) statistics(sum N) 

* Ingreso Agro y No Agro con cooperativa
tabstat Y_AGRO_con_coop Y_NO_AGRO_con_coop  [fw=factor], format(%22.2fc) statistics(sum N)

tabstat YCOOP YAGRO_sincoop YNOAGRO_sincoop  [fw=factor], format(%22.2fc) statistics(sum N)
tabstat YCOOP  if (YCOOP>0 & YAGRO_sincoop>0 & YNOAGRO_sincoop >0), format(%18.2fc) statistics(sum N)

********************************************************************************
* Módulo 2. Ajuste a cuentas nacionales
* 2.1 Construcción del ingreso por negocios ajustado a cuentas nacionales
* 2.2 Construccion a las fuentes de ingresos monetarios ajustado a cuentas nacionales
* 2.3 Construcción ingreso no monetario ajustado a cuentas nacionales 
* 2.4 Construcción del ingreso estimación del alquiler ajustado a cuentas nacionales
* 2.5 Construcción del ingreso no monetario ajustado a cuentas nacionales
* 2.6 Construcción del ingreso monetario y no monetario ajustado a cuentas nacionales
********************************************************************************

********************************************************************************
*2.1 Construción del ingreso por negocios ajustado a cuentas nacionales
********************************************************************************
gen double YNagro_ACN=0

replace YNagro_ACN=Y_NO_AGRO_con_coop*1.00000000    if tam_emp_ajuste==1
replace YNagro_ACN=Y_NO_AGRO_con_coop*2.50136646    if tam_emp_ajuste==3
replace YNagro_ACN=Y_NO_AGRO_con_coop*7.07422286    if tam_emp_ajuste==4
replace YNagro_ACN=Y_NO_AGRO_con_coop*1.94110366    if tam_emp_ajuste==5
replace YNagro_ACN=Y_NO_AGRO_con_coop*9.21428191    if tam_emp_ajuste==6
replace YNagro_ACN=Y_NO_AGRO_con_coop*12.67631638   if tam_emp_ajuste==7
replace YNagro_ACN=Y_NO_AGRO_con_coop*57.32824415   if tam_emp_ajuste==8
replace YNagro_ACN=Y_NO_AGRO_con_coop*4709.28776267 if tam_emp_ajuste==9 

* Factores de ajuste para el sector Agropecuario
gen double Yagro_ACN=0

replace Yagro_ACN=Y_AGRO_con_coop*1.00000000  if tam_emp_ajuste_rural==1
replace Yagro_ACN=Y_AGRO_con_coop*1.00000000  if tam_emp_ajuste_rural==3
replace Yagro_ACN=Y_AGRO_con_coop*2.22999263  if tam_emp_ajuste_rural==4
replace Yagro_ACN=Y_AGRO_con_coop*15.55035462 if tam_emp_ajuste_rural==5

recode YNagro_ACN Yagro_ACN (.=0)

* Tablas
tabstat YNagro_ACN [fw=factor], statistics(sum) format(%22.2fc)
tabstat Yagro_ACN [fw=factor], statistics(sum) format(%22.2fc)

collapse (sum) YNagro_ACN Yagro_ACN  Y_NO_AGRO_con_coop Y_AGRO_con_coop, by(folio)

*guardamos la base 
save "$AjusteCN/Ing_neg_ACN.dta", replace 

******************************************************************************
*2.2 Construccion a las fuentes de ingresos monetarios ajustado a cuentas nacionales 
*******************************************************************************

*Abrir la base de Gastos por hogar
use "$final/factexp.dta",clear 

merge 1:1 folio using "$AjusteCN/Ingxfuentes_hogar.dta"
drop _merge

recode remun-YNOAGRO_sincoop (.=0)

* Ingreso ajustado por factores de expansión

gen remun_ACN    =remun*1.062735
gen renta_ACN    =renta_prop*38.388158
gen tran_nogobACN=trans_nogob*2.350579
gen tran_gobACN  = trans_gob*1.000000

gen p034_ACN     =p034*2.350579
gen p035_ACN     =p035*1.062735
gen p036_ACN     =p036*1.062735
gen p009_ACN     =p009*1.062735
gen p016_ACN     =p016*1.062735

recode remun-p016_ACN(.=0)

collapse (sum) remun_ACN renta_ACN tran_nogobACN tran_gobACN p034_ACN p035_ACN p036_ACN p009_ACN p016_ACN, by(folio)

save "$AjusteCN/Ingxfuentes_ACN.dta", replace 


********************************************************************************
* 2.3 Construcción ingreso no monetario ajustado a cuentas nacionales
********************************************************************************

*Abrir la base de Gastos por hogar
use "$bases/gastoshogar.dta",clear 

*Generar folio
egen folio=concat (folioviv foliohog)

gen excep=0
replace excep=1 if clave>="Q001" & clave<="Q016"  | clave>="K038" & clave<="K045"

*Generar decena de levantamiento
gen decena= substr(folio,3,1)
destring decena, replace
recode decena ///
	(0/1 = 8 “Agosto”) ///
	(2/4 = 9 “Septiembre”) ///
	(5/7 = 10 “Octubre”) ///
	(8/9 = 11 “Noviembre”), ///
	gen (meslevan) label (meslevan)
	
********************************************************************************
* 2.4 Construcción del ingreso estimación del alquiler ajustado a cuentas nacionales
********************************************************************************

gen g7_gas_nm_tri=.
replace g7_gas_nm_tri=gas_nm_tri if  tipo_gasto=="G7"

recode g7_gas_nm_tri(.=0)

*Deflactor del INPC tomado de INEGI 2012 
gen deflac=0
replace deflac = 1.000000000 if meslevan==8 
replace deflac = 1.004407337 if meslevan==9 
replace deflac = 1.009489072 if meslevan==10 
replace deflac = 1.016347040 if meslevan==11 

*Gasto mensual 
gen g7_def = (((g7_gas_nm_tri) / deflac)/3)
recode g7_def  (.=0)

gen g7_def_ACN=1.629944*g7_def 

tabstat g7_def_ACN, stat(sum N) format(%22.2fc)

**se genera una variable mensual para los gastos G1 y G2 (sin factor de ajuste)
gen gasto_men=0

*se genera una variable mensual para los gastos G7
gen gas_nm_men=0
replace gas_nm_men=g7_def_ACN if  tipo_gasto=="G7"
recode gasto_men gas_nm_men (.=0)

tabstat gasto_men gas_nm_men , stat(sum N) format(%22.2fc)

keep folioviv foliohog clave tipo_gasto mes_dia orga_inst ///
     frecuencia  cantidad gasto costo gasto_tri gasto_nm ///
	 gas_nm_tri  gasto_men gas_nm_men

save "$AjusteCN/gasto_hogar_ACN.dta", replace 

********************************************************************************
* 2.5 Construcción del ingreso no monetario ajustado a cuentas nacionales
********************************************************************************

*Abrir base de gastos por persona
use "$bases/gastospersona.dta",clear 

*Generar folio
egen folio=concat (folioviv foliohog)

gen excep=0
replace excep=1 if ((clave>="Q001" & clave<="Q016")  | (clave>="K038" & clave<="K045"))

*Generar decena de levantamiento
gen decena= substr(folio,3,1)
destring decena, replace

recode decena ///
	(0/1 = 8 “Agosto”) ///
	(2/4 = 9 “Septiembre”) ///
	(5/7 = 10 “Octubre”) ///
	(8/9 = 11 “Noviembre”), ///
	gen (meslevan) label (meslevan)
	
*Generar variables para cada tipo de gasto
gen g4_gas_nm_tri=0.
replace g4_gas_nm_tri=gas_nm_tri if tipo_gasto=="G4" & excep==0
recode g4_gas_nm_tri (.=0)


*Deflactor del INPC tomado de INEGI 2012 
gen deflac=0
replace deflac = 1.000000000 if meslevan==8 // 
replace deflac = 1.004407337 if meslevan==9 // 
replace deflac = 1.009489072 if meslevan==10 // 
replace deflac = 1.016347040 if meslevan==11 // 

*Gasto G4 deflactado
gen g4_def = (((g4_gas_nm_tri) / deflac)/3)

recode g4_def (.=0)

*Gasto no monetario por remuneraciones en especie ajustado
gen g4_def_ACN=1.062735*g4_def 

tabstat g4_def g4_def_ACN, stat(sum N) format(%22.2fc)

*Generar gasto monetario en bienes y servicios (agregado) y no monetario por remuneraciones en especie (ajustado)
gen gasto_men=0

gen  gas_nm_men=0
replace gas_nm_men=g4_def_ACN if tipo_gasto=="G4"

recode gas_nm_men (.=0)

tabstat gas_nm_men, stat(sum N) format(%22.2fc)
tabstat g4_def, stat(sum N) format(%22.2fc)

keep folioviv foliohog numren clave tipo_gasto mes_dia  ///
     inst cantidad gasto costo gasto_tri gasto_nm  ///
	 gas_nm_tri gas_nm_men gasto_men g4_def


*guardar base 
save "$AjusteCN/gastospersona_ACN.dta", replace 


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

*Ingreso no monetario ajustado a cuentas nacionales 

use "$AjusteCN/gasto_hogar_ACN.dta", clear 


*Generar folio
egen folio=concat (folioviv foliohog)

gen double alq_ACN=0
replace alq_ACN=gas_nm_men if tipo_gasto=="G7"

recode alq_ACN(.=0)

collapse (sum) alq_ACN , by(folio)

save "$AjusteCN/gasto_hogar_ACN_H.dta", replace 

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

use "$AjusteCN/gastospersona_ACN.dta", clear 

*Generar folio
egen folio=concat (folioviv foliohog)

gen double rem_esp_ACN=0
replace rem_esp_ACN=gas_nm_men if tipo_gasto=="G4"

tabstat g4_def rem_esp_ACN, stat(sum N) format(%22.2fc)
recode g4_def rem_esp_ACN (.=0)

collapse (sum) g4_def rem_esp_ACN, by(folio)

tabstat rem_esp_ACN g4_def, stat(sum N) format(%22.2fc)
 
save "$AjusteCN/gastospersona_ACN_H.dta", replace 

********************************************************************************
* Módulo 3. Construcción de bases finales 
********************************************************************************

use "$final/factexp.dta",clear 

merge 1:1 folio using "$AjusteCN/Ingxfuentes_ACN.dta"
drop _merge

merge 1:1 folio using "$AjusteCN/Ing_neg_ACN.dta"
drop _merge

merge 1:1 folio using "$AjusteCN/gasto_hogar_ACN_H.dta"
drop _merge

merge 1:1 folio using "$AjusteCN/gastospersona_ACN_H.dta"
drop _merge

recode remun_ACN-rem_esp_ACN(.=0)

********************************************************************************
* 3.1 Construcción de la base Ajustada a Cuentas Nacionales MMIP
********************************************************************************

*construccion del ingreso total mmip
gen double remu_esp_ACN=rem_esp_ACN+remun_ACN
gen double EBO_ACN=YNagro_ACN+Yagro_ACN
gen double trans_ACN=tran_nogobACN+tran_gobACN 
gen double ingreso_total_ACN=remu_esp_ACN+EBO_ACN+renta_ACN+trans_ACN+alq_ACN


label var  remun_ACN	      "Remuneracion en especie mensual ajustado"
label var  renta_ACN	      "Renta de la propiedad mensual ajustado"
label var  tran_gobACN         "Transferencias de gobierno mensual ajustado"	
label var  tran_nogobACN	  "Transferencias no gubernamental mensual ajustado"
label var  p034	              "Indemnizaciones recibidas de seguros mensual"  
label var  p035	              "Indemnizaciones por accidentes mensual" 
label var  p036	              "Indemnizaciones por despido"
label var  YNagro_ACN	      "Ingreso no agropecuario mensual ajustado"
label var  Yagro_ACN	      "Ingreso no agropecuario mensual ajustado" 
label var  alq_ACN            "Estimación del Alquiler mensual ajustado"
label var  rem_esp_ACN        "Pago en especies mensual ajustado" 
label var  remu_esp_ACN	      "Remuneraciones+especies mensual ajustado"          
label var  EBO_ACN		      "Ingreso por negocios mensual ajustado"         
label var  trans_ACN	      "Transferencias mensual ajustado"       
label var  ingreso_total      "Ingreso total mensual ajustado"

tabstat remu_esp_ACN alq_ACN EBO_ACN renta_ACN  trans_ACN  ingreso_total_ACN[fw=factor], format(%22.2fc) statistics(sum) columns(statistics)

save "$AjusteCN/base_ingreso_ACN.dta", replace 

********************************************************************************
* 3.2 Creación del ingreso del MMIP 2012
********************************************************************************

use "$AjusteCN/base_ingreso_ACN.dta", clear

keep folio folioviv foliohog tam_loc est_dis upm factor ur_rur_2500 ///
     entidad tam_hog rem_esp_ACN remun_ACN alq_ACN  YNagro_ACN Yagro_ACN      ///
	 tran_nogobACN tran_gobACN renta_ACN tran_gobACN  tran_nogobACN  p034     ///
	 p035 p036 p009_ACN p016_ACN

save "$AjusteCN/base_final_ACN.dta", replace 

********************************************************************************
* 3.3 Guardar bases en las bases originales
********************************************************************************
use "$AjusteCN/gasto_hogar_ACN.dta", clear 
save "$bases/gasto_hogar_ACN.dta", replace 

use  "$AjusteCN/gastospersona_ACN.dta", clear 
save "$bases/gasto_persona_ACN.dta", replace 

use "$AjusteCN/base_final_ACN.dta", clear 
save "$bases/base_final_ACN1.dta", replace 
