#delimit; set more off; local root "C:\Documents\Energy-Efficient Housing in Mexico-Data & Code\Energy-Efficient Housing in Mexico-Data & Code"; graph set eps fontface Calibri; graph set print fontface Calibri; graph set window fontface Calibri; cd "`root'"; local hhvars "hhsize under18 owned age_head educ_head married_head employed_head"; *----------------------------------------------------*; *---------BRING IN AND ORGANIZE SURVEY DATA----------*; *----------------------------------------------------*; *HOUSING UNIT DATA; *The housing unit and all other survey data received September 2016; *Unit of obseveration is the household; use "`root'\rawsurvey\vivienda_long_vold2.dta", clear; tab P704; gen owned=0; replace owned=1 if P704==3 | P704==4; tab owned; tab P705; tab P706; gen rent=P706; replace rent=P705 if owned==1; sum rent if rent!=. & rent>1; replace rent=r(mean) if rent==. | rent<=1; tab P810a_2; gen hasAC=0; replace hasAC=1 if P810a_2==1; tab hasAC; tab P810a_4; gen hasFAN=0; replace hasFAN=1 if P810a_4==1; tab hasFAN; tab P810a_5; gen hasHEAT=0; replace hasHEAT=1 if P810a_5==1; tab hasHEAT; tab P809_1; gen reportHOT=0; replace reportHOT=1 if P809_1==1 | P809_1==2; tab reportHOT; tab P809_2; gen reportCOLD=0; replace reportCOLD=1 if P809_2==4 | P809_2==5; tab reportCOLD; tab P813a; gen useAC=0; replace useAC=P813a if P813a>0; sum useAC; tab P816_a; gen reportMORNING=0; replace reportMORNING=1 if P816_a==1; tab reportMORNING; tab P816_b; gen reportAFTERNOON=0; replace reportAFTERNOON=1 if P816_b==1; tab reportAFTERNOON; tab P816_c; gen reportNIGHT=0; replace reportNIGHT=1 if P816_c==1; tab reportNIGHT; tab P1008; replace P1008=. if P1008<0; sum P1012_c; rename Pregistro Pregistro0; keep Folio_SIMO id_bid prototipo interior owned rent hasHEAT useAC P1008 P1012_c report* P1312 P1313 P1314a P1314b ID_SENSOR Pregistro0; sort id_bid; save "`root'\intermediate\home.dta", replace; sum; *ADDITIONAL APPLIANCE (`ELECTRODOMESTICO') DATA; *Unit of observation is the household by appliance pair; *TV (Either flatscreen or conventional, Air Conditioning, Fan, Refrigerator; *For AC and Fans I use these rather than the same question from housing data, but two are very similar; use "`root'\rawsurvey\electro_long_vold.dta", clear; keep if electro==2 | electro==3; tab electro; bysort id_bid: keep if _n==1; sort id_bid; merge 1:1 id_bid using "`root'\intermediate\home.dta"; gen hasTV=0; replace hasTV=1 if _merge==3; gen useTV=P912_a; sum useTV; keep id_bid hasTV useTV; save "`root'\intermediate\eTV.dta", replace; use "`root'\rawsurvey\electro_long_vold.dta", clear; keep if electro==8; tab electro; bysort id_bid: keep if _n==1; sort id_bid; merge 1:1 id_bid using "`root'\intermediate\home.dta"; gen hasAC=0; replace hasAC=1 if _merge==3; gen useACyr=P912_a; sum useACyr; keep id_bid hasAC useACyr; save "`root'\intermediate\eAC.dta", replace; use "`root'\rawsurvey\electro_long_vold.dta", clear; keep if electro==10; tab electro; bysort id_bid: keep if _n==1; sort id_bid; merge 1:1 id_bid using "`root'\intermediate\home.dta"; gen hasFAN=0; replace hasFAN=1 if _merge==3; gen useFAN=P912_a; replace useFAN=0 if useFAN<0; sum useFAN; keep id_bid hasFAN useFAN; save "`root'\intermediate\eFAN.dta", replace; use "`root'\rawsurvey\electro_long_vold.dta", clear; keep if electro==12; tab electro; bysort id_bid: keep if _n==1; sort id_bid; merge 1:1 id_bid using "`root'\intermediate\home.dta"; gen hasRF=0; replace hasRF=1 if _merge==3; keep id_bid hasRF; save "`root'\intermediate\eRF.dta", replace; *INDIVIDUAL LEVEL DATA; *Keep head of household only; *If no head indicated use male spouse; *If no head or male spouse use famale spouse; *If none of the above use oldest household member; *Then code up household demographics; use "`root'\rawsurvey\individuo_long_vold_18oct16.dta", clear; tab P301; gen head=0; replace head=1 if P301==1; bysort id_bid: egen headpresent=max(head); tab headpresent; replace head=1 if headpresent==0 & P202==1 & P301==2; drop headpresent; bysort id_bid: egen headpresent=max(head); tab headpresent; replace head=1 if headpresent==0 & P202==2 & P301==2; drop headpresent; bysort id_bid: egen headpresent=max(head); tab headpresent; gsort id_bid -P203; bysort id_bid: gen ageorder=_n; replace head=1 if headpresent==0 & ageorder==1; drop headpresent; bysort id_bid: egen headpresent=max(head); tab headpresent; gen under18=0; replace under18=1 if P203<=18; tab under18; gen age_head=0; replace age_head=P203 if head==1; gen married_head=0; replace married_head=1 if (P303==2 | P303==3) & head==1; tab P403; gen educ_head=2; replace educ_head=6 if P403==2; replace educ_head=9 if P403==3 | P403==4; replace educ_head=12 if P403==5 | P403==6 | P403==7; replace educ_head=16 if P403==8; replace educ_head=18 if P403==9; replace educ_head=0 if head!=1; gen employed_head=0; replace employed_head=1 if head==1 & P501_1a==1; collapse (count) hhsize=under18 (sum) under18 (max) educ_head age_head married_head employed_head, by(id_bid); sort id_bid; save "`root'\intermediate\demographics.dta", replace; *ADDITIONAL SURVEY DATA FROM THIRD DATA DUMP IN JULY 2017 (RDD3), WHICH INCLUDES WINDOW BEHAVIOR; use "`root'\other materials RDD3\7. BD-encuesta-medidor_RDD3.dta", clear; tab tiempo; replace v7=v7/60 if tiempo==2; drop tiempo; gen win_observed_open=0; replace win_observed_open=1 if v1==1; gen win_open_summer=0; replace win_open_summer=1 if v3==1; gen win_open_summer_day=0; replace win_open_summer_day=1 if v4==1; gen win_open_summer_night=0; replace win_open_summer_night=1 if v5==1; gen win_frequency_everyday=0; replace win_frequency_everyday=1 if v6==1; gen win_frequency_almosteveryday=0; replace win_frequency_almosteveryday=1 if v6==2; gen win_frequency_sometimes=0; replace win_frequency_sometimes=1 if v6==3; gen win_frequency_never=0; replace win_frequency_never=1 if v6==4 | v6==.; gen win_open_hours=v7; replace win_open_hours=0 if v7==.; keep win* folio*; rename folio_simo Folio_SIMO; sort Folio_SIMO; save "`root'\intermediate\windowbehavior.dta", replace; *PREPARE ELECTRICITY METER READINGS; *These data augment the initial meter reads which are included in home data; *I'm only using the cumulative consumption reading itself, none of the other variables; use "`root'\other materials RDD1 and RDD2\Base_datos medidor_RDD1.dta", clear; rename Pregistro Pregistro1; rename folio_simo Folio_SIMO; sort Folio_SIMO; keep Folio_SIMO Pregistro*; sum; save "`root'\intermediate\elecreading1.dta", replace; use "`root'\other materials RDD1 and RDD2\Base_datos medidor_RDD2.dta", clear; rename Pregistro Pregistro2; rename folio_simo Folio_SIMO; sort Folio_SIMO; keep Folio_SIMO Pregistro*; sum; save "`root'\intermediate\elecreading2.dta", replace; use "`root'\other materials RDD3\7. BD-encuesta-medidor_RDD3.dta", clear; rename Pregistro Pregistro3; rename folio_simo Folio_SIMO; sort Folio_SIMO; keep Folio_SIMO Pregistro*; sum; save "`root'\intermediate\elecreading3.dta", replace; use "`root'\other materials RDD4\7. Base_RDD4__ECOCASA.dta", clear; rename pregistro Pregistro4; rename id Folio_SIMO; sort Folio_SIMO; keep Folio_SIMO Pregistro*; sum; save "`root'\intermediate\elecreading4.dta", replace; *MERGE SURVEY DATA; *I include also total monthly household income in pesos, which Jorge constructed using all the income variables; use "`root'\intermediate\home.dta"; merge 1:1 id_bid using "`root'\intermediate\demographics.dta"; assert _merge==3; drop _merge; merge 1:1 id_bid using "`root'\intermediate\eTV.dta"; assert _merge==3; drop _merge; merge 1:1 id_bid using "`root'\intermediate\eAC.dta"; assert _merge==3; drop _merge; merge 1:1 id_bid using "`root'\intermediate\eFAN.dta"; assert _merge==3; drop _merge; merge 1:1 id_bid using "`root'\intermediate\eRF.dta"; assert _merge==3; drop _merge; merge 1:1 id_bid using "`root'\rawsurvey\ingresos_total_base.dta"; assert _merge==3; drop _merge; erase "`root'\intermediate\home.dta"; erase "`root'\intermediate\demographics.dta"; erase "`root'\intermediate\eTV.dta"; erase "`root'\intermediate\eAC.dta"; erase "`root'\intermediate\eFAN.dta"; erase "`root'\intermediate\eRF.dta"; *MERGE SURVEY WITH DATA FROM HOUSING DEVELOPMENT; *These data tell us which homes have eco technologies; *Drop homes that appear only in Sadasi data (_merge==2), these couldn't be interviewed; *Homes in survey data only (_merge==1) were added later and aren't ecocasas; merge 1:1 id_bid using "`root'\rawsurvey\id_bid_treatment.dta", keepusing(id_bid ecocasa fecha*); drop if _merge==2; replace ecocasa="N/A" if _merge==1; drop _merge; drop id_bid; tab ecocasa; rename ID_SENSOR sensorid; destring, replace; compress; *MERGE WITH DATA FROM THIRD DATA DUMP IN JULY 2017; merge 1:1 Folio_SIMO using "`root'\intermediate\windowbehavior.dta"; assert _merge!=2; drop _merge; *MERGE IN ELECTRICITY METER READING DATA; *Oddly 11111 was used as missing code during 4th round only; sort Folio_SIMO; merge 1:1 Folio_SIMO using "`root'\intermediate\elecreading1.dta"; drop _merge; sort Folio_SIMO; merge 1:1 Folio_SIMO using "`root'\intermediate\elecreading2.dta"; drop _merge; sort Folio_SIMO; merge 1:1 Folio_SIMO using "`root'\intermediate\elecreading3.dta"; drop _merge; sort Folio_SIMO; merge 1:1 Folio_SIMO using "`root'\intermediate\elecreading4.dta"; drop _merge; foreach x of numlist 0/4 {; replace Pregistro`x'=. if Pregistro`x'==0 | Pregistro`x'==-2 | Pregistro`x'==-3; }; replace Pregistro4=. if Pregistro4==1111 | Pregistro4==11111; replace Pregistro4=Pregistro3 if Pregistro4==.; gen elecdiff=Pregistro4-Pregistro1; replace elecdiff=. if elecdiff<0; save "`root'\intermediate\cleanedsurvey.dta", replace; *--------------------------------------------------------*; *-----------BRING IN AND ORGANIZE SENSOR DATA------------*; *--------------------------------------------------------*; *Due to file size limitations, we could not include the raw sensor data files *The commented-out code below was run to create an appended Stata file with sensor data from all four phases, collapsed to one observation per household per hour *The output file is sensor.dta, located in the intermediate data folder /* *SENSOR DATA RECEIVED NOVEMBER 2016 i.e. PHASE ONE; *This section takes a long time to run; *I initially found a few typos (e.g. mispelled worksheets) but shared with consultant and they fixed; *Sometimes it is necessary to pause Dropbox or you get an input/output problem with savings data.dta; *Another general problem I found is that sometimes the date field includes the hour; *I address that issue using the series of `capture' commands to avoid syntax errors; clear; cd "`root'\Archivos_RDD1\"; set type double; gen tempvar=.; save data.dta, replace; local files : dir "`root'\Archivos_RDD1\" files "*.xlsx"; foreach file in `files' {; display "`file'"; import excel using `file', sheet(Resumen) cellrange(B1:B2) clear; quietly sum B; local id=r(mean); import excel using `file', sheet(Datos) firstrow clear; gen sensorid=`id'; gen filename="`file'"; capture: drop Tipo; drop if Fecha==.; capture: drop if Fecha==""; capture: gen blank=strpos(Fecha,":"); capture: replace Fecha=substr(Fecha,1,10) if blank!=0; capture: replace Fecha=dofc(Fecha) if Fecha>22000; gen hour=hh(Hora); append using data.dta; save data.dta, replace; }; erase data.dta; drop tempvar; compress; destring, replace; compress; save "`root'\intermediate\completesensor1.dta", replace; *SENSOR DATA RECEIVED FEBRUARY 2017 i.e. PHASE TWO; *These data in quite good shape when received, just made a few adjustments; *477_557_RDD2 and 812_573_rdd2.xlsx both had excess blank space at top of sheet `Resumen' which i deleted by hand; *Also need to make sure that the outdoor weather data is not in the same directory; clear; cd "`root'\Archivos_RDD2\"; set type double; gen tempvar=.; save data.dta, replace; local files : dir "`root'\Archivos_RDD2\" files "*.xlsx"; foreach file in `files' {; display "`file'"; import excel using `file', sheet(Resumen) cellrange(B1:B2) clear; quietly sum B; local id=r(mean); import excel using `file', sheet(Datos) firstrow clear; gen sensorid=`id'; gen filename="`file'"; capture: drop Tipo; drop if Fecha==.; gen hour=hh(Hora); append using data.dta; save data.dta, replace; }; erase data.dta; drop tempvar; compress; destring, replace; compress; save "`root'\intermediate\completesensor2.dta", replace; *SENSOR DATA RECEIVED JULY 2017 i.e. PHASE THREE; *In file 1103-617-rdd3 there were some odd >85 degree observations which I replaced with missing; *Also minor, but in files 219-516-rdd3, 480-557-rdd3, and 974-577-rdd3 I renamed the worksheet from `resumen' to `Resumen'; *Also minor, but I moved file 512-558-rdd3 to `other' directory as contains only small number of observations from single day; clear; cd "`root'\Archivos_RDD3\"; set type double; gen tempvar=.; save data.dta, replace; local files : dir "`root'\Archivos_RDD3\" files "*.xlsx"; foreach file in `files' {; display "`file'"; import excel using `file', sheet(Resumen) cellrange(B1:B2) clear; quietly sum B; local id=r(mean); import excel using `file', sheet(Datos) firstrow clear; gen sensorid=`id'; gen filename="`file'"; capture: drop Tipo; drop if Fecha==.; capture: replace LecturasC="" if LecturasC=="> 85.0 "; destring LecturasC, replace; capture: drop A; gen hour=hh(Hora); append using data.dta; save data.dta, replace; }; erase data.dta; drop tempvar; compress; destring, replace; compress; save "`root'\intermediate\completesensor3.dta", replace; *SENSOR DATA RECEIVED NOVEMBER 2017 i.e. PHASE FOUR; *For some reason hours recorded as e.g. `p.m.' rather than `PM' as in previous phases; *I also removed an inadvertent space in filename for 1090_ 616_rdd4.xlsx; *Also file 133_515_rdd4.xlsx wouldn't load so i moved to `other' folder; clear; cd "`root'\Archivos_RDD4\"; set type double; gen tempvar=.; save data.dta, replace; local files : dir "`root'\Archivos_RDD4\" files "*.xlsx"; foreach file in `files' {; display "`file'"; import excel using `file', sheet(Resumen) cellrange(B1:B2) clear; quietly sum B; local id=r(mean); import excel using `file', sheet(Datos) firstrow clear; gen sensorid=`id'; gen filename="`file'"; capture: drop Tipo; drop if Fecha==.; drop if Hora==""; gen pm=strpos(Hora,"p.m."); gen hour=substr(Hora,1,2); destring hour, replace; replace hour=hour+12 if pm!=0 & hour!=12; replace hour=hour-12 if pm==0 & hour==12; drop pm; append using data.dta; save data.dta, replace; }; erase data.dta; drop tempvar; compress; destring, replace; compress; save "`root'\intermediate\completesensor4.dta", replace; *APPEND ALL PHASES OF SENSOR DATA; *Some file names use scores some use underscores; *We drop one household for which dates are incorrectly labeled as all from 2018; cd "`root'"; use "`root'\intermediate\completesensor1.dta", clear; append using "`root'\intermediate\completesensor2.dta"; append using "`root'\intermediate\completesensor3.dta"; drop Hora; append using "`root'\intermediate\completesensor4.dta"; gen underscore=strpos(filename,"_"); gen Folio_SIMO=substr(filename, 1,underscore-1); gen score=strpos(filename,"-"); replace Folio_SIMO=substr(filename, 1,score-1) if Folio_SIMO==""; drop if filename=="717_569_rdd2.xlsx"; drop filename underscore; destring Folio_SIMO, replace; compress; *KEEP ONE OBSERVATION PER HOUSEHOLD PER HOUR; collapse (mean) LecturasHR LecturasC, by(Folio_SIMO Fecha hour); *SAVE FILE WITH COLLAPSED SENSOR DATA FOR USE IN MERGE; preserve; save "`root'\intermediate\sensor.dta", replace; restore; */ *BRING IN OUTDOOR WEATHER DATA; set type double; import excel using "`root'\other materials RDD1 and RDD2\EcoCasa_Estación_Met_descarga_021116.xlsx", clear firstrow; destring, replace; compress; save temp.dta, replace; import excel using "`root'\other materials RDD1 and RDD2\EcoCasa_Estacion_Met_descarga_170217.xlsx", clear firstrow; drop if TempOut=="---"; destring, replace; compress; append using temp.dta; save temp.dta, replace; import excel using "`root'\other materials RDD3\5. EcoCasa_Estacion_Met_descarga_040717.xlsx", clear firstrow; drop if TempOut=="---"; destring, replace; compress; append using temp.dta; save temp.dta, replace; import excel using "`root'\other materials RDD4\5. EcoCasa_Estacion_Met_descarga_061117.xlsx", clear firstrow; drop if TempOut=="---"; destring, replace; compress; append using temp.dta; erase temp.dta; keep Date Time TempOut; duplicates report Date Time; sum; rename Date date; gen hour=hh(Time); collapse (mean) outdoortemp=TempOut, by(date hour); save "`root'\intermediate\outdoortemp.dta", replace; *PLOT OUTDOOR TEMPERATURE MIN AND MAX BY DAY; *NOT CURRENTLY USED IN PAPER; use "`root'\intermediate\outdoortemp.dta", clear; collapse (mean) mean=outdoortemp (max) max=outdoortemp (min) min=outdoortemp, by(date); display date("7/1/2016","MDY",2020); scatter min mean max date, mcolor(blue black red) msize(small small small) lcolor(blue black red) ytitle("Degrees, Celsius", size(small) margin(small)) xtitle("") xlabel(, labsize(small)) ylabel(, nogrid labsize(small)) legend(off) plotregion(style(none)) graphregion(fcolor(white)); graph export "`root'\paper\figs\OutdoorTemp.pdf", replace; *--------------------------------------------------------------*; *-----------MERGE DATA AND EXAMINE COVARIATE BALANCE-----------*; *--------------------------------------------------------------*; *MERGE SENSOR DATA WITH SURVEY DATA; *Sensor data must be downloaded and added to folder intermediate before proceeding *There are hundreds of households in survey data for which we don't have sensor data (i.e. _merge==2); *These households get dropped and we proceed with only those households for which we have sensor data; cd "`root'"; use "`root'\intermediate\sensor.dta", clear; merge m:1 Folio_SIMO using "`root'\intermediate\cleanedsurvey.dta"; assert _merge==2 | _merge==3; keep if _merge==3; drop _merge; *FINAL CLEANING; replace ytotales=ytotales/1000; replace hour=hour+1; replace ecocasa="0" if ecocasa=="N/A"; destring ecocasa, replace; *HOUSING DATES; *use mean for a small number of homes for which we don't have dates; gen datesold=date(fechaescrituracion,"DMY",2020); gen datekeys=date(fechadeentrega,"DMY",2020); gen yr=year(datesold); gen doy=doy(datesold); replace datesold=yr+doy/365; drop yr doy; gen yr=year(datekeys); gen doy=doy(datekeys); replace datekeys=yr+doy/365; drop yr doy; drop fechaescrituracion fechadeentrega; egen temp=mean(datesold); replace datesold=temp if datesold==.; drop temp; egen temp=mean(datekeys); replace datekeys=temp if datekeys==.; drop temp; *GENERATE MEASURES OF THERMAL COMFORT; rename Fecha date; rename LecturasC temperature; rename LecturasHR humidity; gen comfort1530=0; replace comfort1530=1 if temperature>=15 & temperature<=30; replace comfort1530=. if temperature==.; gen comfort1828=0; replace comfort1828=1 if temperature>=18 & temperature<=28; replace comfort1828=. if temperature==.; gen hoursabove25=0; replace hoursabove25=1 if temperature>25; replace hoursabove25=. if temperature==.; *DEFINE TREATMENT; gen treatment=0; replace treatment=1 if ecocasa==1 | ecocasa==2; *CREATE UNCONDITIONAL MEANS OF APPLIANCE USAGE; gen UNCONuseTV=useTV; replace UNCONuseTV=0 if hasTV==0; gen UNCONuseFAN=useFAN; replace UNCONuseFAN=0 if hasFAN==0; gen UNCONuseAC=useAC; replace UNCONuseAC=0 if hasAC==0; *COVARIATE BALANCE; *P1008 is "Expenditure on Last Electricity Bill (Pesos)"; preserve; local varlist hhsize under18 owned ytotales age_head educ_head married_head employed datesold datekeys hasTV hasFAN hasRF hasAC hasHEAT temperature humidity comfort1828 comfort1530 hoursabove25 Pregistro1 Pregistro4 elecdiff reportHOT reportCOLD reportMORNING reportAFTERNOON reportNIGHT useTV useFAN useAC P1008 rent UNCONuseTV UNCONuseFAN UNCONuseAC; collapse `varlist', by(Folio_SIMO treatment); sum `varlist' if treatment==1; sum `varlist' if treatment==0; foreach x of varlist `varlist' {; display "`x'"; ttest `x', by(treatment); }; restore; *DO HOUSEHOLDS OPEN THEIR WINDOWS?; preserve; collapse win* hasAC, by(Folio_SIMO); sum win*; sum win* if hasAC==1; restore; *PREPARE DATA FOR REGRESSIONS; drop win*; egen datehour=group(date hour); gen eco1=0; replace eco1=1 if ecocasa==1; gen eco2=0; replace eco2=1 if ecocasa==2; encode interior, gen(Zinterior); encode prototipo, gen(Zprototipo); gen logtemp=ln(temperature); gen month=month(date); gen summer=0; replace summer=1 if month>=5 & month<=10; save "`root'\intermediate\regsample.dta", replace; *PREPARE STRIPPED DOWN DATASET FOR FIGURES; keep Folio_SIMO date hour temperature humidity comfort1530 comfort1828 hoursabove25 hasAC treatment ecocasa summer; compress; save "`root'\intermediate\figdata.dta", replace; *-----------------------------------------------------*; *-----------MAKE DAILY AND HOURLY FIGURES-------------*; *-----------------------------------------------------*; *PLOT MEAN DAILY OUTCOMES; foreach var in "temperature" "humidity" "comfort1530" "comfort1828" "hoursabove25" {; use "`root'\intermediate\figdata.dta", clear; gen var="`var'"; if (var=="temperature") {; local varname "Temperature in Celsius"; }; if (var=="humidity") {; local varname "Relative Humidity"; }; if (var=="comfort1530") {; local varname "Proportion of Hours Between 15-30 Degrees Celsius"; }; if (var=="comfort1828") {; local varname "Proportion of Hours Between 18-28 Degrees Celsius"; }; if (var=="hoursabove25") {; local varname "Proportion of Hours Above 25 Degrees Celsius"; }; collapse (mean) mean=`var', by(treatment date); gen meanT=.; replace meanT=mean if treatment==1; gen meanC=.; replace meanC=mean if treatment==0; scatter meanT meanC date, mcolor(dkorange black) msize(small small) lcolor(dkorange black) ytitle("`varname'", size(small) margin(small)) xtitle("") xlabel(, labsize(small)) ylabel(, nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) legend(cols(1) order(1 2) lab(1 "Homes with Upgrades") lab(2 "Homes without Upgrades") size(small) symxsize(*.5)); graph export "`root'\paper\figs\Daily_`var'.pdf", replace; }; *PLOT HOURLY OUTCOMES, SUMMER; foreach var in "temperature" "humidity" "comfort1530" "comfort1828" "hoursabove25" {; use "`root'\intermediate\figdata.dta", clear; keep if summer==1; gen var="`var'"; if (var=="temperature") {; local varname "Temperature in Celsius"; local yaxis "26(2)32"; }; if (var=="humidity") {; local varname "Relative Humidity"; local yaxis "50(5)65"; }; if (var=="comfort1530") {; local varname "Proportion of Hours Between 15-30 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="comfort1828") {; local varname "Proportion of Hours Between 18-28 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="hoursabove25") {; local varname "Proportion of Hours Above 25 Degrees Celsius"; }; gen se=0; foreach x of numlist 1/24 {; foreach t of numlist 0/1 {; mean `var' if hour==`x' & treatment==`t', cluster(Folio_SIMO); replace se=_se[`var'] if hour==`x' & treatment==`t'; }; }; collapse (mean) mean=`var' se, by(treatment hour); gen meanT=.; replace meanT=mean if treatment==1; gen meanC=.; replace meanC=mean if treatment==0; gen seT=.; replace seT=se if treatment==1; gen seC=.; replace seC=se if treatment==0; drop mean se; foreach x in T C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT hiT hour, xlabel(1 "1AM" 4 "4AM" 8 "8AM" 12 "Noon" 16 "4PM" 20 "8PM" 24 "Midnight", labsize(small)) lcolor(dkorange) lwidth(thick) ytitle("`varname'", size(small) margin(small)) xtitle("") ylabel(`yaxis', nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) legend(cols(1) order(1 2) lab(1 "Homes with Upgrades") lab(2 "Homes without Upgrades") size(small) symxsize(*.5)) || rcap loC hiC hour, lcolor(black) lwidth(thick) || scatter meanT meanC hour, mcolor(orange black) msize(small small); graph export "`root'\paper\figs\HourlySummer_`var'.pdf", replace; }; *PLOT HOURLY OUTCOMES, WINTER; foreach var in "temperature" "humidity" "comfort1530" "comfort1828" "hoursabove25" {; use "`root'\intermediate\figdata.dta", clear; keep if summer!=1; gen var="`var'"; if (var=="temperature") {; local varname "Temperature in Celsius"; local yaxis "18(2)24"; }; if (var=="humidity") {; local varname "Relative Humidity"; local yaxis "55(5)70"; }; if (var=="comfort1530") {; local varname "Proportion of Hours Between 15-30 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="comfort1828") {; local varname "Proportion of Hours Between 18-28 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="hoursabove25") {; local varname "Proportion of Hours Above 25 Degrees Celsius"; }; gen se=0; foreach x of numlist 1/24 {; foreach t of numlist 0/1 {; mean `var' if hour==`x' & treatment==`t', cluster(Folio_SIMO); replace se=_se[`var'] if hour==`x' & treatment==`t'; }; }; collapse (mean) mean=`var' se, by(treatment hour); gen meanT=.; replace meanT=mean if treatment==1; gen meanC=.; replace meanC=mean if treatment==0; gen seT=.; replace seT=se if treatment==1; gen seC=.; replace seC=se if treatment==0; drop mean se; foreach x in T C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT hiT hour, xlabel(1 "1AM" 4 "4AM" 8 "8AM" 12 "Noon" 16 "4PM" 20 "8PM" 24 "Midnight", labsize(small)) lcolor(dkorange) lwidth(thick) ytitle("`varname'", size(small) margin(small)) xtitle("") ylabel(`yaxis', nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) legend(cols(1) order(1 2) lab(1 "Homes with Upgrades") lab(2 "Homes without Upgrades") size(small) symxsize(*.5)) || rcap loC hiC hour, lcolor(black) lwidth(thick) || scatter meanT meanC hour, mcolor(orange black) msize(small small); graph export "`root'\paper\figs\HourlyWinter_`var'.pdf", replace; }; *PLOT HOURLY OUTCOMES, SUMMER SEPARATE TECHNOLOGIES; foreach var in "temperature" "humidity" "comfort1530" "comfort1828" "hoursabove25" {; use "`root'\intermediate\figdata.dta", clear; keep if summer==1; gen var="`var'"; if (var=="temperature") {; local varname "Temperature in Celsius"; local yaxis "26(2)32"; }; if (var=="humidity") {; local varname "Relative Humidity"; local yaxis "50(5)65"; }; if (var=="comfort1530") {; local varname "Proportion of Hours Between 15-30 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="comfort1828") {; local varname "Proportion of Hours Between 18-28 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="hoursabove25") {; local varname "Proportion of Hours Above 25 Degrees Celsius"; }; gen se=0; foreach x of numlist 1/24 {; foreach t of numlist 0/2 {; mean `var' if hour==`x' & ecocasa==`t', cluster(Folio_SIMO); replace se=_se[`var'] if hour==`x' & treatment==`t'; }; }; collapse (mean) mean=`var' se, by(ecocasa hour); gen meanT1=.; replace meanT1=mean if ecocasa==1; gen meanT2=.; replace meanT2=mean if ecocasa==2; gen meanC=.; replace meanC=mean if ecocasa==0; gen seT1=.; replace seT1=se if ecocasa==1; gen seT2=.; replace seT2=se if ecocasa==2; gen seC=.; replace seC=se if ecocasa==0; drop mean se; foreach x in T1 T2 C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT1 hiT1 hour, xlabel(1 "1AM" 4 "4AM" 8 "8AM" 12 "Noon" 16 "4PM" 20 "8PM" 24 "Midnight", labsize(small)) lcolor(dkorange*1.2) lwidth(thick) ytitle("`varname'", size(small) margin(small)) xtitle("") ylabel(`yaxis', nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) || rcap loT2 hiT2 hour, lcolor(dkorange*0.8) lwidth(thick) || rcap loC hiC hour, lcolor(black) lwidth(thick) || scatter meanT1 meanT2 meanC hour, mcolor(dkorange*1.2 dkorange*0.8 black) msize(small small small) legend(cols(1) order(1 2 3) lab(1 "Upgrade Type #1") lab(2 "Upgrade Type #2") lab(3 "Homes without Upgrades") size(small) symxsize(*.5)); graph export "`root'\paper\figs\HourlySummerSeparate_`var'.pdf", replace; }; *PLOT HOURLY OUTCOMES, WINTER SEPARATE TECHNOLOGIES; foreach var in "temperature" "humidity" "comfort1530" "comfort1828" "hoursabove25" {; use "`root'\intermediate\figdata.dta", clear; keep if summer!=1; gen var="`var'"; if (var=="temperature") {; local varname "Temperature in Celsius"; local yaxis "18(2)24"; }; if (var=="humidity") {; local varname "Relative Humidity"; local yaxis "55(5)70"; }; if (var=="comfort1530") {; local varname "Proportion of Hours Between 15-30 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="comfort1828") {; local varname "Proportion of Hours Between 18-28 Degrees Celsius"; local yaxis "0(.2)1"; }; if (var=="hoursabove25") {; local varname "Proportion of Hours Above 25 Degrees Celsius"; }; gen se=0; foreach x of numlist 1/24 {; foreach t of numlist 0/2 {; mean `var' if hour==`x' & ecocasa==`t', cluster(Folio_SIMO); replace se=_se[`var'] if hour==`x' & treatment==`t'; }; }; collapse (mean) mean=`var' se, by(ecocasa hour); gen meanT1=.; replace meanT1=mean if ecocasa==1; gen meanT2=.; replace meanT2=mean if ecocasa==2; gen meanC=.; replace meanC=mean if ecocasa==0; gen seT1=.; replace seT1=se if ecocasa==1; gen seT2=.; replace seT2=se if ecocasa==2; gen seC=.; replace seC=se if ecocasa==0; drop mean se; foreach x in T1 T2 C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT1 hiT1 hour, xlabel(1 "1AM" 4 "4AM" 8 "8AM" 12 "Noon" 16 "4PM" 20 "8PM" 24 "Midnight", labsize(small)) lcolor(dkorange*1.2) lwidth(thick) ytitle("`varname'", size(small) margin(small)) xtitle("") ylabel(`yaxis', nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) || rcap loT2 hiT2 hour, lcolor(dkorange*0.8) lwidth(thick) || rcap loC hiC hour, lcolor(black) lwidth(thick) || scatter meanT1 meanT2 meanC hour, mcolor(dkorange*1.2 dkorange*0.8 black) msize(small small small) legend(cols(1) order(1 2 3) lab(1 "Upgrade Type #1") lab(2 "Upgrade Type #2") lab(3 "Homes without Upgrades") size(small) symxsize(*.5)); graph export "`root'\paper\figs\HourlyWinterSeparate_`var'.pdf", replace; }; *PLOT HOURLY TEMPERATURE, SUMMER FOR HOUSEHOLDS WITH AC; use "`root'\intermediate\figdata.dta", clear; keep if summer==1; keep if hasAC==1; gen se=0; foreach x of numlist 1/24 {; foreach t of numlist 0/1 {; mean temperature if hour==`x' & treatment==`t', cluster(Folio_SIMO); replace se=_se[temperature] if hour==`x' & treatment==`t'; }; }; collapse (mean) mean=temperature se, by(treatment hour); gen meanT=.; replace meanT=mean if treatment==1; gen meanC=.; replace meanC=mean if treatment==0; gen seT=.; replace seT=se if treatment==1; gen seC=.; replace seC=se if treatment==0; drop mean se; foreach x in T C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT hiT hour, xlabel(1 "1AM" 4 "4AM" 8 "8AM" 12 "Noon" 16 "4PM" 20 "8PM" 24 "Midnight", labsize(small)) lcolor(dkorange) lwidth(thick) ytitle("Temperature in Celsius", size(small) margin(small)) xtitle("") ylabel(26(2)32, nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) legend(cols(1) order(1 2) lab(1 "Homes with Upgrades") lab(2 "Homes without Upgrades") size(small) symxsize(*.5)) || rcap loC hiC hour, lcolor(black) lwidth(thick) || scatter meanT meanC hour, mcolor(orange black) msize(small small); graph export "`root'\paper\figs\HourlySummerACs.pdf", replace; *---------------------------------------------------*; *--------FIGURES USING OUTDOOR TEMPERATURE----------*; *---------------------------------------------------*; *THE EFFECT OF OUTDOOR TEMPERATURE ON INDOOR TEMPERATURE; use "`root'\intermediate\figdata.dta", clear; merge m:1 date hour using "`root'\intermediate\outdoortemp.dta"; keep if _merge==3; drop _merge; gen tempbin=outdoortemp; replace tempbin=8 if outdoortemp<8; replace tempbin=36 if outdoortemp>36; replace tempbin=round(tempbin,1); histogram tempbin; gen se=0; foreach x of numlist 8/36 {; foreach t of numlist 0/1 {; mean temperature if tempbin==`x' & treatment==`t', cluster(Folio_SIMO); replace se=_se[temperature] if tempbin==`x' & treatment==`t'; }; }; collapse (mean) mean=temperature se, by(treatment tempbin); gen meanT=.; replace meanT=mean if treatment==1; gen meanC=.; replace meanC=mean if treatment==0; gen seT=.; replace seT=se if treatment==1; gen seC=.; replace seC=se if treatment==0; drop mean se; foreach x in T C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT hiT tempbin, xlabel(8 "8" 10 "10" 12 "12" 14 "14" 16 "16" 18 "18" 20 "20" 22 "22" 24 "24" 26 "26" 28 "28" 30 "30" 32 "32" 34 "34" 36 "36+", labsize(small)) lcolor(dkorange) lwidth(thick) ytitle("Mean Indoor Temperature", size(small) margin(small)) xtitle("Outdoor Temperature", size(small)) ylabel(14(2)34, nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) legend(cols(1) order(1 2) lab(1 "Homes with Upgrades") lab(2 "Homes without Upgrades") size(small) symxsize(*.5)) || rcap loC hiC tempbin, lcolor(black) lwidth(thick) || scatter meanT meanC tempbin, mcolor(orange black) msize(small small); graph export "`root'\paper\figs\ByOutdoorTemp.pdf", replace; *OUTDOOR TEMPERATURE RESULTS BY UPGRADE TYPE; use "`root'\intermediate\figdata.dta", clear; merge m:1 date hour using "`root'\intermediate\outdoortemp.dta"; keep if _merge==3; drop _merge; gen tempbin=outdoortemp; replace tempbin=8 if outdoortemp<8; replace tempbin=36 if outdoortemp>36; replace tempbin=round(tempbin,1); histogram tempbin; gen se=0; foreach x of numlist 8/36 {; foreach t of numlist 0/2 {; mean temperature if tempbin==`x' & ecocasa==`t', cluster(Folio_SIMO); replace se=_se[temperature] if tempbin==`x' & ecocasa==`t'; }; }; collapse (mean) mean=temperature se, by(ecocasa tempbin); gen meanT1=.; replace meanT1=mean if ecocasa==1; gen meanT2=.; replace meanT2=mean if ecocasa==2; gen meanC=.; replace meanC=mean if ecocasa==0; gen seT1=.; replace seT1=se if ecocasa==1; gen seT2=.; replace seT2=se if ecocasa==2; gen seC=.; replace seC=se if ecocasa==0; drop mean se; foreach x in T1 T2 C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT1 hiT1 tempbin, xlabel(8 "8" 10 "10" 12 "12" 14 "14" 16 "16" 18 "18" 20 "20" 22 "22" 24 "24" 26 "26" 28 "28" 30 "30" 32 "32" 34 "34" 36 "36+", labsize(small)) lcolor(dkorange*1.2) lwidth(thick) ytitle("Mean Indoor Temperature", size(small) margin(small)) xtitle("Outdoor Temperature", size(small)) ylabel(14(2)34, nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) legend(cols(1) order(1 2 3) lab(1 "Upgrade Type #1") lab(2 "Upgrade Type #2") lab(3 "Homes without Upgrades") size(small) symxsize(*.5)) || rcap loT2 hiT2 tempbin, lcolor(dkorange*0.8) lwidth(thick) || rcap loC hiC tempbin, lcolor(black) lwidth(thick) || scatter meanT1 meanT2 meanC tempbin, mcolor(dkorange*1.2 dkorange*0.8 black) msize(small small small); graph export "`root'\paper\figs\ByOutdoorTempSeparate.pdf", replace; *OUTDOOR TEMPERATURE PLOT FOR HOUSEHOLDS WITH AC; use "`root'\intermediate\figdata.dta", clear; keep if hasAC==1; merge m:1 date hour using "`root'\intermediate\outdoortemp.dta"; keep if _merge==3; drop _merge; gen tempbin=outdoortemp; replace tempbin=8 if outdoortemp<8; replace tempbin=36 if outdoortemp>36; replace tempbin=round(tempbin,1); histogram tempbin; gen se=0; foreach x of numlist 8/36 {; foreach t of numlist 0/1 {; mean temperature if tempbin==`x' & treatment==`t', cluster(Folio_SIMO); replace se=_se[temperature] if tempbin==`x' & treatment==`t'; }; }; collapse (mean) mean=temperature se, by(treatment tempbin); gen meanT=.; replace meanT=mean if treatment==1; gen meanC=.; replace meanC=mean if treatment==0; gen seT=.; replace seT=se if treatment==1; gen seC=.; replace seC=se if treatment==0; drop mean se; foreach x in T C {; gen lo`x'=mean`x'-1.96*se`x'; gen hi`x'=mean`x'+1.96*se`x'; }; twoway rcap loT hiT tempbin, xlabel(8 "8" 10 "10" 12 "12" 14 "14" 16 "16" 18 "18" 20 "20" 22 "22" 24 "24" 26 "26" 28 "28" 30 "30" 32 "32" 34 "34" 36 "36+", labsize(small)) lcolor(dkorange) lwidth(thick) ytitle("Mean Indoor Temperature", size(small) margin(small)) xtitle("Outdoor Temperature", size(small)) ylabel(14(2)34, nogrid labsize(small)) plotregion(style(none)) graphregion(fcolor(white)) legend(cols(1) order(1 2) lab(1 "Homes with Upgrades") lab(2 "Homes without Upgrades") size(small) symxsize(*.5)) || rcap loC hiC tempbin, lcolor(black) lwidth(thick) || scatter meanT meanC tempbin, mcolor(orange black) msize(small small); graph export "`root'\paper\figs\ByOutdoorTempACs.pdf", replace; *-------------------------------------------------------------------*; *------------THE EFFECT OF UPGRADES ON MEAN TEMPERATURE-------------*; *-------------------------------------------------------------------*; *SET OUTREG OPTIONS; local outregoptions "keep(treatment) nocons tex(frag) label bdec(3) sdec(3) rdec(2) alpha(0.01, 0.05) nonotes"; *PANEL A. ALL DAYS; use "`root'\intermediate\regsample.dta", clear; label variable treatment "1(Upgrade)"; reg logtemp treatment, cluster(Folio_SIMO); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsAll.tex", `outregoptions' replace; areg logtemp treatment, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsAll.tex", `outregoptions'; areg logtemp treatment `hhvars', cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsAll.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsAll.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsAll.tex", `outregoptions'; *PANEL B. MAY TO OCTOBER; use "`root'\intermediate\regsample.dta", clear; keep if summer==1; label variable treatment "1(Upgrade)"; reg logtemp treatment, cluster(Folio_SIMO); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsSummer.tex", `outregoptions' replace; areg logtemp treatment, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsSummer.tex", `outregoptions'; areg logtemp treatment `hhvars', cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsSummer.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsSummer.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsSummer.tex", `outregoptions'; *PANEL C. NOVEMBER TO APRIL; use "`root'\intermediate\regsample.dta", clear; keep if summer!=1; label variable treatment "1(Upgrade)"; reg logtemp treatment, cluster(Folio_SIMO); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsWinter.tex", `outregoptions' replace; areg logtemp treatment, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsWinter.tex", `outregoptions'; areg logtemp treatment `hhvars', cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsWinter.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsWinter.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); test treatment==-.01; outreg2 using "`root'/paper/tables/RegsWinter.tex", `outregoptions'; *--------------------------------------------------------------------*; *---------THE EFFECT OF UPGRADES ON ELECTRICITY CONSUMPTION----------*; *--------------------------------------------------------------------*; *COLLAPSE DATA BY HOUSEHOLD; *These variables are all the same within household so I take means but results are identical with first; *I perform a test comparing savings to the (ex post) engineering estimates; *Of the 229 homes with upgrades, 171 received upgrade 1 (26%) while 58 received upgrade 2 (8%); *So the average predicted savings was 21.4%; *Annual electricity consumption is 1,500 kwhs per year; *A 20% reductioni in consumption is 300 kwhs per year, which we can also rule out at 1% level; use "`root'\intermediate\regsample.dta", clear; collapse (mean) elec* Pregistro* treatment `hhvars' Zinterior Zprototipo datesold datekeys has*, by(Folio_SIMO); gen lnelec=ln(Pregistro4); label variable treatment "1(Upgrade)"; local outregoptions "keep(treatment) nocons tex(frag) label bdec(2) sdec(2) rdec(2) alpha(0.01, 0.05) nonotes"; reg lnelec treatment, robust; test treatment==-.214; test treatment==-.20; reg lnelec treatment `hhvars', robust; test treatment==-.214; test treatment==-.20; reg lnelec treatment `hhvars' datesold datekeys, robust; test treatment==-.214; test treatment==-.20; reg lnelec treatment `hhvars' datesold datekeys i.Zinterior i.Zprototipo datesold datekeys, robust; test treatment==-.214; test treatment==-.20; *------------------------------------------------------------------------------*; *-------------TEMPERATURE REGRESSIONS FOR HOMES WITH AND WITHOUT AC------------*; *------------------------------------------------------------------------------*; *HOMES WITH AC, MAY TO OCTOBER; local outregoptions "keep(treatment) nocons tex(frag) label bdec(3) sdec(3) rdec(2) alpha(0.01, 0.05) nonotes"; use "`root'\intermediate\regsample.dta", clear; keep if summer==1; keep if hasAC==1; label variable treatment "1(Upgrade)"; reg logtemp treatment, cluster(Folio_SIMO); outreg2 using "`root'/paper/tables/RegsAC.tex", `outregoptions' replace; areg logtemp treatment, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsAC.tex", `outregoptions'; areg logtemp treatment `hhvars', cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsAC.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsAC.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsAC.tex", `outregoptions'; *HOMES WITHOUT AC, MAY TO OCTOBER; use "`root'\intermediate\regsample.dta", clear; keep if summer==1; keep if hasAC==0; label variable treatment "1(Upgrade)"; reg logtemp treatment, cluster(Folio_SIMO); outreg2 using "`root'/paper/tables/RegsNoAC.tex", `outregoptions' replace; areg logtemp treatment, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsNoAC.tex", `outregoptions'; areg logtemp treatment `hhvars', cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsNoAC.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsNoAC.tex", `outregoptions'; areg logtemp treatment `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsNoAC.tex", `outregoptions'; *-----------------------------------------------------------------*; *--------APPENDIX: TEMPERATURE REGRESSIONS BY UPGRADE TYPE-------*; *-----------------------------------------------------------------*; *PANEL A. ALL DAYS; local outregoptions "keep(eco1 eco2) nocons tex(frag) label bdec(3) sdec(3) rdec(2) alpha(0.01, 0.05) nonotes"; use "`root'\intermediate\regsample.dta", clear; label variable eco1 "1(Upgrade Type #1)"; label variable eco2 "1(Upgrade Type #2)"; reg logtemp eco1 eco2, cluster(Folio_SIMO); outreg2 using "`root'/paper/tables/RegsTypeAll.tex", `outregoptions' replace; areg logtemp eco1 eco2, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeAll.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars', cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeAll.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeAll.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeAll.tex", `outregoptions'; *PANEL B. MAY TO OCTOBER; use "`root'\intermediate\regsample.dta", clear; keep if summer==1; label variable eco1 "1(Upgrade Type #1)"; label variable eco2 "1(Upgrade Type #2)"; reg logtemp eco1 eco2, cluster(Folio_SIMO); outreg2 using "`root'/paper/tables/RegsTypeSummer.tex", `outregoptions' replace; areg logtemp eco1 eco2, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeSummer.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars', cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeSummer.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeSummer.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeSummer.tex", `outregoptions'; *PANEL C. NOVEMBER TO APRIL; use "`root'\intermediate\regsample.dta", clear; keep if summer!=1; label variable eco1 "1(Upgrade Type #1)"; label variable eco2 "1(Upgrade Type #2)"; reg logtemp eco1 eco2, cluster(Folio_SIMO); outreg2 using "`root'/paper/tables/RegsTypeWinter.tex", `outregoptions' replace; areg logtemp eco1 eco2, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeWinter.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars', cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeWinter.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars' i.Zinterior i.Zprototipo, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeWinter.tex", `outregoptions'; areg logtemp eco1 eco2 `hhvars' i.Zinterior i.Zprototipo datesold datekeys, cluster(Folio_SIMO) absorb(datehour); outreg2 using "`root'/paper/tables/RegsTypeWinter.tex", `outregoptions';