Hi. In the code below, I run event study regressions, which generate only coefficients and standard errors and spit this out in an excel sheet. How can this code be modified to include p-values as well? Basically, I'd like the code to identify which coefficients are significant and which are not, either through the * notation used to indicate the p-value, or the actual p-value itself.
Any help will be much appreciated
Any help will be much appreciated
Code:
*PART 1
capture program drop runEventStudies
program define runEventStudies
args data yList name
use "${outdir}\\`data'.dta", clear
Run regressions - include test rates
foreach y of local yList {
disp "`y'"
forvalues i = 1/`N' {
disp "`i'"
* Adding linear, group-specific trend
qui areg `y' weeknum treated_trend post treated_post tested i.weeknum ///
if eventBlock == `i',absorb(state)
local b_`y'_`i'_b_trend = _b[treated_post]
local se_`y'_`i'_b_trend = _se[treated_post]
}
}
*** Step 2: Construct a dataset saving all coefficients and SEs
*keep Treated_State adopt_week eventBlock cem_varlist
qui duplicates drop
foreach suff in b b_trend {
foreach y of local yList {
qui gen b_`y'_`suff' = ""
qui gen se_`y'_`suff' = ""
forvalues i = 1/`N' {
qui replace b_`y'_`suff' = "`b_`y'_`i'_`suff''" if eventBlock == `i'
qui replace se_`y'_`suff' = "`se_`y'_`i'_`suff''" if eventBlock == `i'
}
qui destring b_`y'_`suff', replace
qui destring se_`y'_`suff', replace
}
}
drop eventBlock
* Save the data
foreach x in Treated_State {
encode `x', gen(temp)
drop `x'
rename temp `x'
}
* save
order state weeknum cem_varlist
sort state weeknum
save "${coeffdir}\coefficients_`name'.dta", replace
end
*PART 2. Run the event studies
* Acquired
runEventStudies "1matched_cohort" /// Data
`"confirmed_1 recovered_1 deceased_1"' /// yList
"one" /// name
runEventStudies "2matched_cohort" /// Data
`"confirmed_2 recovered_2 deceased_2"' /// yList
"two" /// name
PART 3. Calculate averages
local oneVars "confirmed_1 recovered_1 deceased_1"
local twoVars "confirmed_2 recovered_2 deceased_2"
local threeVars "confirmed_3 recovered_3 deceased_3"
local fourVars "confirmed_4 recovered_4 deceased_4"
local sets `" "" "_trend" "'
foreach set of local sets {
* open file, write header
file open EScoeff using "${paperdir}\Tables\EScoeff`set'.csv", write replace
file write EScoeff "Variable,All states,Early adopters,Late adopters" _n
foreach sample in one two three four {
use "${coeffdir}\coefficients_`sample'.dta", replace
* Average effect of all states
foreach var of local `sample'Vars {
* ALL
qui egen wavg_`var' = wtmean(b_`var'_b`set') ///
if treated == 1, weight(1/(se_`var'_b`set'^2))
qui egen wvar_`var' = mean(1/(se_`var'_b`set'^2)) /// SE command
if treated == 1
qui replace wvar_`var' = sqrt(1/wvar_`var') ///follows from 206
* record values
sum wavg_`var'
local avgAllStates : display %4.2f r(mean)
drop wavg_`var'
sum wvar_`var'
local sdAllStates : display %4.2f r(mean)
drop wvar_`var'
/*
file write testtable "`var',`avgAllStates'" _n
file write testtable `",="(`sdAllStates')""' _n
*/
file write EScoeff "`var',`avgAllStates',`avgEarlyStates',`avgLateStates'" _n
file write EScoeff `",="(`sdAllStates')",="(`sdEarlyStates')",="(`sdLateStates')""' _n
}
}
file close EScoeff
}

Comment