use file.dta, clear //Select data for PERIOD==0 gen y=dep_var //(GP/SPECIALIST/HOSPITAL/EMERGEN) gen x=score_income global X "YOUNG OLDER SRHCAT MCS2 CRONICA2 CRONICA3 CRONICA4 ACCIDENT" global Z "x _INIVELEST_2 _INIVELEST_3 _INIVELEST_456 _INIVELEST_78 INSURANCE _ITAMAMUN_2 _ITAMAMUN_3 _ITAMAMUN_4 _ILABSTATUS_2 _ILABSTATUS_3 _ILABSTATUS_456 PROV2 PROV3 PROV4 PROV5 PROV6 PROV7 PROV8" quietly regress y $X $Z drop if e(sample)~=1 * CONCENTRATION INDEX PERIOD==0 egen m_y0 = mean(y) sort x, stable gen rj=(_n-1)/_N gen r=rj+0.5/_N quietly sum r sca var_r = r(Var) egen rank = rank(x), unique tsset rank newey y r, lag(1) nlcom 2*var_r*(_b[r]/(_b[_cons]+0.5*_b[r]))/(1-m_y0) mat coef=r(b) mat var=r(V) sca CI0=coef[1,1] sca se0=sqrt(var[1,1]) sca t0=CI0/se0 display "CI Periodo 0", CI0, "Std Err", se0 * DECOMPOSITION OF INEQUALITY IN UTILISATION *********** * CONTRIBUTIONS OF NEED FACTORS PERIOD=0 qui dprobit y $X $Z mat dfdx=e(dfdx) sca need0=0 foreach x of global X { qui { mat b0_`x' = dfdx[1,`=colnumb(dfdx,"`x'")'] /* partial effect of x */ sca b0_`x' = b0_`x'[1,1] /* beta coeff. of x */ corr r `x', c sca cov0_`x' = r(cov_12) /* covariance b/w x and expenditure rank */ sum `x' sca m0_`x' = r(mean) /* mean of x */ sca elas0_`x' = (b0_`x'*m0_`x')/m_y0 /* elasticity of y with respect to x */ sca CI0_`x' = 2*cov0_`x'/m0_`x' /* concentration index for x in relation to expenditure */ sca con0_`x' = elas0_`x'*CI0_`x' /* contribution of x to CI for y in relation to household expenditure */ sca prcnt0_`x' = con0_`x'/CI0 /* percentage of CI for y accounted for by x */ sca need0=need0+con0_`x' /* contribution of all need factors */ } di "`x' elast:", elas0_`x', "`x' c_i:", CI0_`x', "`x' cont:", con0_`x', "`x' percont:", prcnt0_`x' } * CONTRIBUTIONS OF NON-NEED FACTORS PERIOD=0 sca nonneed0=0 foreach x of global Z { qui { mat b0N_`x' = dfdx[1,`=colnumb(dfdx,"`x'")'] sca b0N_`x' = b0N_`x'[1,1] /* beta coeff. of x */ corr r `x', c sca cov0N_`x' = r(cov_12) /* covariance b/w x and expenditure rank */ sum `x' sca m0N_`x' = r(mean) /* mean of x */ sca elas0N_`x' = (b0N_`x'*m0N_`x')/m_y0 /* elasticity of y with respect to x */ sca CI0N_`x' = 2*cov0N_`x'/m0N_`x' /* concentration index for x in relation to expenditure */ sca con0N_`x' = elas0N_`x'*CI0N_`x' /* contribution of x to CI for y in relation to household expenditure */ sca prcnt0N_`x' = con0N_`x'/CI0 /* percentage of CI for y accounted for by x */ sca nonneed0=nonneed0+con0N_`x' } di "`x' elast:", elas0N_`x', "`x' ci:", CI0N_`x', "`x' cont:", con0N_`x', "`x' percont:", prcnt0N_`x' } di "Inequality due to need factors P0:", need0 di "Inequality due to non-need factors P0:", nonneed0 sca HI0 = CI0 - need0 di "Horizontal Inequity Index P0:", HI0 di "CI", CI0 * CONCENTRATION INDEX PERIOD==1 use file.dta, clear //Select data for PERIOD==1 gen y=dep_var //(GP/SPECIALIST/HOSPITAL/EMERGEN) gen x=score_income quietly regress y $X $Z drop if e(sample)~=1 egen m_y1 = mean(y) sort x, stable gen rj1=(_n-1)/_N gen r1=rj1+0.5/_N quietly sum r1 sca var_r1 = r(Var) egen rank1 = rank(x), unique tsset rank1 newey y r1, lag(1) nlcom 2*var_r1*(_b[r1]/(_b[_cons]+0.5*_b[r1]))/(1-m_y1) mat coef=r(b) mat var=r(V) sca CI1=coef[1,1] sca se1=sqrt(var[1,1]) sca t1=CI1/se1 display "CI Periodo 1", CI1, "Std Err", se1 * DECOMPOSITION PERIOD 1 * CONTRIBUTIONS OF NEED FACTORS PERIOD=1 quietly dprobit y $X $Z mat dfdx=e(dfdx) sca need1=0 foreach x of global X { qui { mat b1_`x' = dfdx[1,`=colnumb(dfdx,"`x'")'] sca b1_`x' = b1_`x'[1,1] /* beta coeff. of x */ corr r1 `x', c sca cov1_`x' = r(cov_12) /* covariance b/w x and expenditure rank */ sum `x' sca m1_`x' = r(mean) /* mean of x */ sca elas1_`x' = (b1_`x'*m1_`x')/m_y1 /* elasticity of y with respect to x */ sca CI1_`x' = 2*cov1_`x'/m1_`x' /* concentration index for x in relation to expenditure */ sca con1_`x' = elas1_`x'*CI1_`x' /* contribution of x to CI for y in relation to household expenditure */ sca prcnt1_`x' = con1_`x'/CI1 /* percentage of CI for y accounted for by x */ sca need1=need1+con1_`x' /* contribution of all need factors */ } di "`x' elast:", elas1_`x', "`x' cind:", CI1_`x', "`x' con:", con1_`x', "`x' percon:", prcnt1_`x' } * CONTRIBUTIONS OF NON-NEED FACTORS PERIOD=1 sca nonneed1=0 foreach x of global Z { qui { mat b1N_`x' = dfdx[1,`=colnumb(dfdx,"`x'")'] sca b1N_`x' = b1N_`x'[1,1] /* beta coeff. of x */ corr r1 `x', c sca cov1N_`x' = r(cov_12) /* covariance b/w x and expenditure rank */ sum `x' sca m1N_`x' = r(mean) /* mean of x */ sca elas1N_`x' = (b1N_`x'*m1N_`x')/m_y1 /* elasticity of y with respect to x */ sca CI1N_`x' = 2*cov1N_`x'/m1N_`x' /* concentration index for x in relation to expenditure */ sca con1N_`x' = elas1N_`x'*CI1N_`x' /* contribution of x to CI for y in relation to household expenditure */ sca prcnt1N_`x' = con1N_`x'/CI1 /* percentage of CI for y accounted for by x */ sca nonneed1=nonneed1+con1N_`x' } di "`x' elast:", elas1N_`x', "`x' cind:", CI1N_`x', "`x' cont:", con1N_`x', "`x' percon:", prcnt1N_`x' } di "Inequality due to need factors P1:", need1 di "Inequality due to non-need factors P1:", nonneed1 sca HI1 = CI1 - need1 di "Horizontal Inequity Index P1:", HI1 di "CI1", CI1 ***DECOMPOSITION OF CHANGE - NEED foreach x of global X { qui { sca ChCoefN_`x'=elas1_`x'*(CI1_`x'-CI0_`x') sca ChElasN_`x'=CI0_`x'*(elas1_`x'-elas0_`x') sca ChangeN_`x'=ChCoefN_`x'+ChElasN_`x' } di "`x' ccoef:", ChCoefN_`x', "`x' celast:", ChElasN_`x' } ***DECOMPOSITION OF CHANGE - NONNEED foreach x of global Z { qui { sca ChCoefNoN_`x'=elas1N_`x'*(CI1N_`x'-CI0N_`x') sca ChElasNoN_`x'=CI0N_`x'*(elas1N_`x'-elas0N_`x') sca ChangeNoN_`x'=ChCoefNoN_`x'+ChElasNoN_`x' } di "`x' ccoef:", ChCoefNoN_`x',"`x' celastic:", ChElasNoN_`x' }