/*------------------------------guvenen_results.do-----------------*/ /* Este programa usa la base de datos guvenen_data.dta para encontrar algunos de los resultados en el artículo Guvenen, F. (2008) "An empirical investigation of labor income processes", Review of Economic Dynamics. En particular: 1.- Reproduce la fig.3. 2.- Produce un grafico de la varianza de las innovaciones (eta) para cada nivel de experiencia */ clear *Primero dejamos suficiente espacio para la base de datos set memory 150m *Nos cambiamos al directorio donde tenemos la base de datos, *y donde vamos a guardar los resultados cd "C:\Documents and Settings\Facundo\Mis documentos\cursos usach\Macro dinamica 2009\guvenen\RED_ACCEPTED_FINAL_DATA_CODE" *cargamos la base de datos use guvenen_data *declaramos que los datos son un panel, donde la variable de tiempo es * year, y la variable individual es idno (el identificador individual) tsset idno year *Podemos completar el panel, si queremos tsfill *Creamos la variable experiencia^2, que la vamos a necesitar *mas adelante gen exprsq=expr*expr *Creamos las variables para guardar alpha, beta, y zeta gen alpha=. gen beta=. gen zeta=. *Creamos las variables para guardar los componentes de var(yhat) *asociados a HIP, y al componente estocástico , asi como una *variable que represente experiencia: gen vary_hip=. gen vary_z=. gen experiencia=_n if _n<=40 gen sdeta_h=. *Parametros que vamos a usar disp idno[_N] ****Tarea 1: var(alpha), var(beta), etc *Ahora limpiamos el ingreso del efecto comun de la experiencia, haciendo *una regresion de ingreso sobre experiencia, experiancia^2, y un termino *constante, asi como dummies para cada año reg lnrhdlbin expr exprsq /*agehd agehdsq*/ yrdum* predict double yhat, resid /*yhat es la variable de ingreso que nos interesa*/ * Esta es la tarea principal: corremos regresiones para cada individuo, * y guardamos los alpha_i y beta_i, así como los residuos. forvalues i=1/1270 { quietly reg yhat expr if idno==`i' quietly replace alpha=_b[_cons] if _n==`i' quietly replace beta=_b[expr] if _n==`i' quietly predict double res1 if e(sample), residuals quietly replace zeta=res1 if e(sample) quietly drop res1 } *Obtenemos los parámetros rho y var(eta) del proceso zeta reg zeta l.zeta, nocons scalar rho=_b[l.zeta] predict double eta, residuals /* generamos la secuencia {eta} */ correlate eta zeta, covar /* queremos saber la varianza de eta*/ scalar var_eta=r(Var_1) *Obtenemos los parametros var(alpha), var(beta) y cov(alpha,beta) correlate alpha beta, covar scalar var_alpha=r(Var_1) scalar var_beta=r(Var_2) scalar covar_ab=r(cov_12) ***Tarea 2: Descomposición de la varianza de yhat *Descomponemos la varianza de yhat_h en los componentes debidos *a que los perfiles son heterogeneos, y debidos a la "suerte": *var(y_h)=[var(alpha)]+[2hcov(alpha,beta)+h^2*var(beta)]+[var(eta)*(1-rho^{2*h})/(1-rho^2)] forvalues h=1/40 { replace vary_hip=2*`h'*covar_ab+(`h'^2)*var_beta if _n==`h' replace vary_z=var_eta*(1-rho^(2*`h'+1))/(1-rho) if _n==`h' } *obtenemos la varianza de eta por nivel de experiencia forvalues x=1/46 { sum eta if expr==`x' replace sdeta_h=r(sd) if _n==`x' } *Graficamos graph twoway line vary_hip vary_z experiencia graph save decomposition, replace graph twoway line sdeta_h experiencia graph save sdeta, replace