clear version 9 /* cd c:\myfiles-2008\hibbs-piculescu\ajps-final-2009-06-15\stata\ */ use ajps-2010.dta *Save data in a working data file "analysis_temp.dta" save analysis_temp.dta, replace **************************************************** * RECODE THE B_variables WITH A REVERSED SCALE **************************************************** * label define obstacles 1 "Major obstacle" 2 "Moderate obstacle" 3 "Minor obstacle" 4 "No obstacle" * ACCESS TO FINANCE gen q49finr=5-q49fin label values q49finr obstacles label var q49finr "Finance (1=Major Obs, 4=No Obs)" * COURTS gen q49judr=5-q49jud label values q49judr obstacles label var q49judr "Justice (1=Major Obs, 4=No Obs)" * BUSINESS LICENSES gen q17licr=5-q17lic label values q17licr obstacles label var q17licr "Business Licenses (1=Major Obs, 4=No Obs)" * LABOUR REGULATIONS gen q17labr=5-q17lab label values q17labr obstacles label var q17labr "Labor Regulations (1=Major Obs, 4=No Obs)" * ENVIRONMENTAL REGULATIONS gen q17envr=5-q17env label values q17envr obstacles label var q17envr "Environment Regulations (1=Major Obs, 4=No Obs)" * FIRE AND SAFETY REGULATIONS gen q17firr=5-q17fir label values q17firr obstacles label var q17firr "Fire&Safety Regulations (1=Major Obs, 4=No Obs)" * FOREIGN EXCHANGE REGULATIONS gen q17forr=5-q17for label values q17forr obstacles label var q17forr "Foreign Exchange Regulations (1=Major Obs, 4=No Obs)" * CUSTOMS REGULATIONS gen q17cusr=5-q17cus label values q17cusr obstacles label var q17cusr "Customs Regulations (1=Major Obs, 4=No Obs)" ********************************************************************************************************** * CREATE A COMPOSITE INDEX FOR INSTITUTIONAL SERVICES (called INSTIT) (simple average for the 8 variables) ********************************************************************************************************** gen instit=(q49finr+q49judr+q17cusr)/3 gen reg=(q17licr+q17envr+q17firr+q17forr)/4 encode country, gen(ctryid) ****************************************************************** * MARK & keep OBS with NO MISSING DATA FOR THE SELECTION VARIABLES ****************************************************************** mark smpl3686 markout smpl3686 q17hit ctax_umich paytax99 instit reg q17labr q48a assets_new ************************************* * Keep only the variables of interest ************************************* keep region country ctryid q17hit q48a instit reg q17labr /// ctax_umich paytax99 assets_new smpl3686 sort ctryid ********************************** * Recode Assets ************************************ gen nassets=assets_new recode nassets 1=125 2=375 3=750 4=1500 5=3500 6=7500 7=15000 8=35000 9=225000 11=500000 gen lnassets=ln(nassets+1) ********HIGH TAXES RECODED (1=Major Obstacle, 4=No Obstacle)************* recode q17hit 1=4 2=3 3=2 4=1 label values q17hit obstacles label var q17hit "High Taxes as Obstacles (1=Major Obs, 4=No Obs)" ********************************************************************************* * Logs -- NOTE THAT I DO ADD +1 TO THE ARGUMENTS OF LOG VARIABLES ********************************************************************************* gen lctax=ln(ctax_umich) gen lpaytax=ln(paytax99) gen linstit=ln(instit+1) gen lreg=ln(reg+1) gen llab=ln(q17labr+1) gen lhightax=ln(q17hit+1) display "Ordinal Tax Toleration asssuming interval insitutions" ologit q17hit linstit lpaytax llab lnassets /// if smpl3686==1, cluster(country) nolog tab instit, gen(instit_dum) display "Ordinal Tax Toleration, testing for interval institutions variable" ologit q17hit linstit instit_dum3 instit_dum4 instit_dum5 instit_dum6 instit_dum7 /// instit_dum8 instit_dum9 instit_dum10 lpaytax llab lnassets /// if smpl3686==1, cluster(country) nolog test instit_dum3 instit_dum4 instit_dum5 instit_dum6 instit_dum7 /// instit_dum8 instit_dum9 instit_dum10 display "Ordinal Tax Toleration, testing for interval labour regulations variable" tab q17labr, gen(lab_dum) ologit q17hit instit_dum2 instit_dum3 instit_dum4 instit_dum5 instit_dum6 /// instit_dum7 instit_dum8 instit_dum9 instit_dum10 lpaytax llab lab_dum3 lab_dum4 lnassets /// if smpl3686==1, cluster(country) nolog test lab_dum3 lab_dum4 display "Ordinal Tax Toleration, testing for interval assets variable" tab lnassets, gen(assets_dum) ologit q17hit instit_dum2 instit_dum3 instit_dum4 instit_dum5 instit_dum6 /// instit_dum7 instit_dum8 instit_dum9 instit_dum10 lpaytax llab lnassets /// assets_dum3 assets_dum4 assets_dum5 assets_dum6 assets_dum7 assets_dum8 assets_dum9 assets_dum10 /// if smpl3686==1, cluster(country) nolog test assets_dum3 assets_dum4 assets_dum5 assets_dum6 assets_dum7 assets_dum8 assets_dum9 assets_dum10 display "Model 1 Ordinal Tax Toleration with ordinal institutions" ologit q17hit instit_dum2 instit_dum3 instit_dum4 instit_dum5 instit_dum6 /// instit_dum7 instit_dum8 instit_dum9 instit_dum10 lpaytax llab lnassets /// if smpl3686==1, cluster(country) nolog display "PREDICTED PROBABILITIES FOR TAX TOLERATION" prvalue if smpl3686==1 prchange instit_dum2 instit_dum3 instit_dum4 instit_dum5 instit_dum6 instit_dum7 instit_dum8 instit_dum9 instit_dum10 lpaytax llab lnassets if smpl3686==1, rest(mean) ******************************************************* * Generate Reported Sales: 1 for <25% to 8 =100% ******************************************************* * Reverse coding scale for reported sales gen noevasion=8-q48a /* Creation of variables "X_hit4" for to impost the constraint that all right-side terms are zero if Tax Toleration == 4, no problem" */ gen linstit_hit4 = linstit replace linstit_hit4 =0 if q17hit==4 gen lreg_hit4 = lreg replace lreg_hit4 =0 if q17hit==4 gen llab_hit4 = llab replace llab_hit4 =0 if q17hit==4 gen lctax_hit4 = lctax replace lctax_hit4 =0 if q17hit==4 gen lpaytax_hit4 = lpaytax replace lpaytax_hit4 =0 if q17hit==4 gen lhightax_hit4 = lhightax replace lhightax_hit4 =0 if q17hit==4 gen lnassets_hit4 = lnassets replace lnassets_hit4 =0 if q17hit==4 ***************************************************** * MODEL 2 ****************************************************** display "testing restriction that toleration<4 terms==0" ologit noevasion linstit_hit4 lreg_hit4 lctax_hit4 lpaytax_hit4 llab_hit4 lnassets_hit4 /// linstit lreg lctax lpaytax llab lnassets /// if smpl3686==1, cluster(country) nolog test linstit lreg lctax lpaytax llab lnassets display "TEST INTERVAL INSTITUTIONS -- interval test passes" * Creation of instit_hit4 dummies for institutions interval test gen newinstit=linstit_hit4 tab newinstit, gen(newinstit_dum) ologit noevasion newinstit lreg_hit4 lctax_hit4 lpaytax_hit4 llab_hit4 lnassets_hit4 /// newinstit_dum3 newinstit_dum4 newinstit_dum5 newinstit_dum6 /// newinstit_dum7 newinstit_dum8 newinstit_dum9 newinstit_dum10 newinstit_dum11 /// if smpl3686==1, cluster(country) nolog test newinstit_dum3 newinstit_dum4 newinstit_dum5 newinstit_dum6 /// newinstit_dum7 newinstit_dum8 newinstit_dum9 newinstit_dum10 newinstit_dum11 display "TEST INTERVAL REGULATIONS OFFICIAL ACTIVITIES -- interval test passes" * Creation of dummies for regulations interval test gen newreg=lreg_hit4 tab newreg, gen(newreg_dum) ologit noevasion linstit_hit4 lpaytax_hit4 llab_hit4 lctax_hit4 lreg_hit4 /// newreg_dum3 newreg_dum4 newreg_dum5 newreg_dum6 newreg_dum7 newreg_dum8 newreg_dum9 newreg_dum10 /// newreg_dum11 newreg_dum12 newreg_dum13 newreg_dum14 /// lnassets_hit4 if smpl3686==1, cluster(country) nolog test newreg_dum3 newreg_dum4 newreg_dum5 newreg_dum6 newreg_dum7 newreg_dum8 newreg_dum9 newreg_dum10 newreg_dum11 newreg_dum12 newreg_dum13 newreg_dum14 display "TEST INTERVAL LABOUR REGULATIONS -- interval test passes" * Creation of dummies for labour regs interval test gen newlab=llab_hit4 tab newlab, gen(newlab_dum) ologit noevasion linstit_hit4 lpaytax_hit4 llab_hit4 newlab_dum3 newlab_dum4 newlab_dum5 lctax_hit4 lreg_hit4 /// lnassets_hit4 if smpl3686==1, cluster(country) nolog test newlab_dum3 newlab_dum4 newlab_dum5 display "TEST INTERVAL ASSETS -- interval test passes" * Creation of dummies for assets interval test gen newassets=lnassets_hit4 tab newassets, gen(newassets_dum) ologit noevasion linstit_hit4 lpaytax_hit4 llab_hit4 lctax_hit4 lreg_hit4 /// lnassets_hit4 newassets_dum3 newassets_dum4 newassets_dum5 newassets_dum6 newassets_dum7 /// newassets_dum8 newassets_dum9 newassets_dum10 newassets_dum11 /// if smpl3686==1, cluster(country) nolog test newassets_dum3 newassets_dum4 newassets_dum5 newassets_dum6 newassets_dum7 /// newassets_dum8 newassets_dum9 newassets_dum10 newassets_dum11 /// display "Model 2" ologit noevasion linstit_hit4 lpaytax_hit4 llab_hit4 lctax_hit4 lreg_hit4 /// lnassets_hit4 if smpl3686==1, cluster(country) nolog display "PREDICTED PROBABILITIES FOR NO EVASION" prvalue if smpl3686==1 prchange linstit_hit4 lpaytax_hit4 llab_hit4 lctax_hit4 lreg_hit4 lnassets_hit4 if smpl3686==1, rest(mean) **************************************************************** * MODEL 3 **************************************************************** display "Model 3, testing for ht<4 restriction; restriction passes" ologit noevasion lreg_hit4 lctax_hit4 lhightax_hit4 /// lreg lctax lhightax if smpl3686==1, cluster(country) nolog test lreg lctax lhightax display "TEST INTERVAL REGULATIONS OFFICIAL ACTIVITIES -- interval test passes" ologit noevasion lreg_hit4 lctax_hit4 lhightax_hit4 /// newreg_dum3 newreg_dum4 newreg_dum5 newreg_dum6 newreg_dum7 newreg_dum8 newreg_dum9 /// newreg_dum10 newreg_dum11 newreg_dum12 newreg_dum13 newreg_dum14 /// if smpl3686==1, cluster(country) nolog test newreg_dum3 newreg_dum4 newreg_dum5 newreg_dum6 newreg_dum7 newreg_dum8 newreg_dum9 newreg_dum10 newreg_dum11 newreg_dum12 newreg_dum13 newreg_dum14 display "TEST INTERVAL HIGH TAXES -- interval test passes" gen newhightax=lhightax_hit4 tab newhightax, gen(newhightax_dum) ologit noevasion lreg_hit4 lctax_hit4 lhightax_hit4 /// newhightax_dum3 newhightax_dum4 /// if smpl3686==1, cluster(country) nolog test newhightax_dum3 newhightax_dum4 display "Model 3 reduced form setup" ologit noevasion lreg_hit4 lctax_hit4 lhightax_hit4 /// if smpl3686==1, cluster(country) nolog display "PREDICTED PROBABILITIES FOR NO EVASION" prvalue if smpl3686==1 prchange lreg_hit4 lctax_hit4 lhightax_hit4 if smpl3686==1, rest(mean) *display "CORRELATIONS AT THE COUNTRY LEVEL" *collapse noevasion q17hit linstit llab lreg lctax lpaytax lhightax if smpl3686==1 , by(ctryid) *sum noevasion q17hit linstit llab lreg lctax lpaytax lhightax *pwcorr noevasion q17hit linstit llab lreg lctax lpaytax lhightax display "RECODE NOEVASION WITH interval midpoints (1= 25%, 7 = 100% reported sales)" gen temp=. recode temp .=100 if noevasion==7 recode temp .=95 if noevasion==6 recode temp .=85 if noevasion==5 recode temp .=75 if noevasion==4 recode temp .=65 if noevasion==3 recode temp .=55 if noevasion==2 recode temp .=25 if noevasion==1 gen noevasion2=temp display "Descriptive Statistics" xtsum q17hit instit q17labr reg noevasion2 ctax_umich paytax99 nassets if smpl3686==1, i(ctryid)