use "maindata.dta", clear set more off local i = "Adderley_S~t Cable_Stat~n Caffe_Neo Camps_Bay Clifton_Be~h Four_Seasons Gardens_Ce~e Green_Mark~q Hotel_Ritz Internatio~C Kirstenbos~s Long_Street Mount_Nels~l Train_Stat~n Waterfront~m Waterfront~l Waterkant_~l" local j = "Adderley_S~t Cable_Stat~n Camps_Bay Clifton_Be~h Four_Seasons Gardens_Ce~e Hotel_Ritz Internatio~C Kirstenbos~s Long_Street Mount_Nels~l Train_Stat~n Waterfront~m Waterfront~l Waterkant_~l" *** Table 2: Departure and Destination Ranks estimates clear estpost tab destination, nototal matrix b = e(b) matrix colnames b = `i' ereturn post b eststo destinations estpost tab departure, nototal matrix c = e(b) matrix colnames c = `j' ereturn post c eststo departures esttab departures destinations using tab_ranks.txt, replace label tex **** Table 3: Test of randomization, and Table 5: Main results tab departure, gen(ddep) tab destination, gen(ddes) tab date, gen(ddate) tab route, gen(droute) reg dtreat ddep* matrix define c = e(df_m),e(df_r),round(e(F),0.001),round(Ftail(e(df_m),e(df_r),e(F)),0.001) reg dtreat ddes* matrix define c = c \ e(df_m),e(df_r),round(e(F), 0.001),round(Ftail(e(df_m),e(df_r),e(F)),0.001) reg dtreat ddate* matrix define c = c \ e(df_m),e(df_r),round(e(F), 0.001),round(Ftail(e(df_m),e(df_r),e(F)),0.001) reg dtreat droute* matrix define c = c \ e(df_m),e(df_r),round(e(F), 0.001),round(Ftail(e(df_m),e(df_r),e(F)),0.00001) drop droute* ddate* ddes* ddep* matrix rownames c = Departure Destination Date Route matrix colnames c = Regressors DF F p-value esttab matrix(c) using tab_chi2ranks.txt, replace label tex gen qtreat=(1-dtreat) local prectrls="xdistance starthour dradio dindependent dtaximeter dhatchback dsedan dstation dbelt" estimates clear estpost ttest `prectrls' xprice distance devdist pricepaid devprice adjprice devadjprice, by(qtreat) estout using tab_predet.txt, cells("mu_1(fmt(2)) mu_2 b(star) p(fmt(%9.3f))" ". . se(par)") replace style(tex) starlevels(* 0.1 ** 0.05 *** 0.01) *** Table 4: Response to treatment (compliancE) estimates clear estpost tab dtreat usedmeter, nototal matrix b = e(b) estadd scalar overall = 100*((b[1,1] + b[1,4]) / 176) estimates store m1 estpost tab treatment usedmeter, nototal estimates store m2 esttab m1 using tab_compliance1.txt, cell(b(fmt(g)) rowpct(fmt(1) par)) scalars(overall) replace label tex unstack esttab m2 using tab_compliance2.txt, cell(b(fmt(g)) rowpct(fmt(1) par)) replace label tex unstack *** Figure 2 and Figure 3 kdensity devdist if dtreat==1 & devdist<5, gen(at0 kdensity0) nograph kdensity devdist if dtreat==0 & devdist<5, gen(at1 kdensity1) nograph outfile at0 kdensity0 using "distance_kdensity0.data" if at0!=., replace outfile at1 kdensity1 using "distance_kdensity1.data" if at1!=., replace drop at0 at1 kdensity0 kdensity1 kdensity devadjprice if dtreat==1 & devdist<5, gen(pat0 pkdensity0) nograph kdensity devadjprice if dtreat==0 & devdist<5, gen(pat1 pkdensity1) nograph outfile pat0 pkdensity0 using "price_kdensity0.data" if pat0!=., replace outfile pat1 pkdensity1 using "price_kdensity1.data" if pat1!=., replace drop pat0 pat1 pkdensity0 pkdensity1 **** Table 6: Experimental evidence of excessive driving xtset route estimates clear reg devdist dtreat, robust estimates store m1 reg devdist dtreat xdistance, robust estimates store m2 reg devdist dtreat `prectrls', robust estimates store m3 xtreg devdist dtreat xdistance, re robust estimates store m4 xtreg devdist dtreat xdistance, fe robust estimates store m5 estout * using tabdistreg.txt, keep(dtreat) replace collabel(none) nonumbers label legend stats(N, fmt(%9.0f) labels("Obs.")) style(tex) /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) mlabels(,none) nolegend starlevels(* 0.10 ** 0.05 *** 0.01) **** Table B2: Experimental evidence of excessive driving: subtreatments estimates clear xtset route xi: reg devdist streat2 streat3 streat4 , robust estimates store m1 xi: reg devdist streat2 streat3 streat4 xdistance, robust estimates store m2 xtreg devdist streat2 streat3 streat4 , re estimates store m3 xtreg devdist streat2 streat3 streat4 , fe estimates store m4 estout * using tabdistbreak.txt, replace collabel(none) nonumbers label legend stats(N, fmt(%9.0f) labels("Obs.")) style(tex) /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) mlabels(,none) nolegend starlevels(* 0.10 ** 0.05 *** 0.01) *** Table B1: intention to treat, on-treatment, per-protocol, IV: gen btreat=dtreat==0 estimates clear reg usedmeter btreat, robust estimates store m1 reg devdist btreat, robust estimates store m2 reg devdist btreat if compliance==1, robust estimates store m3 reg devdist usedmeter, robust estimates store m4 ivreg devdist (usedmeter=btreat), robust estimates store m5 estout * using tabIV.txt, replace collabel(none) numbers label legend stats(N, fmt(%9.0f) labels("Obs.")) style(tex) /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) mlabels(,none) nolegend starlevels(* 0.10 ** 0.05 *** 0.01) *** Table B4: The tipping factor. End price relativ asking price, subtreatments. xtset route estimates clear reg devprice streat2 streat3 streat4, robust estimates store m1 reg devprice streat2 streat3 streat4 xdistance, robust estimates store m2 xtreg devprice streat2 streat3 streat4, re robust estimates store m3 xtreg devprice streat2 streat3 streat4, fe robust estimates store m4 estout * using tabpricereg2.txt, replace collabel(none) numbers label legend stats(N, fmt(%9.0f) labels("Obs.")) style(tex) /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) mlabels(,none) nolegend starlevels(* 0.10 ** 0.05 *** 0.01) *** Table 7: Asking price relative advertise price across subtreatments xtset route estimates clear reg devadjprice streat2 streat3 streat4, robust estimates store m1 reg devadjprice streat2 streat3 streat4 xdistance, robust estimates store m2 xtreg devadjprice streat2 streat3 streat4, re robust estimates store m3 xtreg devadjprice streat2 streat3 streat4, fe robust estimates store m4 estout * using tabpricereg.txt, replace collabel(none) numbers label legend stats(N, fmt(%9.0f) labels("Obs.")) style(tex) /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) mlabels(,none) nolegend starlevels(* 0.10 ** 0.05 *** 0.01) *** Table B3: Fuel consumption, carbondioxide emissions, speed, time: gen kmh=60*60*(distance/dsec) gen speedredux=0 gen mph=maxspeed/1.609 replace speedredux=0.421619465 if mph<7.5 replace speedredux=0.668927004 if mph>=7.5 & mph<12.5 replace speedredux=0.87754288 if mph>=12.5 & mph<17.5 replace speedredux=1 if mph>=17.5 & mph<22.5 replace speedredux=1.096130834 if mph>=22.5 & mph<27.5 replace speedredux=1.138412445 if mph>=27.5 & mph<32.5 replace speedredux=1.111687276 if mph>=32.5 & mph<37.5 replace speedredux=1.136019146 if mph>=37.5 & mph<42.5 replace speedredux=1.162744316 if mph>=42.5 & mph<47.5 replace speedredux=1.162744316 if mph>=47.5 gen liter=((cty*distance)/speedredux) gen co2=2390*liter/1000 gen costs=7*(distance*0.2+liter*1.5) estimates clear reg dsec dtreat xdistance, robust estimates store m1 reg kmh dtreat xdistance, robust estimates store m2 reg liter dtreat xdistance, robust estimates store m3 reg costs dtreat xdistance, robust estimates store m4 reg co2 dtreat xdistance, robust estimates store m5 estout * using speed.txt, replace collabel(none) numbers label legend stats(N, fmt(%9.0f) labels("Obs.")) style(tex) /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) mlabels(,none) nolegend starlevels(* 0.10 ** 0.05 *** 0.01) estimates clear estpost tabstat dsec kmh liter costs co2, by(dtreat) esttab using levelsspeed.txt, tex cells("dsec(fmt(2)) kmh liter costs co2") replace *** Table 8: Moral hazard and the bounds of bargaining gen qdif=(longest-shortest)>0 & (longest-shortest)<2 estimates clear tab treat, gen(btreat) xi: reg devdist btreat1 btreat2 btreat4 xdistance i.departure if qdif==1 estimates store m1 xi: reg devdist btreat1 btreat2 btreat4 xdistance i.departure if qdif==0 estimates store m2 xi: reg devadjprice btreat1 btreat2 btreat4 xdistance i.departure if qdif==1 estimates store m3 xi: reg devadjprice btreat1 btreat2 btreat4 btreat2 btreat4 xdistance i.departure if qdif==0 estimates store m4 estout * using information.txt, replace collabel(none) numbers label legend stats(N, fmt(%9.0f) labels("Obs.")) style(tex) /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) mlabels(,none) nolegend starlevels(* 0.10 ** 0.05 *** 0.01)