Hi everyone,
I'm using the official honestdid package in Stata (v1.3.0) to conduct robustness analysis under smoothness restrictions (delta(sd)) following Rambachan and Roth (2023). My setup:
qui reghdfe zee_health_se $evt $icontrols $pre, absorb(class_id year) cluster(class_id)
honestdid, pre(1 2 3 4 ) post(5 6 7 8) b(b) vcov(V) mvec(0(0.001)0.01) delta(sd) alpha(0.1) omit plugin(osqp) coefplot
Even though reghdfe results are unchanged and the same plugin is used, the robust CI outputs differ . Sometimes the intervals contain zero; sometimes they don’t, sometimes the CI are very large (eg, 0.2 compared with 100)
This only happens under delta(sd) (smoothness restriction). With delta(rm) (relative magnitude), results are stable.
My questions:
I'm using the official honestdid package in Stata (v1.3.0) to conduct robustness analysis under smoothness restrictions (delta(sd)) following Rambachan and Roth (2023). My setup:
- Stata 17 on Windows 11
- The reghdfe regression is fixed and returns the same e(b) and e(V) every time
qui reghdfe zee_health_se $evt $icontrols $pre, absorb(class_id year) cluster(class_id)
honestdid, pre(1 2 3 4 ) post(5 6 7 8) b(b) vcov(V) mvec(0(0.001)0.01) delta(sd) alpha(0.1) omit plugin(osqp) coefplot
Even though reghdfe results are unchanged and the same plugin is used, the robust CI outputs differ . Sometimes the intervals contain zero; sometimes they don’t, sometimes the CI are very large (eg, 0.2 compared with 100)
This only happens under delta(sd) (smoothness restriction). With delta(rm) (relative magnitude), results are stable.
My questions:
- Is this expected behavior under delta(sd) even with the plugin active?
- Is there a way to force deterministic outputs (e.g., by changing solver settings, tolerance, or random seed)?
- Should I just cache the first run and use that for reporting?
