/* In order for the program to run you should set as the working directory the one where the dataset
file is located */

*** CHANGE ONLY THE NEXT LINE **********************************************************************
cd "C:\Users\Robotino\Documents\Di Tella\Monitoreo Electronico\Replicar el Paper\Final"
****************************************************************************************************

clear all
set more off
dis _newline(200)
log using "JPE - Di Tella and Schargrodsky - Criminal Recidivism After Prison And ElectronicMonitoring.log", replace

****************************************************************************************************
*************** Criminal Recidivism after Prison and Electronic Monitoring *************************
****************************************************************************************************

                             ********** Rafael Di Tella ****************
                             ********** Ernesto Schargrodsky ***********
                             ********** December 31, 2012 **************

****************************************************************************************************
							 

****************************************************************************************************
use "JPE - Di Tella and Schargrodsky - CriminalRecidivismAfterPrisonAndElectronicMonitoring.dta"

*** Table 1: Type of crime for the electronic monitoring and prison population, 1998-2007
	* Table 1 - Column 1
	tab mostSeriousCrime if electronicMonitoring==1

	* Table 1 - Column 2
	tab mostSeriousCrime if electronicMonitoring==0

*** TABLE 2: Electronic Monitoring Assignment and Type of Crimes
	* Table 2 - Column 1
	xi: reg electronicMonitoring percJudgeSentToEM i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 2 - Column 2
	xi: reg electronicMonitoring percJudgeSentToEM i.mostSeriousCrime i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 2 - Column 3
	xi: reg electronicMonitoring percJudgeSentToEM i.mostSeriousCrime numberPreviousImprisonments i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)
	
	* Table 2 - Column 4
	xi: reg electronicMonitoring percJudgeSentToEM i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 2 - Column 5
	xi: reg electronicMonitoring percJudgeSentToEM judgeAlreadyUsedEM i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	predict largeSampleEstimate
	display "adjusted R2 = " e(r2_a)	

*** Table 3: Comparison of Means of Pre-Treatment Characteristics
	* Table 3 - row 1
	xi: reg percJudgeSentToEM lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	ttest percJudgeSentToEM if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 2
	xi: reg argentine lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	ttest argentine if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 3
	xi: reg age lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	ttest age if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 4
	xi: reg entryDate lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)	
	ttest entryDate if e(sample)==1, by(lowHighEMRateDummy)

	* Table 3 - row 5
	xi: reg offendersPerJudge lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)	
	ttest offendersPerJudge if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 6
	xi: reg everImprisoned lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)	
	ttest everImprisoned if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 7
	xi: reg numberPreviousImprisonments lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)	
	ttest numberPreviousImprisonments if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 8
	xi: reg incomeProfession lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)	
	ttest incomeProfession if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 9
	xi: reg spouse lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest spouse if e(sample)==1, by(lowHighEMRateDummy)

	* Table 3 - row 10
	xi: reg homicideDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest homicideDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 11
	xi: reg attemptedHomicideDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest attemptedHomicideDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 12
	xi: reg sexualOffensesDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest sexualOffensesDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 13
	xi: reg otherSeriousCrimesDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest otherSeriousCrimesDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 14
	xi: reg aggravatedRobberyDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest aggravatedRobberyDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 15
	xi: reg attemptedAggravatedRobberyDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest attemptedAggravatedRobberyDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 16
	xi: reg robberyDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest robberyDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 17
	xi: reg attemptedRobberyDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest attemptedRobberyDummy if e(sample)==1, by(lowHighEMRateDummy)

	* Table 3 - row 18
	xi: reg possessionOfFirearmsDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest possessionOfFirearmsDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 19
	xi: reg larcenyDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest larcenyDummy if e(sample)==1, by(lowHighEMRateDummy)
	
	* Table 3 - row 20
	xi: reg otherMinorCrimesDummy lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)		
	ttest otherMinorCrimesDummy if e(sample)==1, by(lowHighEMRateDummy)

	* Table 3 - row 21
	xi: reg seriousCrimes lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	ttest seriousCrimes if e(sample)==1, by(lowHighEMRateDummy)

	* Table 3 - row 22
	xi: reg middleCrimes lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	ttest middleCrimes if e(sample)==1, by(lowHighEMRateDummy)

	* Table 3 - row 23
	xi: reg minorCrimes lowHighEMRateDummy i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	ttest minorCrimes if e(sample)==1, by(lowHighEMRateDummy)
	
*** Table 4: Recidivism and Electronic Monitoring. OLS Regressions
	* Table 4 - Column 1
	xi: reg recidivism electronicMonitoring, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 4 - Column 2
	xi: reg recidivism electronicMonitoring i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 4 - Column 3
	xi: dprobit recidivism electronicMonitoring i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict, cluster(judicialDistrict)

	* Table 4 - Column 4
	xi: reg recidivism electronicMonitoring i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if (mostSeriousCrime=="05 - Aggravated robbery"), cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 4 - Column 5
	xi: reg recidivism electronicMonitoring judgeEverUsedEM i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

*** Table 5: Recidivism and Electronic Monitoring. IV Regressions
	* Table 5 - Column 1
	xi: ivreg recidivism (electronicMonitoring=i.court) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 5 - Column 2
	xi: ivreg recidivism (electronicMonitoring=percJudgeSentToEM) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 5 - Column 3
	xi: ivreg recidivism (electronicMonitoring=percJudgeSentToEM judgeAlreadyUsedEM) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 5 - Column 4
	xi: ivprobit recidivism (electronicMonitoring=percJudgeSentToEM judgeAlreadyUsedEM) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, first cluster(judicialDistrict)
	mfx compute, predict(p) varlist(electronicMonitoring)

	* Table 5 - Column 5
	xi: ivreg recidivism (electronicMonitoring=largeSampleEstimate) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

*** Table 6: Recidivism and Electronic Monitoring. Robustness
	* Table 6 - Column 1
	xi: ivreg recidivism (electronicMonitoring=percJudgeSentToEM judgeAlreadyUsedEM) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict incomeProfession if offendersPerJudge>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)
	
	* Table 6 - Column 2
	xi: ivreg recidivism (electronicMonitoring=percJudgeSentToEM judgeAlreadyUsedEM) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict spouse familyVisits if offendersPerJudge>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 6 - Column 3
	xi: ivreg recidivism (electronicMonitoring=percJudgeSentToEM judgeAlreadyUsedEM) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments totalDetentionLength totalDetentionLengthSquared i.year i.judicialDistrict if offendersPerJudge>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)
	
	* Table 6 - Column 4
	xi: ivreg recidivism (electronicMonitoring=percJudgeSentToEMOnlyAggRobbery judgeAlreadyUsedEMOnlyAggRobbery) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudgeOnlyAggRobbery>9, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)
	
	* Table 6 - Column 5
	xi: ivreg recidivism (electronicMonitoring=percJudgeSentToEM judgeAlreadyUsedEM) i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if offendersPerJudge>9 & escapees==0, first cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)
	
*** Table 7: Recidivism and Escape within EM
	* Table 7 - Column 1
	xi: reg recidivism EMLengthTotalPrisonRatio i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if electronicMonitoring==1, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 7 - Column 2
	xi: reg recidivism i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if electronicMonitoring==1, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

	* Table 7 - Column 3
	xi: reg escapees i.mostSeriousCrime age ageSquared argentine numberPreviousImprisonments i.year i.judicialDistrict if electronicMonitoring==1, cluster(judicialDistrict)
	display "adjusted R2 = " e(r2_a)

****************************************************************************************************
log close
