program poverty_overtendency
	version 12
	qui {

	********************************************************
	* CONSTANTES DE LA FASE: DECRECIMIENTO SOBRE TENDENCIA *
	********************************************************
	* Transisción de personas
		* # personas que ENTRAN a adecuado
		local N_adec=0.00676653644109957*$N_total
		* # Personas que ENTRAN a inadecuado
		local N_inadec=0.000104330285030853*$N_total
		* # Personas que SALEN del desempleo
		local N_desem=0.000963556274327383*$N_total
		* # Personas que SALEN de otros
		local N_otros=0.00590731045180304*$N_total
	* Incremento en los salarios
		* Incremento adecuados
		local W_adec=0.0784287692701199
		* Incremento inadecuados
		local W_inadec=0.0929436415158029
		* Incremento desempleados
		local W_desem=0
		* Incremento otros
		local W_otros=0.0265427897770885

	************************
	* Transición aleatoria *
	************************
	* Paso 1: Seleccionar aleatoriamente el # de "otros" y "desempleados"
	* que salen de su condición de actividad
		* Los que salen de otros *
		set seed 12345
		gen var=runiform()
		sort var, stable
		sort otros, stable
		gen x1=(_n) if otros==1
		drop var

		gen transicion_3=1 if x1<=`N_otros'
		drop x1
		sort id
		* Los que salen de desempleo *
		set seed 1234
		gen var=runiform()
		sort var, stable
		sort desem, stable
		gen x1=(_n) if desem==1
		drop var

		replace transicion_3=1 if x1<=`N_desem'
		drop x1
		sort id
	* Paso 2: de entre las personas que salieron en el paso 1, seleccionar
	* de manera aleatoriamente los que pasan a "adecuado" e "inadecuado".
	* Los que entran a adecuado tendrán un identificador = 1, y los que
	* pasan a inadecuado = 2
		* Los que entran a "inadecuado"
		set seed 123
		gen var=runiform()
		sort var, stable
		sort transicion_3, stable
		drop var
		gen x1=(_n) if transicion_3==1
		replace transicion_3=2 if x1<=`N_inadec'
		drop x1
		sort id
	******************************
	* Generar datos a reemplazar *
	******************************
	/* Se necesita generar una variable con la mediana del ingreso de las
		personas con empleo adecuado e inadecuado.
		Esta mediana será la que debe ser reemplazada en los ingresos totales
		de los otros tipos de empleo.*/
	* Mediana "adecuado"
		_pctile ingrtl [aw=FEXP] ///
			if adec==1 & ingrtl>=0 & ingrtl<999999, p(10(10)90)
		ret li

		gen mediana_adec_3 = r(r5)

	* Mediana "inadecuado"
		_pctile ingrtl [aw=FEXP] ///
			if inadec==1 & ingrtl>=0 & ingrtl<999999, p(10(10)90)
		ret li

		gen mediana_inadec_3 = r(r5)

	**************************************
	* Estimación de los ingresos totales *
	**************************************
	gen ingresos_est_3 = ingrtl
	* Reemplazamos con la mediana de otros ingresos *
		* Los que pasaron a adecuado
		replace ingresos_est_3=mediana_adec_3 if transicion_3==1
		* Los que pasaron a inadecuado
		replace ingresos_est_3=mediana_inadec_3 if transicion_3==2
	* Generamos variables de identificación para la nueva CAE *
		* Nuevos adecuados
		gen adec_est_3=adec
		replace adec_est_3=1 if transicion_3==1 & adec==.
		* Nuevos inadecuados
		gen inadec_est_3=inadec
		replace inadec_est_3=1 if transicion_3==2 & inadec==.
		* Nuevos desempleados
		gen desem_est_3=desem
		replace desem_est_3=. if (transicion_3==1|transicion_3==2) & desem==1
		* Nuevos otros
		gen otros_est_3=otros
		replace otros_est_3=. if (transicion_3==1|transicion_3==2) & otros==1
	* Se incrementa el salario de acuerdo a la CAE *
		replace ingresos_est_3=ingresos_est_3*(1+`W_adec') if adec_est_3==1
		replace ingresos_est_3=ingresos_est_3*(1+`W_inadec') if inadec_est_3==1
		replace ingresos_est_3=ingresos_est_3*(1+`W_desem') if desem_est_3==1
		replace ingresos_est_3=ingresos_est_3*(1+`W_otros') if otros_est_3==1
	* Determinar ingreso por hogar *
		bysort idhogar: egen ingr_hogar1=total(ingresos_est_3) ///
			if ingresos_est_3>=0 & ingresos_est_3<999999

		bysort idhogar: egen ingr_hogar_est_3=mean(ingr_hogar1)
		drop ingr_hogar1
	* Determinar ingreso per cápita
		gen ingr_pc_est_3=ingr_hogar_est_3/npersona

	****************************
	* Estimación de la pobreza *
	****************************
	* Variable pobreza
		gen poverty_est_3=1 if ingr_pc_est_3<Lp
		replace poverty_est_3=0 if ingr_pc_est_3>=Lp
		replace poverty_est_3=. if ingr_pc_est_3==.

		svy: tab poverty_est_3 if poverty_est_3==1
		global Pobreza_sobre_tendencia =(`e(N_pop)'/$poblacion_t1)*100
	*Pobreza extrema
		gen extreme_est_3=1 if ingr_pc_est_3<Lpe
		replace extreme_est_3=0 if ingr_pc_est_3>=Lpe
		replace extreme_est_3=. if ingr_pc_est_3==.

		svy: tab extreme_est_3 if extreme_est_3==1
		global Extrema_sobre_tendencia =(`e(N_pop)'/$poblacion_t1)*100

		sort id
}
end