*****************************************************
*
* Table D3: Heterogeneous impacts of Bryan's speeches
*
*****************************************************

global program "TableD3"

cap log close
cap log using "$log_files/log_$program$today", replace

clear all
set mem 2g
set more off
set matsize 11000
set scheme s1color

***************************
***** 1. PREPARE DATA *****
***************************

// Get data

use "$data/Data_County", clear

// Controls definition

global geog 		"railroad_dens ldist_capital ldist_largest county_lat county_lon" 
global demo 		"urban_dum perc_pop_dstr lpop_total perc_white perc_male21 perc_below21 perc_native perc_literate newsp_circ_elig" 
global demo_cont	"perc_pop_dstr lpop_total perc_white perc_male21 perc_below21 perc_native perc_literate newsp_circ_elig" 
global econ 		"perc_farm perc_manuf dlog_avbasket ldist_silver ldist_gold" 
global econ_cont	"perc_farm perc_manuf dlog_avbasket ldist_silver ldist_gold" 
global econ_p 		"perc_farm perc_manuf log_avbasket ldist_silver ldist_gold" 
global vote 		"lag_margin_pres_ttl" 			
global demo_add		"urban_dum lpop_total larea perc_white perc_below21 perc_native perc_literate newsp_circ_elig pop_male2144 pop_male4564 pop_male6599 perc_catholic perc_black"
  
// The sample

reghdfe dempop_pres_ttl speech lag_dem_pres_ttl lag_pop_pres_ttl	$demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) // keepsing
g sample=1*(e(sample))

keep if sample==1

****************************
***** 2. TABLE RESULTS *****
****************************

// Column 1

reghdfe dempop_pres_ttl speech c.speech#c.perc_manuf  c.speech#c.perc_farm ///
	lag_dem_pres_ttl lag_pop_pres_ttl $demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) 
estimates store het_mf
qui sum dempop_pres_ttl if e(sample)
scalar mean_y=r(mean)
estadd scalar mean_y

// Column 2

reghdfe dempop_pres_ttl speech c.speech#c.perc_manuf  c.speech#c.perc_farm   c.speech#c.urban_dum /// 
	lag_dem_pres_ttl lag_pop_pres_ttl $demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) 
estimates store het_mf_urb
qui sum dempop_pres_ttl if e(sample)
scalar mean_y=r(mean)
estadd scalar mean_y

// Column 3

reghdfe dempop_pres_ttl speech c.speech#c.perc_manuf  c.speech#c.perc_farm   c.speech#c.urban_dum  c.speech#c.lag_pop_pres_ttl 	 /// 
	lag_dem_pres_ttl lag_pop_pres_ttl $demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) 
estimates store het_mf_pop
qui sum dempop_pres_ttl if e(sample)
scalar mean_y=r(mean)
estadd scalar mean_y

// Column 4

reghdfe dempop_pres_ttl speech c.speech#c.newsp_circ_elig   /// 
	lag_dem_pres_ttl lag_pop_pres_ttl $demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) 
estimates store het_newsp
qui sum dempop_pres_ttl if e(sample)
scalar mean_y=r(mean)
estadd scalar mean_y

// Column 5

reghdfe dempop_pres_ttl speech c.speech#c.newsp_circ_elig c.speech#c.perc_manuf  c.speech#c.perc_manuf#c.newsp_circ_elig c.perc_manuf#c.newsp_circ_elig c.speech#c.perc_farm   /// 
	lag_dem_pres_ttl lag_pop_pres_ttl $demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) 
estimates store het_newsp_manuf
qui sum dempop_pres_ttl if e(sample)
scalar mean_y=r(mean)
estadd scalar mean_y

// Column 6

reghdfe dempop_pres_ttl  trip_1-trip_4 lag_dem_pres_ttl lag_pop_pres_ttl $demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) 
estimates store het_trip
qui sum dempop_pres_ttl if e(sample)
scalar mean_y=r(mean)
estadd scalar mean_y

// Column 7

reghdfe dempop_pres_ttl  speech c.speech#c.speech_date_dist lag_dem_pres_ttl lag_pop_pres_ttl $demo $geog $econ if year==1896 & state_speech==1 & railroad_dum==1, cluster(district) a(state) 
estimates store het_date
qui sum dempop_pres_ttl if e(sample)
scalar mean_y=r(mean)
estadd scalar mean_y

***************************
***** 3. EXPORT TABLE *****
***************************

// Fixed effects

estfe . het_*, labels(state "State FE")
return list

// Labels

la var speech				"[0.5em] Speech"
la var year 				"[0.5em] Year"
la var perc_manuf 			"Workers (\%)"
la var perc_farm 			"Farmers (\%)"
la var urban_dum 			"Urban county"
la var trip_1				"[0.5em] Speech $ \times $ 1st trip"
la var trip_2				"[0.5em] Speech $ \times $ 2nd trip"
la var trip_3				"[0.5em] Speech $ \times $ 3rd trip"
la var trip_4				"[0.5em] Speech $ \times $ 4th trip"
la var speech_date_dist		"Days since campaign start"
la var newsp_circ_elig		"Newspapers circulation"
la var lag_pop_pres_ttl		"Populist 1892 (\%)"

