******************************************************************************************************** ******************************************************************************************************** ** ** ** REFORMING THE PUBLIC ADMNISTRATION: The Role of Crisis and the Power of Bureaucracy ** ** ** ** Authors: Zareh Asatryan (asatryan[at]zew.de) ** ** Friedrich Heinemann ** ** Hans Pitlik ** ** ** ** Working paper (July, 2015): http://ftp.zew.de/pub/zew-docs/dp/dp15049.pdf ** ** ** ** Paper forthcoming at EJPE ** ** ** ** The following DO-FILE generates all figures and tables as they appear in the final version. ** ** The data file (micref) is distributed along this do-file (see the paper for detailes on the data) ** ** ** ** DATE LAST UPDATED: 11 May, 2016 ** ** ** ******************************************************************************************************** ******************************************************************************************************** clear all set more off ******************************************************************************************************************************************* ** Load REFORM-LEVEL data ** ** Includes all structural reforms in MICREF: ** ** Available at: http://ec.europa.eu/economy_finance/db_indicators/micref/index_en.htm ** ** User-guide: http://ec.europa.eu/economy_finance/db_indicators/micref/documents/user_guide_en.pdf ** ** ** ** Already merged with: ** ** 1. Macro-vars: GDP real growth, Inflation, Log population, Share of working age population, Unemployment rate ** ** 2. Budget-vars: Budget deficits/GDP, Debt/GDP ** ** 3. Bureaucracy-size: Compensation share of employees in the administration, .. in the government ** ** 4. Governance*indices: WGI government effectiveness, WB doing business overall ** ** 5. EU-transfers: Structural actions, Structural funds, Convergence obj., Cohesion funds, Technical assistance ** ** 6. Spatial-reforms: Reforms weighted by distance & GDP, PA-Reforms w. distance & GDP, PA-Reforms w. distance & gov-effectiveness ** ** 7. Elections: Year-dummy for parlimentary or presidential elections ** use "micref.dta", clear *********************************************************** ** Classification of public administration (PA) reforms ** ** using MICREF's reform areas; see Table A2 of Appendix ** gen PA_reform =1 if reform_area==16 | reform_area==18 | reform_area==21 | reform_area==28 | reform_area==3 | reform_area==37 | reform_area==39 | reform_area==40 | reform_area==58 | reform_area==59 | reform_area==65 | reform_area==66 | reform_area==71 label variable PA_reform "Reform area related to public administration" * country-year frequency of PA reforms by Year_country : egen pa_reforms =count(PA_reform) *************************************************** ** FIGURE 1 ** ** yearly evolution of PA-reforms by reform area ** preserve sort Year_country foreach x in 3 16 18 21 28 37 39 40 58 59 65 66 71{ gen PA_reform_`x'=1 if reform_area==`x' by Year_country: egen pa_reforms_`x' =count(PA_reform_`x') drop PA_reform_`x' } keep if country_year_count==1 graph bar pa_reforms_3 pa_reforms_16 pa_reforms_18 pa_reforms_21 pa_reforms_28 pa_reforms_37 pa_reforms_39 pa_reforms_40 pa_reforms_58 pa_reforms_59 pa_reforms_65 pa_reforms_66 pa_reforms_71, /// over(year) stack legend(label(1 Administrative regulation in general) label(2 E-government) label(3 Efficiency of the legal system in general) label(4 Enforcement of contracts) label(5 Improving the quality of the regulation) label(6 Minimise startup requirements) label(7 Modernisation of the management) label(8 One stop contact points) label(9 Rationalising public administrative service) label(10 Reducing administrative burdens for startup) label(11 Simplification of tax system) label(12 Speedy settlement) label(13 Systematic monitoring) size(small)) /// ytitle(Number of reforms, size(small)) ylabel(0(1)4, labsize(small)) title(Average number of public administration reforms by year and reform area, size(small)) graph export "C:\Users\User\Desktop\reforms_overyears.pdf", as(pdf) replace restore ******************************************************************** ** FIGURE 2 ** ** PA- and structural reforms vs unemployment by year and country ** preserve keep if country_year_count==1 drop if year==2013 drop if country_name=="Croatia" gen temp0 = 0 twoway rarea temp0 unemploymentrate year, by(country) lpattern(solid) yaxis(2) color(gs12) || line pa_reforms year, by(country) lpattern(solid) || line Reforms year, by(country) lpattern(dash) ||, /// ytitle(Number of reforms, size(small)) xlabel(2000(4)2012, labsize(medsmall)) xtitle("") ytitle("Right Side", axis(2)) legend( label(1 "GDP growth") label(2 "Public administration reforms") label(3 "Structural reforms") ) graph export "C:\Users\User\Desktop\percountry_unemployment.pdf", as(pdf) replace restore ***************************************** ** TABLE 1 ** ** Reform-level descriptive statistics ** preserve replace PA_reform=0 if PA_reform==. foreach v in rev_expected exp_expected { gen `v'_n = 1 if `v' ==0 replace `v'_n = 0 if `v' ==1 | `v' ==2 } * T-test for difference in means of PA vs. Other reforms foreach var in regional eu_regulation eu_funding rev_expected_n rev_amount exp_expected_n exp_amount { estpost ttest `var', by( PA_reform) estout using C:\Users\User\Desktop\ttest.xls, append cells("N_1 mu_1 N_2 mu_1 p") } } restore ************************ ** DATA-Preparation ** preserve tab year, gen(year) tab country, gen(country) * bring to country-year level data keep if country_year_count==1 tsset country year * define control variable local c_gov Ln_Population Population_workage GDP_growth Inflation local c_base Ln_Population Population_workage local years year1-year14 local countries country1-country28 ******************************************* ** TABLE 2 ** ** Reforms and Governance-Indices: ** ** i) WB-WGI Governance effectiveness ** ** ii) WB Doing Business overall ** foreach dv in wbgi_gee db_overall_dtf_new{ foreach var in pa_reforms Reforms{ foreach t in 1 2{ xtivreg2 `dv' l`t'.`var' `c_gov' `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_governance, e(F) tex(frag) dec(3) excel drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14) sortvar(Reforms pa_reforms) append } } } ************************ ** TABLE 3 ** ** Baseline Results ** foreach y in admincomp govcomp{ foreach x in GDP_growth unemploymentrate eu_debt_gdp eu_balance_gdp{ foreach t in 1{ xtivreg2 f`t'.pa_reforms `x' `y' `c_base' `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_pa, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp admincomp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append gen `x'_`y' = `x'*`y' xtivreg2 f`t'.pa_reforms `x' `y' `x'_`y' `c_base' `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_pa, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp admincomp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append drop `x'_`y' } } } ******************************************* ** FIGUREs 3 & 4 ** ** Marginal Effect ** ** for: Table 3 ** ** for graphs w. background histograms ** ** (as in the paper) see end of fo-file ** foreach x in GDP_growth unemploymentrate eu_debt_gdp eu_balance_gdp{ *crisis X admincomp xtreg f1.pa_reforms c.`x'##c.admincomp `c_base' `years', fe cluster(country) margins, dydx(`x') at(admincomp=(0(1)25)) marginsplot, yline(0) graph export C:\Users\User\Desktop\adminc_`x'.pdf, as(pdf) replace *crisis X govcomp xtreg f1.pa_reforms c.`x'##c.govcomp `c_base' `years', fe cluster(country) margins, dydx(`x') at(govcomp=(10(1)40)) marginsplot, yline(0) graph export C:\Users\User\Desktop\govc_`x'.pdf, as(pdf) replace } ************************************ ** TABLE 4 ** ** Robustness of baseline to: ** ** i) conditional fe poisson ** ** ii) all reforms (not only PA) ** foreach var in Reforms{ foreach y in admincomp{ foreach x in GDP_growth unemploymentrate eu_debt_gdp eu_balance_gdp{ foreach t in 1{ *poisson xtpoisson f`t'.pa_reforms `x' `y' `c_base' `years', fe vce(robust) outreg2 using C:\Users\User\Desktop\reforms_poisson, e(F ll chi2) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp admincomp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append gen `x'_`y' = `x'*`y' xtpoisson f`t'.pa_reforms `x' `y' `x'_`y' `c_base' `years', fe vce(robust) outreg2 using C:\Users\User\Desktop\reforms_poisson, e(F ll chi2) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp admincomp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append *all reforms xtivreg2 f`t'.`var' `x' `y' `c_base' `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_all, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append xtivreg2 f`t'.`var' `x' `y' `x'_`y' `c_base' `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_all, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append drop `x'_`y' } } } } ************************* ** TABLE 5 ** ** Reverse causality ** foreach dv in pa_reforms pa_reforms_costpos pa_reforms_costneg pa_reforms_costzero{ foreach y in admincomp{ foreach t in 0 1 2{ xtivreg2 f`t'.`y' `dv' `c_base' unemploymentrate eu_debt_gdp `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_reverse, e(F) tex(frag) dec(3) excel sortvar(govcomp govcompgdp admincomp adminemp pa_reforms GDP_growth unemploymentrate eu_debt_gdp eu_balance_gdp Ln_Population Population_workage ) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append } } } *************************************** ** TABLE 6 ** ** Vertical & Horizontal learning: ** ** i) EU-transfers ** ** ii) Sptatial interactions ** foreach y in str_action str_fund converg coh_fund tech_assist{ foreach t in 0 1{ xtivreg2 f`t'.pa_reforms `y' `c_base' admincomp `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_EUtransfers, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append } } foreach y in spatial_Reforms_dist_gdp spatial_pa_reforms_dist_gdp spatial_pa_reforms_dist_pse{ foreach t in 0 1{ xtivreg2 f`t'.pa_reforms `y' `c_base' admincomp, fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_spatial, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append } } **************************************** ** FIGURE 5 ** ** Electoral cycles ** ** See graph: reforms_elections.xls ** local elections1 f1.dpi_elec dpi_elec l1.dpi_elec local elections2 f2.dpi_elec f1.dpi_elec dpi_elec l1.dpi_elec l2.dpi_elec foreach var in pa_reforms Reforms{ xtivreg2 `var' `elections1' `c_base' admincomp `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_elections, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp admincomp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append xtivreg2 `var' `elections2' `c_base' admincomp `years', fe cluster(country) outreg2 using C:\Users\User\Desktop\reforms_elections, e(F) tex(frag) dec(3) excel sortvar(Reforms pa_reforms GDP_growth crisis unemploymentrate eu_debt_gdp Inflation Ln_Population Population_workage govcomp govcompgdp admincomp adminemp) drop(year1 year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 country1 country2 country3 country4 country5 country6 country7 country8 country9 country10 country11 country12 country13 country14 country15 country16 country17 country18 country19 country20 country21 country22 country23 country24 country25 country26 country27 country28) append } ************************** ** TABLE A1 ** ** Summary statistics ** estpost summarize /// pa_reforms Reforms /// Reforms_competition Reforms_educ Reforms_busenv Reforms_integr Reforms_rd Reforms_sector Reforms_startup /// GDP_growth unemploymentrate eu_debt_gdp eu_balance_gdp /// Ln_Population Population_workage Inflation /// govcomp admincomp /// wbgi_gee db_overall_dtf_new /// str_action str_fund converg coh_fund tech_assist /// spatial_Reforms_dist_gdp spatial_pa_reforms_dist_gdp spatial_pa_reforms_dist_pse /// dpi_elec estout using C:\Users\User\Desktop\summary_stats.xls, append cells("count mean sd min max") ******************************************************************************************** ** TABLE A2 ** ** Description of PA reforms ** ** Extracted from MICREF's user guide: ** ** http://ec.europa.eu/economy_finance/db_indicators/micref/documents/user_guide_en.pdf ** ** for the reforms areas # 3 16 18 21 28 37 39 40 58 59 65 66 71 ** restore ************************************** ** FIGUREs 3 & 4 ** ** Marginal Effects ** ** graphs w. background histograms ** ** for: Table 3 ** do "ME_plots.do" **