* Packages necessary for the code to run * ssc install estwrite * ssc install egenmore * ssc install moremata * ssc install coefplot * ssc install msp * ssc install grc1leg * ssc install estout * ssc install uirt * ssc install estout ***************************************************************** * Visualize census, yearbooks, and registers ***************************************************************** *****FIGURE 1:Introduction, Census **** ***************************************************************** use statecapacity_withpred.dta, clear * Drop Italian/German principalities from graphs keep if princip==0 * Keep only infocapacity sample keep if info_capacity_sample==1 *** Ordered by first census ever * Select countries to plot * ordered by firstcensus capture drop *_y capture drop idcountry capture drop ones gen sortorder_y = -first_moderncensus_yr egen idcountry = concat(sortorder_y ccodecow) if first_ever_census_yr!=. drop if idcountry=="" levelsof idcountry, local(levels) di `levels' * local levels 1801220 1801385 1801390 gen ones = 1 gen n_y=0 gen census_y = . gen first_moderncensus_y = . gen first_registerbasedcensus_y = . gen yearbook_coverage_y = . gen yearbook_published_y = . gen first_yearbook_published_y = . gen first_ever_census_y = . gen stat_agency_founded_y = . gen civreg_intro_y = . gen civreg_y = . gen popreg_intro_y = . gen popreg_y = . gen offset_y = . gen cname_y = "" local xlabs foreach l of local levels { * Offset variables on y-axis by country replace n_y = n_y + 1 replace offset_y = n_y if idcountry=="`l'" replace census_y = census + n_y if idcountry=="`l'" & census==1 replace first_moderncensus_y = first_moderncensus + n_y if idcountry=="`l'" & first_moderncensus==1 replace yearbook_coverage_y = yearbook_coverage + n_y if idcountry=="`l'" & yearbook_coverage==1 replace yearbook_published_y = yearbook_published + n_y if idcountry=="`l'" & yearbook_published==1 replace first_yearbook_published_y = first_yearbook_published + n_y if idcountry=="`l'" & first_yearbook_published==1 replace first_ever_census_y = first_ever_census + n_y if idcountry=="`l'" & first_ever_census==1 replace first_registerbasedcensus_y = first_registerbasedcensus + n_y if idcountry=="`l'" & first_registerbasedcensus==1 replace stat_agency_founded_y = stat_agency_founded + n_y if idcountry=="`l'" & stat_agency_founded==1 replace civreg_intro_y = civreg + n_y if idcountry=="`l'" & civreg_yr_num==year replace civreg_y = civreg + n_y if idcountry=="`l'" & civreg==1 replace popreg_intro_y = popreg + n_y if idcountry=="`l'" & popreg_central_yr==year replace popreg_y = popreg + n_y if idcountry=="`l'" & popreg==1 replace ones = ones + n_y if idcountry=="`l'" * Make country labels replace cname_y = "" replace cname_y = cname if idcountry=="`l'" gsort -cname_y local countryname = cname_y local n_y = n_y + 1 local xlabs `"`xlabs' `n_y' "`countryname'""' } di `xlabs' * Census twoway (scatter ones year, mcolor(gs13) msize(0.05) msymbol(p)) (dot census_y year if census_y!=., mcolor(gs13) ndots(0) dotextend(no) dcolor(white) mstyle(p2) msize(0.5)) (dot first_ever_census_y year if first_ever_census_y!=., mcolor(gs6) ndots(0) dotextend(no) dcolor(white) mstyle(p2) msize(0.5)) (dot first_moderncensus_y year if first_moderncensus_y!=., ndots(0) dotextend(no) dcolor(white) mcolor(red) mstyle(p2) msize(0.5)) (dot first_registerbasedcensus_y year if first_registerbased_census_y!=., ndots(0) dotextend(no) dcolor(white) mcolor(green) mstyle(p2) msize(0.5)), scheme(lean1) xtitle("") legend(label(1 "") label(2 "Census") label(3 "First Census Ever") label(4 "First Modern Census") label(5 "First Register-Based Census") order(3 4 5 2) cols(2) position(6) size(2.5)) ylab(`xlabs', labsize(vsmall)) ytitle("") xsize(6) ysize(12) gr export census_overview.pdf, as(pdf) replace * **************************************************************** ***** FIGURE 2: Introduction, Civil and Population registers ***** * **************************************************************** use statecapacity_withpred.dta, clear * Drop Italian/German principalities from graphs keep if princip==0 * Keep only infocapacity sample keep if info_capacity_sample==1 *** Ordered by civil register introduction * Select countries to plot * ordered by firstcensus capture drop *_y capture drop idcountry capture drop ones gen sortorder_y = -civreg_yr_num egen idcountry = concat(sortorder_y ccodecow) if civreg_yr_num!=. drop if idcountry=="" levelsof idcountry, local(levels) di `levels' * local levels 1801220 1801385 1801390 gen ones = 1 gen n_y=0 gen civreg_intro_y = . gen popreghist_intro_y = . gen popreg_intro_y = . gen offset_y = . gen cname_y = "" local xlabs foreach l of local levels { * Offset variables on y-axis by country replace n_y = n_y + 1 replace offset_y = n_y if idcountry=="`l'" replace civreg_intro_y = civreg + n_y if idcountry=="`l'" & civreg==1 replace popreghist_intro_y = popreghist + n_y if idcountry=="`l'" & popreghist==1 replace popreg_intro_y = popreg + n_y if idcountry=="`l'" & popreg==1 replace ones = ones + n_y if idcountry=="`l'" * Make country labels replace cname_y = "" replace cname_y = cname if idcountry=="`l'" gsort -cname_y local countryname = cname_y local n_y = n_y + 1 local xlabs `"`xlabs' `n_y' "`countryname'""' } di `xlabs' * Civil Registers, Population Register (historical and modern) twoway (scatter ones year, mcolor(gs13) msize(0.05) msymbol(p)) (dot civreg_intro_y year if civreg_intro_y!=., mcolor(gs13) ndots(0) dotextend(no) dcolor(white) mstyle(p2) msize(0.5)) (dot popreg_intro_y year if popreg_intro_y!=., mcolor(gs6) ndots(0) dotextend(no) dcolor(white) mstyle(p2) msize(0.5)), scheme(lean1) xtitle("") legend(label(1 "") label(2 "Civil Register") label(3 "Population Register") order(2 3) cols(1) position(6) size(2.5)) ylab(`xlabs', labsize(vsmall)) ytitle("") xsize(6) ysize(12) gr export register_overview.pdf, as(pdf) replace * **************************************************************** ***** FIGURE 3: Introduction, Agencies and Yearbooks ***** * **************************************************************** use statecapacity_withpred.dta, clear * Drop Italian/German principalities from graphs keep if princip==0 * Keep only infocapacity sample keep if info_capacity_sample==1 *** Ordered by First Yearbook * Select countries to plot * ordered by firstcensus capture drop *_y capture drop idcountry capture drop ones * gen sortorder_y = -first_yearbook_published_yr gen sortorder_y = -stat_agency_founded_yr egen idcountry = concat(sortorder_y ccodecow) if first_yearbook_published_yr!=. drop if idcountry=="" levelsof idcountry, local(levels) di `levels' * local levels 1801220 1801385 1801390 gen ones = 1 gen n_y=0 gen census_y = . gen first_moderncensus_y = . gen yearbook_coverage_y = . gen yearbook_published_y = . gen yearbook_pdf_y = . gen first_yearbook_published_y = . gen first_ever_census_y = . gen stat_agency_founded_y = . gen offset_y = . gen cname_y = "" local xlabs foreach l of local levels { * Offset variables on y-axis by country replace n_y = n_y + 1 replace offset_y = n_y if idcountry=="`l'" replace census_y = census+n_y if idcountry=="`l'" & census==1 replace first_moderncensus_y = first_moderncensus + n_y if idcountry=="`l'" & first_moderncensus==1 replace yearbook_coverage_y = yearbook_coverage + n_y if idcountry=="`l'" & yearbook_coverage==1 replace yearbook_published_y = yearbook_published + n_y if idcountry=="`l'" & yearbook_published==1 replace first_yearbook_published_y = first_yearbook_published + n_y if idcountry=="`l'" & first_yearbook_published==1 replace yearbook_pdf_y = yearbook_pdf + n_y if idcountry=="`l'" & yearbook_pdf==1 replace first_ever_census_y = first_ever_census + n_y if idcountry=="`l'" & first_ever_census==1 replace stat_agency_founded_y = stat_agency_founded + n_y if idcountry=="`l'" & stat_agency_founded==1 replace ones = ones + n_y if idcountry=="`l'" * Make country labels replace cname_y = "" replace cname_y = cname if idcountry=="`l'" gsort -cname_y local countryname = cname_y local n_y = n_y + 1 local xlabs `"`xlabs' `n_y' "`countryname'""' } di `xlabs' * Yearbooks (without information about digital yearbooks) twoway (scatter ones year, mcolor(gs13) msize(0.05) msymbol(.)) (dot yearbook_published_y year if yearbook_published_y>0 & yearbook_published_y!=., mcolor(gs13) dotextend(no) dcolor(white) ndots(0) mstyle(p2) msize(0.5)) (dot first_yearbook_published_y year if first_yearbook_published_y!=., ndots(0) dotextend(no) dcolor(white) mcolor(red) mstyle(p2) msize(0.5)) (dot stat_agency_founded_y year if stat_agency_founded_y!=., ndots(0) dotextend(no) dcolor(white) mcolor(blue) mstyle(p2) msize(0.5)), scheme(lean1) xtitle("") legend(order(4 3 2) label(1 "") label(2 "Yearbook Published") label(3 "First Yearbook") label(4 "Statistical Agency Founded") rows(2) cols(1) colfirst position(6) size(2.0)) ylab(`xlabs', labsize(vsmall)) ytitle("") xsize(6) ysize(12) gr export yb_overview.pdf, as(pdf) replace * **************************************************************** ***** FIGURE 4: Order of Introduction, All Countries ***** * **************************************************************** use statecapacity_withpred.dta, clear bysort year: egen census_sh = mean(census_intro) bysort year: egen statag_sh = mean(statag_intro) bysort year: egen ybpub_sh = mean(ybpub_intro) bysort year: egen civreg_sh = mean(civreg) bysort year: egen popreg_sh = mean(popreg) replace census_sh = census_sh*100 replace statag_sh = statag_sh*100 replace ybpub_sh = ybpub_sh*100 replace civreg_sh = civreg_sh*100 replace popreg_sh = popreg_sh*100 label variable census_sh "Census" label variable statag_sh "Statistical Agency" label variable ybpub_sh "Yearbook" label variable civreg_sh "Civil Register" label variable popreg_sh "Population Register" sort ccodecow year twoway (line census_sh year) (line civreg_sh year) (line statag_sh year) (line ybpub_sh year) (line popreg_sh year) if ccodecow==2 & year>1788, scheme(lean1) legend(ring(0) position(11) bmargin(medium)) ytitle("Share of Countries in Sample") xtitle("") gr export intro_over_time.pdf, as(pdf) replace * **************************************************************** ***** FIGURE 5: Order of Introduction, By Country ***** * **************************************************************** use statecapacity_withpred.dta, clear * Drop Italian/German principalities from graphs keep if princip==0 * Keep only infocapacity sample keep if info_capacity_sample==1 *** Ordered by first census ever * Select countries to plot * ordered by firstcensus capture drop *_y capture drop idcountry capture drop ones gen sortorder_y = -first_moderncensus_yr egen idcountry = concat(sortorder_y ccodecow) if first_ever_census_yr!=. drop if idcountry=="" levelsof idcountry, local(levels) di `levels' * local levels 1801220 1801385 1801390 gen ones = 1 gen n_y=0 gen census_y = . gen first_moderncensus_y = . gen first_registerbasedcensus_y = . gen yearbook_coverage_y = . gen yearbook_published_y = . gen first_yearbook_published_y = . gen first_ever_census_y = . gen stat_agency_founded_y = . gen civreg_intro_y = . gen civreg_y = . gen popreg_intro_y = . gen popreg_y = . gen offset_y = . gen cname_y = "" local xlabs foreach l of local levels { * Offset variables on y-axis by country replace n_y = n_y + 1 replace offset_y = n_y if idcountry=="`l'" replace census_y = census + n_y if idcountry=="`l'" & census==1 replace first_moderncensus_y = first_moderncensus + n_y if idcountry=="`l'" & first_moderncensus==1 replace yearbook_coverage_y = yearbook_coverage + n_y if idcountry=="`l'" & yearbook_coverage==1 replace yearbook_published_y = yearbook_published + n_y if idcountry=="`l'" & yearbook_published==1 replace first_yearbook_published_y = first_yearbook_published + n_y if idcountry=="`l'" & first_yearbook_published==1 replace first_ever_census_y = first_ever_census + n_y if idcountry=="`l'" & first_ever_census==1 replace first_registerbasedcensus_y = first_registerbasedcensus + n_y if idcountry=="`l'" & first_registerbasedcensus==1 replace stat_agency_founded_y = stat_agency_founded + n_y if idcountry=="`l'" & stat_agency_founded==1 replace civreg_intro_y = civreg + n_y if idcountry=="`l'" & civreg_yr_num==year replace civreg_y = civreg + n_y if idcountry=="`l'" & civreg==1 replace popreg_intro_y = popreg + n_y if idcountry=="`l'" & popreg_central_yr==year replace popreg_y = popreg + n_y if idcountry=="`l'" & popreg==1 replace ones = ones + n_y if idcountry=="`l'" * Make country labels replace cname_y = "" replace cname_y = cname if idcountry=="`l'" gsort -cname_y local countryname = cname_y local n_y = n_y + 1 local xlabs `"`xlabs' `n_y' "`countryname'""' } di `xlabs' * First ever census, first yearbook published, stat agency, registers - replaced by letters to show ordering gen ctext = "C" gen stext = "S" gen ytext = "Y" gen crtext = "R" gen prtext = "P" twoway (scatter ones year, mcolor(gs13) msize(0.05) msymbol(p)) (dot first_ever_census_y year if first_ever_census_y!=., mcolor(gray) ndots(0) dotextend(no) dcolor(white) mlabel(ctext) ms(none) mlabp(0) mlabcolor(red) mlabsize(vsmall)) (dot stat_agency_founded_y year if stat_agency_founded_y!=., ndots(0) dotextend(no) dcolor(white) mlabel(stext) ms(none) mlabp(0) mlabcolor(blue) mlabsize(vsmall)) (dot first_yearbook_published_y year if first_yearbook_published_y!=., ndots(0) dotextend(no) dcolor(white) mlabel(ytext) ms(none) mlabp(0) mlabcolor(black) mlabsize(vsmall)) , xtitle("") scheme(lean1) legend(label(1 "") label(2 "C First Census Ever") label(3 "S Statistical Agency Founded") label(4 "Y First Yearbook Published") rows(4) position(6) size(2.5)) ylab(`xlabs', labsize(vsmall)) ytitle("") xsize(6) ysize(12) gr export census_statagency_yb_ordering.pdf, as(pdf) replace * **************************************************************** ***** FIGURE 6: Estimated Information Capacity By Country ***** * **************************************************************** use statecapacity_withpred.dta, clear xtline infcap_irt if year>=1800 & year<=2012 & princip==0, /// i(cname) t(year) scheme(lean1) /// tline(1850 1900 1950, lwidth(medthick) lpattern(tight_dot) lcolor(gs6)) /// tmtick(none) xtitle("") byopts(caption("") /// note("Based on Item Response Theory, including information on the census, registers, the statistical agency, and the yearbook.", size(tiny))) /// ysize(11) xsize(8) ylab(, nogrid) byopts(cols(7)) ytitle("") * ytitle("Prediction of Latent Information Capacity") gr export irt_allvars_panelprediction_until2012.pdf, as(pdf) replace * **************************************************************** ***** FIGURE 7: Information Capacity in the World's Regions ***** * **************************************************************** use statecapacity_withpred.dta, clear bysort Region year: egen mean_infcap = mean(infcap_irt) twoway /// (line mean_infcap year if cname == "Sweden", lpattern(solid) lcolor(black)) /// (line mean_infcap year if cname == "United States", lpattern(-) lcolor(eltblue)) /// (line mean_infcap year if cname == "China", lpattern(solid) lcolor(maroon)) /// (line mean_infcap year if cname == "Egypt", lpattern(-) lcolor(midgreen)) /// (line mean_infcap year if cname == "Ethiopia", lpattern(solid) lcolor(cranberry)), /// scheme(tufte) legend(off) ylabel(,nogrid) ytitle(Average Information Capacity) xtitle("") /// text(.60 1890 "Europe", color(black)) /// text(.47 1900 "Americas", color(eltblue)) /// text(.22 1940 "Asia", color(maroon)) /// text(.30 1915 "MENA", color(midgreen)) /// text(.40 1990 "Africa", color(cranberry)) graph export Regions.pdf, as(pdf) replace * **************************************************************** ***** FIGURE 8: Correlations with Similar Measures ***** * **************************************************************** use statecapacity_withpred_Figure8.dta, clear graph matrix hs_capacity lz_myers wb_statcap_ovrl infcap_irt, mcolor(black) msymbol(Oh) maxes(ylab(#3,labsize(small)) xlab(#3,labsize(small))) graphregion(color(white)) diag(,fcolor(white)) pwcorr hs_capacity lz_myers wb_statcap_ovrl infcap_irt, obs graph export Othermeasures.pdf, as(pdf) replace ***** FIGURE 9: Electoral Competition and Information Capacity ***** * **************************************************************** use statecapacity_withpred.dta, clear * Choose which IRT estimates to use * Use IRT GRM replace infcap_irt = infcap_irt_grm * Use IRT RSM *replace infcap_irt = infcap_irt_rsm * Other preliminaries set matsize 10000 xtset ccodecow year * Generate decade variable gen decade = floor(year/10) * Rescale dependent variables replace infcap_irt = infcap_irt*100 replace infcap_fac = infcap_fac*100 replace infcap_pca = infcap_pca*100 * Draw figures of decade-to-decade changes collapse (mean) infcap_irt vdem_v2x_suffr vdem_v2x_schump ln_madd_gdpcap madd_pop cow_war cg_tax_gdp, by(ccodecow decade) xtset ccodecow decade generate d_infcap_irt = D1.infcap_irt generate d_vdem_v2x_suffr = D1.vdem_v2x_suffr generate d_vdem_v2x_schump = D1.vdem_v2x_schump twoway (scatter d_infcap_irt d_vdem_v2x_schump, msymbol(o) mcolor(gs8)) (lfit d_infcap_irt d_vdem_v2x_schump, lpattern(solid) lcolor(cranberry)), scheme(tufte) yscale(range(-20 40)) ylabel(-20 (20) 40, nogrid) xtitle("Change in Electoral Competition") ytitle("Change in Information Capacity") ylabel(,nogrid) legend(off) graph export Competitiveness.pdf, as(pdf) replace ***** FIGURE 10: The Right to Vote and Information Capacity ***** * **************************************************************** use statecapacity_withpred.dta, clear * Choose which IRT estimates to use * Use IRT GRM replace infcap_irt = infcap_irt_grm * Use IRT RSM *replace infcap_irt = infcap_irt_rsm * Other preliminaries set matsize 10000 xtset ccodecow year * Generate decade variable gen decade = floor(year/10) * Rescale dependent variables replace infcap_irt = infcap_irt*100 replace infcap_fac = infcap_fac*100 replace infcap_pca = infcap_pca*100 * Draw figures of decade-to-decade changes collapse (mean) infcap_irt vdem_v2x_suffr vdem_v2x_schump ln_madd_gdpcap madd_pop cow_war cg_tax_gdp, by(ccodecow decade) xtset ccodecow decade generate d_infcap_irt = D1.infcap_irt generate d_vdem_v2x_suffr = D1.vdem_v2x_suffr generate d_vdem_v2x_schump = D1.vdem_v2x_schump twoway (scatter d_infcap_irt d_vdem_v2x_suffr, msymbol(o) mcolor(gs8)) (lfit d_infcap_irt d_vdem_v2x_suffr, lpattern(solid) lcolor(cranberry)), scheme(tufte) yscale(range(-20 40)) ylabel(-20 (20) 40, nogrid) xtitle("Change in Suffrage") ytitle("Change in Information Capacity") ylabel(,nogrid) legend(off) graph export Suffrage.pdf, as(pdf) replace * **************************************************************** ***** TABLE 1: IRT Models of Information Capacity (1750--2012) ***** * **************************************************************** use statecapacity_withpred.dta, clear ** Combined Table ** 1PL, 2PL and Hybrid Model(s) estread IRTmodels local modelst2 m1pl_5vars_2012 m2pl_5vars_2012 hybrid_grm_census_2012 grm_allvars_2012 * hybrid_grm_census_2012 grm_allvars_2012 rsm_allvars_2012 * Adding N: foreach model in `modelst2' { est restore `model' /// Add number of observations scalar modN = e(N) est restore `model' estat report, blabel(diff) alabel(discrim) seqlabel post estadd scalar modN = modN est store `model' scalar modN = . } * Prepare estout local varrename2 /// "commondisc:discrim" "disc1_common" /// "census_bin:discrim" "disc2_census_bin" /// "census_bin:diff" "diff2_census_bin" /// "census_ord:discrim" "disc31_census_ord" /// "census_ord:1.diff" "diff31_census_ord" /// "census_ord:2.diff" "diff32_census_ord" /// "census_ord:3.diff" "diff33_census_ord" /// "census_dep:discrim" "disc4_census_dep" /// "census_dep:1.diff" "diff401_census_dep" /// "census_dep:2.diff" "diff402_census_dep" /// "census_dep:3.diff" "diff403_census_dep" /// "census_dep:4.diff" "diff404_census_dep" /// "census_dep:5.diff" "diff405_census_dep" /// "census_dep:6.diff" "diff406_census_dep" /// "census_dep:7.diff" "diff407_census_dep" /// "census_dep:8.diff" "diff408_census_dep" /// "census_dep:9.diff" "diff409_census_dep" /// "census_dep:10.diff" "diff410_census_dep" /// "census_dep:11.diff" "diff411_census_dep" /// "census_dep:12.diff" "diff412_census_dep" /// "census_dep:13.diff" "diff413_census_dep" /// "census_dep:14.diff" "diff414_census_dep" /// "census_dep:15.diff" "diff415_census_dep" /// "census_dep:16.diff" "diff416_census_dep" /// "census_dep:17.diff" "diff417_census_dep" /// "census_dep:18.diff" "diff418_census_dep" /// "census_dep:19.diff" "diff419_census_dep" /// "census_dep:20.diff" "diff420_census_dep" /// "census_dep:21.diff" "diff421_census_dep" /// "civreg_bin:discrim" "disc5_civreg_bin" /// "civreg_bin:diff" "diff5_civreg_bin" /// "popreg_bin:discrim" "disc6_popreg_bin" /// "popreg_bin:diff" "diff6_popreg_bin" /// "statag_bin:discrim" "disc7_statag_bin" /// "statag_bin:diff" "diff7_statag_bin" /// "ybcov_bin:discrim" "disc8_ybcov_bin" /// "ybcov_bin:diff" "diff8_ybcov_bin" /// "ybcov_dep:discrim" "disc9_ybcov_dep" /// "ybcov_dep:1.diff" "diff901_ybcov_dep" /// "ybcov_dep:2.diff" "diff902_ybcov_dep" /// "ybcov_dep:3.diff" "diff903_ybcov_dep" /// "ybcov_dep:4.diff" "diff904_ybcov_dep" /// "ybcov_dep:5.diff" "diff905_ybcov_dep" /// "ybcov_dep:6.diff" "diff906_ybcov_dep" /// "ybcov_dep:7.diff" "diff907_ybcov_dep" /// "ybcov_dep:8.diff" "diff908_ybcov_dep" /// "ybcov_dep:9.diff" "diff909_ybcov_dep" /// "ybcov_dep:10.diff" "diff910_ybcov_dep" local labrename2 /// "disc1_common" "Common Parameter" /// "disc2_census_bin" "Census (Binary)" /// "diff2_census_bin" "Census (Binary)" /// "disc31_census_ord" "Census (Ordinal)" /// "diff31_census_ord" "Census - Simple" /// "diff32_census_ord" "Census - Modern" /// "diff33_census_ord" "Census - Register" /// "disc4_census_dep" "Census (Scaled)" /// "diff401_census_dep" "Census Scaled 0.1" /// "diff402_census_dep" "Census Scaled 0.2" /// "diff403_census_dep" "Census Scaled 0.3" /// "diff404_census_dep" "Census Scaled 0.4" /// "diff405_census_dep" "Census Scaled 0.5" /// "diff406_census_dep" "Census Scaled 0.6" /// "diff407_census_dep" "Census Scaled 0.7" /// "diff408_census_dep" "Census Scaled 0.8" /// "diff409_census_dep" "Census Scaled 0.9" /// "diff410_census_dep" "Census Scaled 1.0" /// "diff411_census_dep" "Census Scaled 1.1" /// "diff412_census_dep" "Census Scaled 1.2" /// "diff413_census_dep" "Census Scaled 1.3" /// "diff414_census_dep" "Census Scaled 1.4" /// "diff415_census_dep" "Census Scaled 1.5" /// "diff416_census_dep" "Census Scaled 1.6" /// "diff417_census_dep" "Census Scaled 1.7" /// "diff418_census_dep" "Census Scaled 1.8" /// "diff419_census_dep" "Census Scaled 1.9" /// "diff420_census_dep" "Census Scaled 2.0" /// "diff421_census_dep" "Census Scaled 3.0" /// "disc5_civreg_bin" "Civil Register" /// "diff5_civreg_bin" "Civil Register" /// "disc6_popreg_bin" "Population Register" /// "diff6_popreg_bin" "Population Register" /// "disc7_statag_bin" "Statistical Agency" /// "diff7_statag_bin" "Statistical Agency" /// "disc8_ybcov_bin" "Yearbook (Binary)" /// "diff8_ybcov_bin" "Yearbook (Binary)" /// "disc9_ybcov_dep" "Yearbook (Scaled)" /// "diff901_ybcov_dep" "Yearbook Scaled - 0.1" /// "diff902_ybcov_dep" "Yearbook Scaled - 0.2" /// "diff903_ybcov_dep" "Yearbook Scaled - 0.3" /// "diff904_ybcov_dep" "Yearbook Scaled - 0.4" /// "diff905_ybcov_dep" "Yearbook Scaled - 0.5" /// "diff906_ybcov_dep" "Yearbook Scaled - 0.6" /// "diff907_ybcov_dep" "Yearbook Scaled - 0.7" /// "diff908_ybcov_dep" "Yearbook Scaled - 0.8" /// "diff909_ybcov_dep" "Yearbook Scaled - 0.9" /// "diff910_ybcov_dep" "Yearbook Scaled - 1.0" estout `modelst2' using irt_simple_and_hybrid.tex, replace style(tex) /// starlevels("\mbox{*}" .10 "\mbox{**}" .05 "\mbox{***}" .01) varwidth(30) modelwidth(10) wrap /// equations( commondisc = 1:.:.:. , /// census_bin = 2:1:.:. , /// census_ord = .:.:1:. , /// census_dep = .:.:.:4 , /// civreg_bin = 3:2:2:2 , /// popreg_bin = 4:3:3:3 , /// statag_bin = 5:4:4:1 , /// ybcov_bin = 6:5:5:. , /// ybcov_dep = .:.:.:5 ) /// order(civreg_bin:diff* popreg_bin:diff* statag_bin:diff* /// census_bin:diff* census_ord:diff* census_dep:diff* ybcov_bin:diff* ybcov_dep:diff* /// commondisc:disc* /// civreg_bin:disc* popreg_bin:disc* statag_bin:disc* /// census_bin:disc* census_ord:disc* census_dep:disc* ybcov_bin:disc* ybcov_dep:disc*) /// rename("`varrename2'" ) /// varlabels("`labrename2'" ) /// cells(b(star fmt(2)) se(par fmt(2))) /// collabels(none) mlabels(none) /// stats(modN, labels("Number of Observations") fmt(%9.0g)) /// eqlabels(none) ** Separate parts of table for Latex file, selected parameters estout `modelst2' using irt_simple_and_hybrid_difficulty.tex, replace style(tex) /// starlevels("\mbox{*}" .10 "\mbox{**}" .05 "\mbox{***}" .01) varwidth(30) modelwidth(10) wrap /// equations( commondisc = 1:.:.:. , /// census_bin = 2:1:.:. , /// census_ord = .:.:1:. , /// census_dep = .:.:.:4 , /// civreg_bin = 3:2:2:2 , /// popreg_bin = 4:3:3:3 , /// statag_bin = 5:4:4:1 , /// ybcov_bin = 6:5:5:. , /// ybcov_dep = .:.:.:5 ) /// order(civreg_bin:diff* popreg_bin:diff* statag_bin:diff* /// census_bin:diff* census_ord:diff* census_dep:diff* ybcov_bin:diff* ybcov_dep:diff* /// commondisc:disc* /// civreg_bin:disc* popreg_bin:disc* statag_bin:disc* /// census_bin:disc* census_ord:disc* census_dep:disc* ybcov_bin:disc* ybcov_dep:disc*) /// keep( civreg_bin:diff* popreg_bin:diff* statag_bin:diff* /// census_bin:diff* census_ord:diff* census_dep:diff410_census_dep census_dep:diff420_census_dep census_dep:diff421_census_dep ybcov_bin:diff* ybcov_dep:diff910_ybcov_dep) /// rename("`varrename2'" ) /// varlabels("`labrename2'" ) /// cells(b(star fmt(2)) se(par fmt(2))) /// collabels(none) mlabels(none) /// eqlabels(none) estout `modelst2' using irt_simple_and_hybrid_discrimination.tex, replace style(tex) /// starlevels("\mbox{*}" .10 "\mbox{**}" .05 "\mbox{***}" .01) varwidth(30) modelwidth(10) wrap /// equations( commondisc = 1:.:.:. , /// census_bin = 2:1:.:. , /// census_ord = .:.:1:. , /// census_dep = .:.:.:4 , /// civreg_bin = 3:2:2:2 , /// popreg_bin = 4:3:3:3 , /// statag_bin = 5:4:4:1 , /// ybcov_bin = 6:5:5:. , /// ybcov_dep = .:.:.:5 ) /// order(civreg_bin:diff* popreg_bin:diff* statag_bin:diff* /// census_bin:diff* census_ord:diff* census_dep:diff* ybcov_bin:diff* ybcov_dep:diff* /// commondisc:disc* /// civreg_bin:disc* popreg_bin:disc* statag_bin:disc* /// census_bin:disc* census_ord:disc* census_dep:disc* ybcov_bin:disc* ybcov_dep:disc*) /// keep( commondisc:disc* /// civreg_bin:disc* popreg_bin:disc* statag_bin:disc* /// census_bin:disc* census_ord:disc* census_dep:disc* ybcov_bin:disc* ybcov_dep:disc*) /// rename("`varrename2'" ) /// varlabels("`labrename2'" ) /// cells(b(star fmt(2)) se(par fmt(2))) /// collabels(none) mlabels(none) /// eqlabels(none) estout `modelst2' using irt_simple_and_hybrid_nobs.tex, replace style(tex) /// starlevels("\mbox{*}" .10 "\mbox{**}" .05 "\mbox{***}" .01) varwidth(30) modelwidth(10) wrap /// equations( commondisc = 1:.:.:. , /// census_bin = 2:1:.:. , /// census_ord = .:.:1:. , /// census_dep = .:.:.:4 , /// civreg_bin = 3:2:2:2 , /// popreg_bin = 4:3:3:3 , /// statag_bin = 5:4:4:1 , /// ybcov_bin = 6:5:5:. , /// ybcov_dep = .:.:.:5 ) /// order(civreg_bin:diff* popreg_bin:diff* statag_bin:diff* /// census_bin:diff* census_ord:diff* census_dep:diff* ybcov_bin:diff* ybcov_dep:diff* /// commondisc:disc* /// civreg_bin:disc* popreg_bin:disc* statag_bin:disc* /// census_bin:disc* census_ord:disc* census_dep:disc* ybcov_bin:disc* ybcov_dep:disc*) /// keep( ) /// rename("`varrename2'" ) /// varlabels("`labrename2'" ) /// cells(b(star fmt(2)) se(par fmt(2))) /// collabels(none) mlabels(none) /// stats(modN, labels("Number of Observations") fmt(%9.0g)) /// eqlabels(none) * **************************************************************** ***** TABLE 2: Suffrage and Information Capacity, 1793--2007 ***** * **************************************************************** use statecapacity_withpred.dta, clear * Choose which IRT estimates to use * Use IRT GRM replace infcap_irt = infcap_irt_grm * Use IRT RSM *replace infcap_irt = infcap_irt_rsm * Other preliminaries set matsize 10000 xtset ccodecow year * Generate decade variable gen decade = floor(year/10) * Rescale dependent variables replace infcap_irt = infcap_irt*100 replace infcap_fac = infcap_fac*100 replace infcap_pca = infcap_pca*100 * Generate variables used in regressions xtset ccodecow year generate d_infcap_pca = D1.infcap_pca generate l_infcap_pca = L1.infcap_pca generate d_infcap_fac = D1.infcap_fac generate l_infcap_fac = L1.infcap_fac generate d_infcap_irt = D1.infcap_irt generate l_infcap_irt = L1.infcap_irt generate d_suffrage = D1.vdem_v2x_suffr generate l_suffrage = L1.vdem_v2x_suffr gen d_polyarchy= D1.vdem_v2x_polyarchy gen l_polyarchy= L1.vdem_v2x_polyarchy gen l_ln_madd_gdpcap=l.ln_madd_gdpcap gen d_ln_madd_gdpcap=D1.ln_madd_gdpcap gen lnpop=ln(madd_pop) gen l_lnpop=L1.lnpop gen d_lnpop=D1.lnpop gen d_cow_war=D1.cow_war gen l_cow_war=l.cow_war gen madd_gro=madd_gdpcap/l.madd_gdpcap-1 * Label variables label variable infcap_fac "Information Capacity" label variable infcap_irt "Information Capacity" label variable vdem_v2x_suffr "Suffrage" label variable d_infcap_pca "Information Capacity (change)" label variable l_infcap_pca "Information Capacity (lagged)" label variable d_infcap_fac "Information Capacity (change)" label variable l_infcap_fac "Information Capacity (lagged)" label variable d_infcap_irt "Information Capacity (change)" label variable l_infcap_irt "Information Capacity (lagged)" label variable d_suffrage "Suffrage (change)" label variable l_suffrage "Suffrage (lagged)" label var d_polyarchy "Polyarchy (change)" label var l_polyarchy "Polyarchy (lagged)" label var d_lnpop "ln(Population) (change)" label var l_lnpop "ln(Population) (lagged)" label var d_ln_madd_gdpcap "ln(GDP/capita) (change)" label var l_ln_madd_gdpcap "ln(GDP/capita) (lagged)" label var cow_war "War (Inter- and/or Extra-state)" label var d_cow_war "War (Inter- and/or Extra-state) (change)" label var l_cow_war "War (Inter- and/or Extra-state) (lagged)" label var d_polyarchy "DELTA Polyarchy" label var l_polyarchy "PolyarchyLAG" * Define new year dummies needed to produce tables with esttab generate year2 = year generate year3 = year generate year4 = year generate year5 = year generate year6 = year eststo clear * Define local lag variable for loops generate locallag = . label variable locallag "Information Capacity (lagged)" * Interpolate control variables bysort ccodecow: ipolate madd_pop year, gen(newpop) bysort ccodecow: ipolate madd_gdpcap year, gen(newgdp) gen ln_newpop = ln(newpop) gen ln_newgdp = ln(newgdp) * Run regressions for suffrage, including regressions with regions dropped foreach r in "NONE" "AMERICAS" "EUROPE" "ASIA" "MENA" "AFRICA" { foreach m in irt pca { replace locallag = l_infcap_`m' qui xtreg d_infcap_`m' d_suffrage i.year if Region != "`r'", fe est sto FD_`m'_`r' qui xtreg d_infcap_`m' locallag d_suffrage l_suffrage i.year2 if Region != "`r'", fe est sto ECM_`m'_`r' qui xtreg d_infcap_`m' locallag d_suffrage l_suffrage d_cow_war l_cow_war i.year3 if Region != "`r'", fe est sto WAR_`m'_`r' qui xtreg d_infcap_`m' locallag d_suffrage l_suffrage D1.ln_newpop L1.ln_newpop D1.ln_newgdp L1.ln_newgdp d_cow_war l_cow_war i.year4 if Region != "`r'", fe est sto CNTRL_`m'_`r' } esttab FD_irt_`r' ECM_irt_`r' WAR_irt_`r' CNTRL_irt_`r' CNTRL_pca_`r' using suffrage_excl_`r'.tex, /// keep(d_suffrage l_suffrage locallag d_cow_war l_cow_war D.ln_newpop L.ln_newpop D.ln_newgdp L.ln_newgdp) /// order(d_suffrage l_suffrage locallag d_cow_war l_cow_war D.ln_newpop L.ln_newpop D.ln_newgdp L.ln_newgdp) replace /// star(\mbox{*} 0.10 \mbox{**} 0.05 \mbox{***} 0.01) label b(2) se(2) nogaps booktabs frag nomtitles stats(N, fmt(0)) varwidth(40) /// coeflabels(d_suffrage "DELTASuffrage" l_suffrage "SuffrageLAG" locallag "Information CapacityLAG" D.ln_newgdp "DELTAln(GDP per Capita)" L.ln_newgdp "ln(GDP per Capita)LAG" D.ln_newpop "DELTAln(Population)" L.ln_newpop "ln(Population)LAG" d_cow_war "DELTAWar" l_cow_war "WarLAG") } * **************************************************************** ***** TABLE 3: Competitiveness and Information Capacity, 1793--2007 ***** * **************************************************************** use statecapacity_withpred.dta, clear ** Choose which IRT estimates to use * IRT GRM replace infcap_irt = infcap_irt_grm * IRT RSM *replace infcap_irt = infcap_irt_rsm set matsize 10000 xtset ccodecow year gen decade = floor(year/10) replace infcap_irt = infcap_irt*100 replace infcap_fac = infcap_fac*100 replace infcap_pca = infcap_pca*100 xtset ccodecow year generate d_infcap_pca = D1.infcap_pca generate l_infcap_pca = L1.infcap_pca generate d_infcap_fac = D1.infcap_fac generate l_infcap_fac = L1.infcap_fac generate d_infcap_irt = D1.infcap_irt generate l_infcap_irt = L1.infcap_irt generate d_suffrage = D1.vdem_v2x_suffr generate l_suffrage = L1.vdem_v2x_suffr gen d_polyarchy= D1.vdem_v2x_polyarchy gen l_polyarchy= L1.vdem_v2x_polyarchy gen l_ln_madd_gdpcap=l.ln_madd_gdpcap gen d_ln_madd_gdpcap=D1.ln_madd_gdpcap gen lnpop=ln(madd_pop) gen l_lnpop=L1.lnpop gen d_lnpop=D1.lnpop gen d_cow_war=D1.cow_war gen l_cow_war=l.cow_war gen madd_gro=madd_gdpcap/l.madd_gdpcap-1 label variable infcap_fac "Information Capacity" label variable infcap_irt "Information Capacity" label variable vdem_v2x_suffr "Suffrage" label variable d_infcap_pca "Information Capacity (change)" label variable l_infcap_pca "Information Capacity (lagged)" label variable d_infcap_fac "Information Capacity (change)" label variable l_infcap_fac "Information Capacity (lagged)" label variable d_infcap_irt "Information Capacity (change)" label variable l_infcap_irt "Information Capacity (lagged)" label variable d_suffrage "Suffrage (change)" label variable l_suffrage "Suffrage (lagged)" label var d_polyarchy "Polyarchy (change)" label var l_polyarchy "Polyarchy (lagged)" label var d_lnpop "ln(Population) (change)" label var l_lnpop "ln(Population) (lagged)" label var d_ln_madd_gdpcap "ln(GDP/capita) (change)" label var l_ln_madd_gdpcap "ln(GDP/capita) (lagged)" label var cow_war "War (Inter- and/or Extra-state)" label var d_cow_war "War (Inter- and/or Extra-state) (change)" label var l_cow_war "War (Inter- and/or Extra-state) (lagged)" label var d_polyarchy "DELTA Polyarchy" label var l_polyarchy "PolyarchyLAG" * DEFINE NEW YEAR DUMMIES TO PRODUCE TABLE USING ESTTAB generate year2 = year generate year3 = year generate year4 = year generate year5 = year generate year6 = year eststo clear generate locallag = . label variable locallag "Information Capacity (lagged)" gen d_compet = D1.vdem_v2x_schump gen l_compet = L1.vdem_v2x_schump label variable vdem_v2x_schump "Competitiveness" label var d_compet "Competitiveness (change)" label var l_compet "Competitiveness (lagged)" foreach m in irt pca { replace locallag = l_infcap_`m' qui xtreg d_infcap_`m' d_compet i.year, fe est sto cFD_`m' qui xtreg d_infcap_`m' locallag d_compet l_compet i.year2, fe est sto cECM_`m' qui xtreg d_infcap_`m' locallag d_compet l_compet d_cow_war l_cow_war, fe est sto cWAR_`m' qui xtreg d_infcap_`m' locallag d_compet l_compet d_cow_war l_cow_war l_ln_madd_gdpcap d_ln_madd_gdpcap d_lnpop l_lnpop i.year4, fe est sto cCNTRL_`m' } esttab cFD_irt cECM_irt cWAR_irt cCNTRL_irt cCNTRL_pca using competition2.tex, /// keep(d_compet l_compet locallag d_ln_madd_gdpcap l_ln_madd_gdpcap d_lnpop l_lnpop d_cow_war l_cow_war) /// order(d_compet l_compet locallag d_cow_war l_cow_war d_ln_madd_gdpcap l_ln_madd_gdpcap d_lnpop l_lnpop ) replace /// star(\mbox{*} 0.10 \mbox{**} 0.05 \mbox{***} 0.01) label b(2) se(2) nogaps booktabs frag nomtitles stats(N, fmt(0)) varwidth(40) /// coeflabels(d_compet "DELTACompetition" l_compet "CompetitionLAG" locallag "Information CapacityLAG" d_ln_madd_gdpcap "DELTAln(GDP per Capita)" l_ln_madd_gdpcap "ln(GDP per Capita)LAG" d_lnpop "DELTAln(Population)" l_lnpop "ln(Population)LAG" d_cow_war "DELTAWar" l_cow_war "WarLAG") * **************************************************************** ***** TABLE 4: Competitiveness and Information Capacity, 1793--2007 ***** * **************************************************************** use statecapacity_withpred.dta, clear ** Choose which IRT estimates to use * IRT GRM replace infcap_irt = infcap_irt_grm * IRT RSM *replace infcap_irt = infcap_irt_rsm set matsize 10000 xtset ccodecow year gen decade = floor(year/10) replace infcap_irt = infcap_irt*100 replace infcap_fac = infcap_fac*100 replace infcap_pca = infcap_pca*100 xtset ccodecow year generate d_infcap_pca = D1.infcap_pca generate l_infcap_pca = L1.infcap_pca generate d_infcap_fac = D1.infcap_fac generate l_infcap_fac = L1.infcap_fac generate d_infcap_irt = D1.infcap_irt generate l_infcap_irt = L1.infcap_irt generate d_suffrage = D1.vdem_v2x_suffr generate l_suffrage = L1.vdem_v2x_suffr gen d_polyarchy= D1.vdem_v2x_polyarchy gen l_polyarchy= L1.vdem_v2x_polyarchy gen l_ln_madd_gdpcap=l.ln_madd_gdpcap gen d_ln_madd_gdpcap=D1.ln_madd_gdpcap gen lnpop=ln(madd_pop) gen l_lnpop=L1.lnpop gen d_lnpop=D1.lnpop gen d_cow_war=D1.cow_war gen l_cow_war=l.cow_war gen madd_gro=madd_gdpcap/l.madd_gdpcap-1 label variable infcap_fac "Information Capacity" label variable infcap_irt "Information Capacity" label variable vdem_v2x_suffr "Suffrage" label variable d_infcap_pca "Information Capacity (change)" label variable l_infcap_pca "Information Capacity (lagged)" label variable d_infcap_fac "Information Capacity (change)" label variable l_infcap_fac "Information Capacity (lagged)" label variable d_infcap_irt "Information Capacity (change)" label variable l_infcap_irt "Information Capacity (lagged)" label variable d_suffrage "Suffrage (change)" label variable l_suffrage "Suffrage (lagged)" label var d_polyarchy "Polyarchy (change)" label var l_polyarchy "Polyarchy (lagged)" label var d_lnpop "ln(Population) (change)" label var l_lnpop "ln(Population) (lagged)" label var d_ln_madd_gdpcap "ln(GDP/capita) (change)" label var l_ln_madd_gdpcap "ln(GDP/capita) (lagged)" label var cow_war "War (Inter- and/or Extra-state)" label var d_cow_war "War (Inter- and/or Extra-state) (change)" label var l_cow_war "War (Inter- and/or Extra-state) (lagged)" label var d_polyarchy "DELTA Polyarchy" label var l_polyarchy "PolyarchyLAG" * DEFINE NEW YEAR DUMMIES TO PRODUCE TABLE USING ESTTAB generate year2 = year generate year3 = year generate year4 = year generate year5 = year generate year6 = year eststo clear generate locallag = . label variable locallag "Information Capacity (lagged)" gen d_cg_tax_gdp=D1.cg_tax_gdp gen l_cg_tax_gdp=L1.cg_tax_gdp label var d_cg_tax_gdp "Tax to GDP ratio (change)" label var l_cg_tax_gdp "Tax to GDP ratio (lagged)" replace locallag = l_cg_tax_gdp label variable locallag "Taxes to GDP ratio (lagged)" qui xtreg d_cg_tax_gdp d_suffrage i.year, fe est sto FD_t qui xtreg d_cg_tax_gdp locallag d_suffrage l_suffrage i.year2, fe est sto ECM_t qui xtreg d_cg_tax_gdp locallag d_suffrage l_suffrage d_cow_war l_cow_war i.year3, fe est sto WAR_t qui xtreg d_cg_tax_gdp locallag d_suffrage l_suffrage l_ln_madd_gdpcap d_ln_madd_gdpcap d_lnpop l_lnpop d_cow_war l_cow_war i.year4, fe est sto CNTRL_t esttab FD_t ECM_t WAR_t CNTRL_t using taxratio2.tex, /// keep(d_suffrage l_suffrage locallag d_ln_madd_gdpcap l_ln_madd_gdpcap d_lnpop l_lnpop d_cow_war l_cow_war) /// order(d_suffrage l_suffrage locallag d_cow_war l_cow_war d_ln_madd_gdpcap l_ln_madd_gdpcap d_lnpop l_lnpop) replace /// star(\mbox{*} 0.10 \mbox{**} 0.05 \mbox{***} 0.01) label b(2) se(2) nogaps booktabs frag nomtitles stats(N, fmt(0)) varwidth(40) /// coeflabels(d_suffrage "DELTASuffrage" l_suffrage "SuffrageLAG" locallag "Information CapacityLAG" d_ln_madd_gdpcap "DELTAln(GDP per Capita)" l_ln_madd_gdpcap "ln(GDP per Capita)LAG" d_lnpop "DELTAln(Population)" l_lnpop "ln(Population)LAG" d_cow_war "DELTAWar" l_cow_war "WarLAG") ******