/* 2010/12/21 do-file to replicate Tables 2-6 in: Daron Acemoglu, Davide Cantoni, Simon Johnson, James A. Robinson The Consequences of Radical Reform: The French Revolution data files needed: 20100816_replication_dataset.dta 20100816_replication_dataset_t5.dta additional Stata ado-files needed: outreg2 (if not installed, type "ssc install outreg2" in your Stata command line") also necessary: replace local path in line 22 */ clear set more off version 9.2 *** insert here the local path of the folder used local path "/Users/davidecantoni/Harvard/Ajr/AER/" cd "`path'" use "20100816_replication_dataset.dta" keep if year==1700 | year==1750 | year==1800 | year==1850 | year==1875 | year==1900 *** TABLE 2 gen napoleon = (fpresence>0) sort year format urbrate %9.2f by year: sum urbrate if westelbe==1 [aweight=totalpop1750], format by year: sum urbrate if westelbe==1 & napoleon==1 [aweight=totalpop1750], format by year: sum urbrate if westelbe==1 & napoleon==0 [aweight=totalpop1750], format sum protestant latitude longitude distpa if westelbe==1 [aweight=totalpop1750] sum protestant latitude longitude distpa if westelbe==1 & napoleon==1 [aweight=totalpop1750] sum protestant latitude longitude distpa if westelbe==1 & napoleon==0 [aweight=totalpop1750] by year: sum urbrate [aweight=totalpop1750], format by year: sum urbrate if napoleon==1 [aweight=totalpop1750], format by year: sum urbrate if napoleon==0 [aweight=totalpop1750], format sum protestant latitude longitude distpa [aweight=totalpop1750] sum protestant latitude longitude distpa if napoleon==1 [aweight=totalpop1750] sum protestant latitude longitude distpa if napoleon==0 [aweight=totalpop1750] *** TABLE 3 sort id year areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 yr* /// if westelbe==1 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 3, Column 1, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test') /// replace areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 yr* /// if westelbe==1, absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 3, Column 2, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test') /// areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 yr* /// [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 3, Column 3, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test') areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 yr*, /// absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 3, Column 4, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test') *** TABLE 4 areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// yr* if westelbe==1 & id~=2 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 1, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test') areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// protestant1* yr* if westelbe==1 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) testparm protestant1* local testcov=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 2, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test', /// p-value joint significance covariate, `testcov') areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// latitude1* yr* if westelbe==1 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) testparm latitude1* local testcov=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 3, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test', /// p-value joint significance covariate, `testcov') areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// longitude1* yr* if westelbe==1 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) testparm longitude1* local testcov=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 4, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test', /// p-value joint significance covariate, `testcov') areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// distpa1* yr* if westelbe==1 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) testparm distpa* local testcov=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 5, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test', /// p-value joint significance covariate, `testcov') areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// territories1* yr* if westelbe==1 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) testparm territories1* local testcov=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 6, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test', /// p-value joint significance covariate, `testcov') areg urbrate fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// urbanization17501* yr* if westelbe==1 [aweight=totalpop1750], absorb(id) cluster(id) test fpresence1850 fpresence1875 fpresence1900 local test=r(p) testparm urbanization17501* local testcov=r(p) outreg2 fpresence1750 fpresence1800 fpresence1850 fpresence1875 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 7, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test', /// p-value joint significance covariate, `testcov') /// preserve keep if year==1700 | year==1750 | year==1800 | year==1850 | year==1900 replace year=year/50 sort id year tsset id year xtabond2 urbrate L.urbrate fpresence1800 fpresence1850 fpresence1900 yr* if westelbe==1 /// [aweight=totalpop1750], gmm(L.urbrate) iv(yr* fpresence1800 fpresence1850 fpresence1900) /// robust noleveleq test fpresence1850 fpresence1900 local test=r(p) outreg2 L.urbrate fpresence1800 fpresence1850 fpresence1900 /// using 20100816_replication_tables.xls, ctitle("Table 4, Column 8, ") br noaster nocons /// addstat(Number of States, e(df_a)+1, p-value for joint significance after 1800,`test') restore preserve *** TABLE 5 clear use "20100816_replication_dataset_t5.dta" tsset id year drop if year>1914 levelsof year, local(timeperiods) *** dependent variable: share of population in agriculture foreach X of local timeperiods { reg agric fpresence if year==`X' & imputed==0 & westelbe==1 [aweight=pop1849], cl(state) outreg2 fpresence using 20100816_replication_tables.xls, /// br noaster ctitle("Table 5, Column 1, year `X'") } foreach X of local timeperiods { reg agric fpresence if year==`X' & imputed==0 & westelbe==1, cl(state) outreg2 fpresence using 20100816_replication_tables.xls, /// br noaster ctitle("Table 5, Column 2, year `X'") } foreach X of local timeperiods { reg agric fpresence if year==`X' & imputed==0 [aweight=pop1849], cl(state) outreg2 fpresence using 20100816_replication_tables.xls, /// br noaster ctitle("Table 5, Column 3, year `X'") } *** dependent variable: share of population in industry and manufacturing foreach X of local timeperiods { reg industry fpresence if year==`X' & imputed==0 & westelbe==1 [aweight=pop1849], cl(state) outreg2 fpresence using 20100816_replication_tables.xls, /// br noaster ctitle("Table 5, Column 4, year `X'") } foreach X of local timeperiods { reg industry fpresence if year==`X' & imputed==0 & westelbe==1, cluster(state) outreg2 fpresence using 20100816_replication_tables.xls, /// br noaster ctitle("Table 5, Column 5, year `X'") } foreach X of local timeperiods { reg industry fpresence if year==`X' & imputed==0 [aweight=pop1849], cluster(state) outreg2 fpresence using 20100816_replication_tables.xls, /// br noaster ctitle("Table 5, Column 6, year `X'") } clear *** TABLE 6 restore *** Column 1, Panels A-C: Baseline (weighted) areg urbrate yearsref yr1750-yr1900 if westelbe==1 [aweight=totalpop1750], absorb(id) /// robust cluster(id) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 1, Panel A") /// br noaster nocons addstat(Number of States, e(df_a)+1) xtivreg2 yearsref fpresenceXpostXtrend yr1750-yr1900 if urbrate~=. & westelbe==1 /// [aweight=totalpop1750], fe robust cluster(id) small outreg2 fpresenceXpostXtrend using 20100816_replication_tables.xls, br noaster nocons /// ctitle("Table 6, Column 1, Panel B") addstat(Number of States, e(df_a)+1) xtivreg2 urbrate (yearsref= fpresenceXpostXtrend) yr1750-yr1900 if westelbe==1 /// [aweight=totalpop1750], fe robust cluster(id) first local pvaluefstat = Ftail(e(ardf),e(ardf_r),e(widstat)) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 1, Panel C") /// br noaster nocons addstat(Number of States, e(df_a)+1, F-stat first stage, e(widstat), /// p-value F-stat, `pvaluefstat') *** Column 2, Panels A-C: overid areg urbrate yearsref yr1750-yr1900 if westelbe==1 [aweight=totalpop1750], absorb(id) /// robust cluster(id) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 2, Panel A") /// br noaster nocons addstat(Number of States, e(df_a)+1) xtivreg2 urbrate (yearsref= fpresence1850 fpresence1875 fpresence1900) /// yr1750-yr1900 if westelbe==1 [aweight=totalpop1750], fe robust cluster(id) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 2, Panel C") /// br noaster nocons addstat(Number of States, e(df_a)+1) xtivreg2 urbrate (yearsref= fpresence1850 fpresence1875 fpresence1900) /// yr1750-yr1900 if westelbe==1 [aweight=totalpop1750], fe robust first local pvaluefstat = Ftail(e(ardf),e(ardf_r),e(widstat)) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 2, Panel B") /// br noaster nocons addstat(Number of States, e(df_a)+1, F-stat first stage, e(widstat), /// p-value F-stat, `pvaluefstat', overid test, e(jp)) *** Column 3, Panels A-C: unweighted areg urbrate yearsref yr1750-yr1900 if westelbe==1, absorb(id) robust cluster(id) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 3, Panel A") /// br noaster nocons addstat(Number of States, e(df_a)+1) xtivreg2 yearsref fpresenceXpostXtrend yr1750-yr1900 if urbrate~=. & westelbe==1, /// fe robust cluster(id) small outreg2 fpresenceXpostXtrend using 20100816_replication_tables.xls, br noaster nocons /// ctitle("Table 6, Column 3, Panel B") addstat(Number of States, e(df_a)+1) xtivreg2 urbrate (yearsref= fpresenceXpostXtrend) yr1750-yr1900 if westelbe==1, /// fe robust cluster(id) first local pvaluefstat = Ftail(e(ardf),e(ardf_r),e(widstat)) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 3, Panel C") /// br noaster nocons addstat(Number of States, e(df_a)+1, F-stat first stage, e(widstat), /// p-value F-stat, `pvaluefstat') *** Column 4, Panels A-C: East and West of Elbe areg urbrate yearsref yr1750-yr1900 [aweight=totalpop1750], absorb(id) robust cluster(id) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 4, Panel A") /// br noaster nocons addstat(Number of States, e(df_a)+1) xtivreg2 yearsref fpresenceXpostXtrend yr1750-yr1900 if urbrate~=. [aweight=totalpop1750], /// fe robust cluster(id) small outreg2 fpresenceXpostXtrend using 20100816_replication_tables.xls, br noaster nocons /// ctitle("Table 6, Column 4, Panel B") addstat(Number of States, e(df_a)+1) xtivreg2 urbrate (yearsref= fpresenceXpostXtrend) yr1750-yr1900 [aweight=totalpop1750], /// fe robust cluster(id) first local pvaluefstat = Ftail(e(ardf),e(ardf_r),e(widstat)) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 4, Panel C") /// br noaster nocons addstat(Number of States, e(df_a)+1, F-stat first stage, e(widstat), /// p-value F-stat, `pvaluefstat') *** Column 5, Panels A-C: Unweighted, East and West of Elbe areg urbrate yearsref yr1750-yr1900, absorb(id) robust cluster(id) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 5, Panel A") /// br noaster nocons addstat(Number of States, e(df_a)+1) xtivreg2 yearsref fpresenceXpostXtrend yr1750-yr1900 if urbrate~=., fe robust cluster(id) small outreg2 fpresenceXpostXtrend using 20100816_replication_tables.xls, br noaster nocons /// ctitle("Table 6, Column 5, Panel B") addstat(Number of States, e(df_a)+1) xtivreg2 urbrate (yearsref= fpresenceXpostXtrend) yr1750-yr1900, fe robust cluster(id) first local pvaluefstat = Ftail(e(ardf),e(ardf_r),e(widstat)) outreg2 yearsref using 20100816_replication_tables.xls, ctitle("Table 6, Column 5, Panel C") /// br noaster nocons addstat(Number of States, e(df_a)+1, F-stat first stage, e(widstat), /// p-value F-stat, `pvaluefstat')