* ============================== * R3: * New Table 1 * Setting LTHS as a reference group * ============================== clear use /home/chkim/Documents/Paper_Journals/2009/2009_NewDetailDcp/data/newdeco01.dta, clear keep if female==0 keep if age>=25 & age<54 * ============================== * recode * ============================== forval i = 1/5 { egen edu`i'bar=mean(educ`i') gen edu`i'new=educ`i'-edu`i'bar } gen ba = educ==4 | educ==5 tab agegrp, gen(agegrp) forval i = 1/3 { egen agegrp`i'bar=mean(agegrp`i') gen agegrp`i'new=agegrp`i'-agegrp`i'bar } gen region = 1 if state<=23 replace region = 2 if state>=31 & state<=47 replace region = 3 if state>=51 & state<=74 replace region = 4 if state>=81 & state<=95 tab region, gen(region) gen south=state>=51 & state<=74 gen marriage = 1 if marital==7 replace marriage = 2 if marital==1 replace marriage = 3 if marital>=2 & marital<=6 tab marriage, gen(marriage) drop married gen married = marriage==2 * ============================== * descriptive stats * ============================== tabstat lnwage educ1-educ5 agegrp1-agegrp3 marriage1-marriage3, by(black) lo c(s) * ============================== * regression model * ============================== * Model Specification 1 reg lnwage educ2-educ5 agegrp2 agegrp3 marriage2 marriage3 if black==0 reg lnwage educ2-educ5 agegrp2 agegrp3 marriage2 marriage3 if black==1 * Model Specification 2 reg lnwage educ3-educ5 agegrp2 agegrp3 married if black==0 reg lnwage educ3-educ5 agegrp2 agegrp3 married if black==1 * Model Specification 3 reg lnwage educ2-educ3 ba agegrp2 agegrp3 married if black==0 reg lnwage educ2-educ3 ba agegrp2 agegrp3 married if black==1 * ============================== * Model Specification 1 * ============================== tabstat lnwage educ1-educ5 agegrp1-agegrp3 marriage1-marriage3, by(black) matrix X1=(.0406429, .2894757, .2809797, .2632606, .125641 , .3277076, .337964 , .3343284, .2192499, .6580941, .122656, 1) matrix X2=(.0666945, .3643185, .3117966, .1821592, .0750313, .3230513, .3480617, .328887 , .3451438, .4827011, .1721551, 1) * ------------------------------ * Averaging method decomposition * ------------------------------ reg lnwage educ2-educ5 agegrp2 agegrp3 marriage2 marriage3 if black==0 matrix e1=e(b) matrix e1=(0,e1[1,1..4],0,e1[1,5..6],0,e1[1,7..8],e1[1,9]) matrix V1=e(V) matrix V1edu1=V1[1..4, 1..4] matrix V1edu2=V1[1..4, 5..6] matrix V1edu3=V1[1..4, 7..8] matrix V1age1=V1[5..6, 1..4] matrix V1age2=V1[5..6, 5..6] matrix V1age3=V1[5..6, 7..8] matrix V1mar1=V1[7..8, 1..4] matrix V1mar2=V1[7..8, 5..6] matrix V1mar3=V1[7..8, 7..8] matrix V1educ=V1[9, 1..4] matrix V1eduT=V1educ' matrix V1agec=V1[9, 5..6] matrix V1ageT=V1agec' matrix V1marc=V1[9, 7..8] matrix V1marT=V1marc' matrix V1con=V1[9, 9] reg lnwage educ2-educ5 agegrp2 agegrp3 marriage2 marriage3 if black==1 matrix e2=e(b) matrix e2=(0,e2[1,1..4],0,e2[1,5..6],0,e2[1,7..8],e2[1,9]) matrix V2=e(V) matrix V2edu1=V1[1..4, 1..4] matrix V2edu2=V1[1..4, 5..6] matrix V2edu3=V1[1..4, 7..8] matrix V2age1=V1[5..6, 1..4] matrix V2age2=V1[5..6, 5..6] matrix V2age3=V1[5..6, 7..8] matrix V2mar1=V1[7..8, 1..4] matrix V2mar2=V1[7..8, 5..6] matrix V2mar3=V1[7..8, 7..8] matrix V2educ=V1[9, 1..4] matrix V2eduT=V1educ' matrix V2agec=V1[9, 5..6] matrix V2ageT=V1agec' matrix V2marc=V1[9, 7..8] matrix V2marT=V1marc' matrix V2con=V1[9, 9] * Weight matrix w=(I(5)-1/5*J(5,5,1), J(5,3,0), J(5,3,0), J(5,1,0)\ /* */ J(3,5,0), I(3)-1/3*J(3,3,1), J(3,3,0), J(3,1,0)\ /* */ J(3,5,0), J(3,3,0), I(3)-1/3*J(3,3,1), J(3,1,0)\ /* */ J(1,5,1/5), J(1,3,1/3), J(1,3,1/3), 1) * ----------------------------------------------------------------------------------- * make decomposition program for model specification 1 * ----------------------------------------------------------------------------------- capture program drop decomposition1 program define decomposition1 * Rearrange the variance-covariance matrix matrix cv1b=(0, J(1,4,0), 0, J(1,2,0), 0, J(1,2,0), 0 \ /* */ J(4,1,0), V1edu1, J(4,1,0), V1edu2, J(4,1,0), V1edu3, V1eduT \ /* */ 0, J(1,4,0), 0, J(1,2,0), 0, J(1,2,0), 0 \ /* */ J(2,1,0), V1age1, J(2,1,0), V1age2, J(2,1,0), V1age3, V1ageT \ /* */ 0, J(1,4,0), 0, J(1,2,0), 0, J(1,2,0), 0 \ /* */ J(2,1,0), V1mar1, J(2,1,0), V1mar2, J(2,1,0), V1mar3, V1marT \ /* */ 0, V1educ, 0, V1agec, 0, V1marc, V1con) matrix cv2b=(0, J(1,4,0), 0, J(1,2,0), 0, J(1,2,0), 0 \ /* */ J(4,1,0), V2edu1, J(4,1,0), V2edu2, J(4,1,0), V2edu3, V2eduT \ /* */ 0, J(1,4,0), 0, J(1,2,0), 0, J(1,2,0), 0 \ /* */ J(2,1,0), V2age1, J(2,1,0), V2age2, J(2,1,0), V2age3, V2ageT \ /* */ 0, J(1,4,0), 0, J(1,2,0), 0, J(1,2,0), 0 \ /* */ J(2,1,0), V2mar1, J(2,1,0), V2mar2, J(2,1,0), V2mar3, V2marT \ /* */ 0, V2educ, 0, V2agec, 0, V2marc, V2con) * normalized coefficients & variance(standard errors) matrix ne1=w*e1' matrix ne1=ne1' matrix nV1=w*cv1b*w' matrix ne2=w*e2' matrix ne2=ne2' matrix nV2=w*cv2b*w' matrix list ne1 matrix list ne2 matrix list nV1 matrix nV10=vecdiag(nV1)' matrix nV10=diag(nV10) matrix seD1=cholesky(nV10) matrix seD1=vecdiag(seD1)' matrix list seD1 /* standard error of D1 */ matrix list nV2 matrix nV20=vecdiag(nV2)' matrix nV20=diag(nV20) matrix seD2=cholesky(nV20) matrix seD2=vecdiag(seD2)' matrix list seD2 /* standard error of D1 */ * Decomposition: coefficients matrix X1edu=X1[1, 1..5] matrix X1age=X1[1, 6..8] matrix X1mar=X1[1, 9..11] matrix X2edu=X2[1, 1..5] matrix X2age=X2[1, 6..8] matrix X2mar=X2[1, 9..11] matrix V1edu=nV1[1..5, 1..5] matrix V1age=nV1[6..8, 6..8] matrix V1mar=nV1[9..11, 9..11] matrix V2edu=nV2[1..5, 1..5] matrix V2age=nV2[6..8, 6..8] matrix V2mar=nV2[9..11, 9..11] matrix D1=X2'*(ne1-ne2) matrix list D1 matrix D1=vecdiag(D1)' matrix list D1 matrix D2=(X1-X2)'*ne1 matrix list D2 matrix D2=vecdiag(D2)' matrix list D2 * standard deviation matrix vD1edu=X2edu*(V1edu+V2edu)'*X2edu' matrix sD1edu=cholesky(vD1edu) matrix list sD1edu matrix vD1age=X2age*(V1age+V2age)'*X2age' matrix sD1age=cholesky(vD1age) matrix list sD1age matrix vD1mar=X2mar*(V1mar+V2mar)'*X2mar' matrix sD1mar=cholesky(vD1mar) matrix list sD1mar matrix vD1=X2*(nV1+nV2)'*X2' matrix sD1=cholesky(vD1) matrix list sD1 matrix vD2edu=(X1edu-X2edu)*V1edu*(X1edu-X2edu)' matrix sD2edu=cholesky(vD2edu) matrix list sD2edu matrix vD2age=(X1age-X2age)*V1age*(X1age-X2age)' matrix sD2age=cholesky(vD2age) matrix list sD2age matrix vD2mar=(X1mar-X2mar)*V1mar*(X1mar-X2mar)' matrix sD2mar=cholesky(vD2mar) matrix list sD2mar matrix vD2=(X1-X2)*nV1*(X1-X2)' matrix sD2=cholesky(vD2) matrix list sD2 * Final Results: coefficients & standard errors display "Final Results: coefficients & standard errors" matrix list D1 matrix list D2 matrix list seD1 matrix list seD2 matrix list sD1edu matrix list sD1age matrix list sD1mar matrix list sD1 matrix list sD2edu matrix list sD2age matrix list sD2mar matrix list sD2 end * ----------------------------------------------------------------------------------- decomposition1 * ------------------------------ * GMW method decomposition * ------------------------------ * Weight tab educ matrix wedu=(.0428336, .2957692, .2835711, .2564408, .1213853) matrix wage=(.3273161, .3388131, .3338708) matrix wmar=(.2298363, .6433454, .1268183) matrix w=(I(5)-J(5,5,1)*diag(wedu), J(5,3,0), J(5,3,0), J(5,1,0)\ /* */ J(3,5,0), I(3)-J(3,3,1)*diag(wage), J(3,3,0), J(3,1,0)\ /* */ J(3,5,0), J(3,3,0), I(3)-J(3,3,1)*diag(wmar), J(3,1,0)\ /* */ wedu, wage, wmar, 1) matrix list w * run decomposition program defined above decomposition1 * ============================== * Model Specification 2 * ============================== matrix X1=((.0406429+.2894757), .2809797, .2632606, .125641 , .3277076, .337964 , .3343284, (1-.6580941), .6580941, 1) matrix X2=((.0666945+.3643185), .3117966, .1821592, .0750313, .3230513, .3480617, .328887 , (1-.4827011), .4827011, 1) * ------------------------------ * Averaging method decomposition * ------------------------------ reg lnwage educ3-educ5 agegrp2 agegrp3 married if black==0 matrix e1=e(b) matrix e1=(0,e1[1,1..3],0,e1[1,4..5],0,e1[1,6],e1[1,7]) matrix V1=e(V) matrix V1edu1=V1[1..3, 1..3] matrix V1edu2=V1[1..3, 4..5] matrix V1edu3=V1[1..3, 6] matrix V1age1=V1[4..5, 1..3] matrix V1age2=V1[4..5, 4..5] matrix V1age3=V1[4..5, 6] matrix V1mar1=V1[6, 1..3] matrix V1mar2=V1[6, 4..5] matrix V1mar3=V1[6, 6] matrix V1educ=V1[7, 1..3] matrix V1eduT=V1educ' matrix V1agec=V1[7, 4..5] matrix V1ageT=V1agec' matrix V1marc=V1[7, 6] matrix V1marT=V1marc' matrix V1con=V1[7, 7] reg lnwage educ3-educ5 agegrp2 agegrp3 married if black==1 matrix e2=e(b) matrix e2=(0,e2[1,1..3],0,e2[1,4..5],0,e2[1,6],e2[1,7]) matrix V2=e(V) matrix V2edu1=V2[1..3, 1..3] matrix V2edu2=V2[1..3, 4..5] matrix V2edu3=V2[1..3, 6] matrix V2age1=V2[4..5, 1..3] matrix V2age2=V2[4..5, 4..5] matrix V2age3=V2[4..5, 6] matrix V2mar1=V2[6, 1..3] matrix V2mar2=V2[6, 4..5] matrix V2mar3=V2[6, 6] matrix V2educ=V2[7, 1..3] matrix V2eduT=V2educ' matrix V2agec=V2[7, 4..5] matrix V2ageT=V2agec' matrix V2marc=V2[7, 6] matrix V2marT=V2marc' matrix V2con=V2[7, 7] * Weight matrix w=(I(4)-1/4*J(4,4,1), J(4,3,0), J(4,2,0), J(4,1,0)\ /* */ J(3,4,0), I(3)-1/3*J(3,3,1), J(3,2,0), J(3,1,0)\ /* */ J(2,4,0), J(2,3,0), I(2)-1/2*J(2,2,1), J(2,1,0)\ /* */ J(1,4,1/4), J(1,3,1/3), J(1,2,1/2), 1) * ----------------------------------------------------------------------------------- * make decomposition program for model specification 2 * ----------------------------------------------------------------------------------- capture program drop decomposition2 program define decomposition2 * Rearrange the variance-covariance matrix matrix cv1b=(0, J(1,3,0), 0, J(1,2,0), 0, J(1,1,0), 0 \ /* */ J(3,1,0), V1edu1, J(3,1,0), V1edu2, J(3,1,0), V1edu3, V1eduT \ /* */ 0, J(1,3,0), 0, J(1,2,0), 0, J(1,1,0), 0 \ /* */ J(2,1,0), V1age1, J(2,1,0), V1age2, J(2,1,0), V1age3, V1ageT \ /* */ 0, J(1,3,0), 0, J(1,2,0), 0, J(1,1,0), 0 \ /* */ J(1,1,0), V1mar1, J(1,1,0), V1mar2, J(1,1,0), V1mar3, V1marT \ /* */ 0, V1educ, 0, V1agec, 0, V1marc, V1con) matrix cv2b=(0, J(1,3,0), 0, J(1,2,0), 0, J(1,1,0), 0 \ /* */ J(3,1,0), V2edu1, J(3,1,0), V2edu2, J(3,1,0), V2edu3, V2eduT \ /* */ 0, J(1,3,0), 0, J(1,2,0), 0, J(1,1,0), 0 \ /* */ J(2,1,0), V2age1, J(2,1,0), V2age2, J(2,1,0), V2age3, V2ageT \ /* */ 0, J(1,3,0), 0, J(1,2,0), 0, J(1,1,0), 0 \ /* */ J(1,1,0), V2mar1, J(1,1,0), V2mar2, J(1,1,0), V2mar3, V2marT \ /* */ 0, V2educ, 0, V2agec, 0, V2marc, V2con) * normalized coefficients & variance(standard errors) matrix ne1=w*e1' matrix ne1=ne1' matrix nV1=w*cv1b*w' matrix ne2=w*e2' matrix ne2=ne2' matrix nV2=w*cv2b*w' matrix list ne1 matrix list ne2 matrix list nV1 matrix nV10=vecdiag(nV1)' matrix nV10=diag(nV10) matrix seD1=cholesky(nV10) matrix seD1=vecdiag(seD1)' matrix list seD1 /* standard error of D1 */ matrix list nV2 matrix nV20=vecdiag(nV2)' matrix nV20=diag(nV20) matrix seD2=cholesky(nV20) matrix seD2=vecdiag(seD2)' matrix list seD2 /* standard error of D1 */ * Decomposition: coefficients matrix X1edu=X1[1, 1..4] matrix X1age=X1[1, 5..7] matrix X1mar=X1[1, 8..9] matrix X2edu=X2[1, 1..4] matrix X2age=X2[1, 5..7] matrix X2mar=X2[1, 8..9] matrix V1edu=nV1[1..4, 1..4] matrix V1age=nV1[5..7, 5..7] matrix V1mar=nV1[8..9, 8..9] matrix V2edu=nV2[1..4, 1..4] matrix V2age=nV2[5..7, 5..7] matrix V2mar=nV2[8..9, 8..9] matrix D1=X2'*(ne1-ne2) matrix list D1 matrix D1=vecdiag(D1)' matrix list D1 matrix D2=(X1-X2)'*ne1 matrix list D2 matrix D2=vecdiag(D2)' matrix list D2 * standard deviation matrix vD1edu=X2edu*(V1edu+V2edu)'*X2edu' matrix sD1edu=cholesky(vD1edu) matrix list sD1edu matrix vD1age=X2age*(V1age+V2age)'*X2age' matrix sD1age=cholesky(vD1age) matrix list sD1age matrix vD1mar=X2mar*(V1mar+V2mar)'*X2mar' matrix sD1mar=cholesky(vD1mar) matrix list sD1mar matrix vD1=X2*(nV1+nV2)'*X2' matrix sD1=cholesky(vD1) matrix list sD1 matrix vD2edu=(X1edu-X2edu)*V1edu*(X1edu-X2edu)' matrix sD2edu=cholesky(vD2edu) matrix list sD2edu matrix vD2age=(X1age-X2age)*V1age*(X1age-X2age)' matrix sD2age=cholesky(vD2age) matrix list sD2age matrix vD2mar=(X1mar-X2mar)*V1mar*(X1mar-X2mar)' matrix sD2mar=cholesky(vD2mar) matrix list sD2mar matrix vD2=(X1-X2)*nV1*(X1-X2)' matrix sD2=cholesky(vD2) matrix list sD2 * Final Results: coefficients & standard errors display "Final Results: coefficients & standard errors" matrix list D1 matrix list D2 matrix list seD1 matrix list seD2 matrix list sD1edu matrix list sD1age matrix list sD1mar matrix list sD1 matrix list sD2edu matrix list sD2age matrix list sD2mar matrix list sD2 end * ----------------------------------------------------------------------------------- decomposition2 * ------------------------------ * GMW method decomposition * ------------------------------ * Weight tab educ matrix wedu=((.0428336+.2957692), .2835711, .2564408, .1213853) matrix wage=(.3273161, .3388131, .3338708) matrix wmar=((1-.6433454), .6433454) matrix w=(I(4)-J(4,4,1)*diag(wedu), J(4,3,0), J(4,2,0), J(4,1,0)\ /* */ J(3,4,0), I(3)-J(3,3,1)*diag(wage), J(3,2,0), J(3,1,0)\ /* */ J(2,4,0), J(2,3,0), I(2)-J(2,2,1)*diag(wmar), J(2,1,0)\ /* */ wedu, wage, wmar, 1) matrix list w * run decomposition program defined above decomposition2 * ============================== * Model Specification 3 * ============================== matrix X1=(.0406429, .2894757, .2809797, (.2632606+.125641 ), .3277076, .337964 , .3343284, (1-.6580941), .6580941, 1) matrix X2=(.0666945, .3643185, .3117966, (.1821592+.0750313), .3230513, .3480617, .328887 , (1-.4827011), .4827011, 1) * ------------------------------ * Averaging method decomposition * ------------------------------ reg lnwage educ2-educ3 ba agegrp2 agegrp3 married if black==0 matrix e1=e(b) matrix e1=(0,e1[1,1..3],0,e1[1,4..5],0,e1[1,6],e1[1,7]) matrix V1=e(V) matrix V1edu1=V1[1..3, 1..3] matrix V1edu2=V1[1..3, 4..5] matrix V1edu3=V1[1..3, 6] matrix V1age1=V1[4..5, 1..3] matrix V1age2=V1[4..5, 4..5] matrix V1age3=V1[4..5, 6] matrix V1mar1=V1[6, 1..3] matrix V1mar2=V1[6, 4..5] matrix V1mar3=V1[6, 6] matrix V1educ=V1[7, 1..3] matrix V1eduT=V1educ' matrix V1agec=V1[7, 4..5] matrix V1ageT=V1agec' matrix V1marc=V1[7, 6] matrix V1marT=V1marc' matrix V1con=V1[7, 7] reg lnwage educ2-educ3 ba agegrp2 agegrp3 married if black==1 matrix e2=e(b) matrix e2=(0,e2[1,1..3],0,e2[1,4..5],0,e2[1,6],e2[1,7]) matrix V2=e(V) matrix V2edu1=V2[1..3, 1..3] matrix V2edu2=V2[1..3, 4..5] matrix V2edu3=V2[1..3, 6] matrix V2age1=V2[4..5, 1..3] matrix V2age2=V2[4..5, 4..5] matrix V2age3=V2[4..5, 6] matrix V2mar1=V2[6, 1..3] matrix V2mar2=V2[6, 4..5] matrix V2mar3=V2[6, 6] matrix V2educ=V2[7, 1..3] matrix V2eduT=V2educ' matrix V2agec=V2[7, 4..5] matrix V2ageT=V2agec' matrix V2marc=V2[7, 6] matrix V2marT=V2marc' matrix V2con=V2[7, 7] * Weight matrix w=(I(4)-1/4*J(4,4,1), J(4,3,0), J(4,2,0), J(4,1,0)\ /* */ J(3,4,0), I(3)-1/3*J(3,3,1), J(3,2,0), J(3,1,0)\ /* */ J(2,4,0), J(2,3,0), I(2)-1/2*J(2,2,1), J(2,1,0)\ /* */ J(1,4,1/4), J(1,3,1/3), J(1,2,1/2), 1) decomposition2 * ------------------------------ * GMW method decomposition * ------------------------------ * Weight matrix wedu=(.0428336, .2957692, .2835711, (.2564408+.1213853)) matrix wage=(.3273161, .3388131, .3338708) matrix wmar=((1-.6433454), .6433454) matrix w=(I(4)-J(4,4,1)*diag(wedu), J(4,3,0), J(4,2,0), J(4,1,0)\ /* */ J(3,4,0), I(3)-J(3,3,1)*diag(wage), J(3,2,0), J(3,1,0)\ /* */ J(2,4,0), J(2,3,0), I(2)-J(2,2,1)*diag(wmar), J(2,1,0)\ /* */ wedu, wage, wmar, 1) matrix list w * run decomposition program defined above decomposition2