// Table

estout het_* ///
	using "$tables/$program.tex", replace style(tex) type label ///
	cells(b(star fmt(%9.3f)) se(par fmt(%9.3f)))  ///
	stats(mean_y N N_clust r2_a, lab("Mean dep. variable" "Observations" "Clusters" "Adjusted $ R^2 $") fmt(2 %9.0fc 0 2)) ///
	collabels(none) ///
	mlabels(, span none prefix(\multicolumn{@span}{c}{) suffix(})) ///
	msign(--) starlevels(* .1 ** .05 *** .01) ///
	keep(speech c.speech#c.perc_manuf  c.speech#c.perc_farm c.speech#c.urban_dum c.speech#c.lag_pop_pres_ttl ///
	c.speech#c.newsp_circ_elig c.speech#c.perc_manuf#c.newsp_circ_elig c.perc_manuf#c.newsp_circ_elig ///
	trip_1 trip_2 trip_3 trip_4 c.speech#c.speech_date_dist lag_dem_pres_ttl lag_pop_pres_ttl perc_manuf perc_farm urban_dum) /// 
	order(speech c.speech#c.perc_manuf c.speech#c.perc_farm c.speech#c.urban_dum c.speech#c.lag_pop_pres_ttl ///
	c.speech#c.newsp_circ_elig c.speech#c.perc_manuf#c.newsp_circ_elig ///
	trip_1 trip_2 trip_3 trip_4 c.speech#c.speech_date_dist lag_dem_pres_ttl lag_pop_pres_ttl perc_manuf perc_farm urban_dum c.perc_manuf#c.newsp_circ_elig) ///
	varlabels(speech "Speech (binary)" lag_dem_pres_ttl "[0.5em] Democratic vote (\%) in 1892" lag_pop_pres_ttl "[0.5em] Populist vote (\%) in 1892" perc_manuf "[0.5em] Workers (\%)" perc_farm "[0.5em] Farmers (\%)" ///
	urban_dum "[0.5em] Urban county" c.speech#c.perc_manuf#c.newsp_circ_elig "[0.5em] Speech $ \times $ Workers (\%) $ \times $ News circ" c.perc_manuf#c.newsp_circ_elig "[0.5em] Workers (\%) $ \times $ News circulation") /// 
	title(Heterogeneous impacts of Bryan's speeches) ///
	indicate("\\  Demographic controls = lpop_total" ///	
	"Geographic controls = railroad_dens" ///	
	"Economic controls = dlog_avbasket" ///
	"State FE = 0.state" ///	
	, labels(Yes )) ///
	prehead("\begin{table}[h!]" ///
	"\begin{center}" ///
	"\begin{threeparttable}" ///
	"\begin{scriptsize}" ///
	"\caption{@title}\label{$program}" ///
	"\begin{tabular*}{\columnwidth}{@{\extracolsep{\stretch{1}}}l*{@M}{c}@{}}" ///
	"\hline" "\hline" ///
	"&\multicolumn{1}{c}{(1)} 	&\multicolumn{1}{c}{(2)}  		&\multicolumn{1}{c}{(3)} 	 	&\multicolumn{1}{c}{(4)} 	&\multicolumn{1}{c}{(5)}  	&\multicolumn{1}{c}{(6)}  &\multicolumn{1}{c}{(7)} \\" /// 
	"\multicolumn{1}{l}{\textit{Dep. Variable}} 	&\multicolumn{6}{c}{Democratic vote (\%) in 1896}\\" ///
	"\hline") ///
	posthead("\\") ///
	prefoot("\hline") ///
	postfoot("\hline" "\hline" ///
	"\end{tabular*}" /// 
	"\end{scriptsize}" ///
	"\begin{tablenotes}[normal,flushleft]" ///
	"\begin{scriptsize}" ///
	"\item \emph{Notes}: OLS regressions. The unit of observation is a county. " ///
	"Demographic controls: Urban (binary), District population (\%),  Log population, White (\%), Male above 21 (\%), Native (\%). " ///
	"Geographic controls: Railroad density (km per sq. km), Distance to state capital (log), Distance to state largest city (log), Latitude, Longitude. " ///
	"Economic controls: Farmers (\%), Manufacture workers (\%)." ///
	"All regressions include State fixed-effects. " ///
	"Standard errors clustered at the Congressional district level in parentheses." /// 
	"* significant at 10\%; ** at 5\%; *** at 1\%. " ///	
	"\end{scriptsize}" ///
	"\end{tablenotes}" ///
	"\end{threeparttable} " ///
	"\end{center}" ///
	"\end{table}") //	
														
cap log close
