# delimit ; clear; set memory 1g; set more off; version 10; capture log close; log using weatherVariation.log, replace; * ###############################################################################################; * Weather variation absorbed by various fixed effects; * ###############################################################################################; *************************************************************************************************; * Part 1: build data set; *************************************************************************************************; * load DG data set; use DATA1, clear; drop sst* statfips state; * merge in other weather data sets we replicate; sort fips year; merge fips year using dataPanelNew; tab _merge; keep if (_merge == 3); drop _merge; * note: transfer replicated data from degree celsius to Fahrenheit; replace dday8_32dm = dday8_32dm*1.8; * keep data set consistent; drop if (dd89==.) | (dday8_32dm == .); * create state-by-year fixed effects; qui levelsof year, local(yearList); qui summ year; local yearMin = r(min); gen stateFIPS = floor(fips/1000); qui levelsof stateFIPS, local(stateFIPSlist); foreach s of local stateFIPSlist {; foreach t of local yearList {; if (`t' > `yearMin') {; gen sst_`s'_`t' = (year == `t') & (stateFIPS == `s'); }; }; }; *************************************************************************************************; * Part 2: regression results; *************************************************************************************************; * variation in DG's variable; foreach depVar in dd89 dday8_32dm {; foreach spec in "reg `depVar'" "areg `depVar', a(fips)" "xi: areg `depVar' i.year, a(fips)" "areg `depVar' sst*, a(fips)" {; * regression; `spec'; predict e, residual; * get equivalent in Fahrenheit (didvide by number of days in growing season); gen eF = e/184; summ e eF; gen dev184 = (abs(e) >= 184); tab dev184; drop e eF dev184; }; }; log close;