Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Diff-in-Diff using csdid2

    Hi,
    I am trying to ascertain the impact of smart meters on consumer's consumption. The installation was staggered, therefore using the csdid2 command. I have consumption data for all months for 5 FYs (2020-2025). I am running the command on Domestic and Non-Domestic consumers separately. The code looks something like this:

    csdid2 billed_units, ivar(consumerid) time(month_year) gvar(treatment)

    I am running the command as it is with no covariates. However, I am confused as to which kind of covariates one can control for ? As per my understanding including feeder fixed effects and sanctioned load as controls would be redundant as they are already controlled for in the indiviaual fixed effects. As per my understanding, a covariate which may effect the treatment and the control group differently should be controlled for, but in the absence of such a variable in the dataset, is it okay to run the model as it is without covariates? any suggestions? If I want to look at ATTs feeder wise, then?

    Also, I am dropping all consumers which have no billed units observations pre treatment (smart metering) to ensure that we have pre and post observations for each consumer in the dataset before running the model. Correct?

  • #2
    Including time-constant controls (feeder fixed effects, sanctioned load) is actually preferred -- as long as there aren't too many. What csdid2 (and jwdid, and other methods) do is remove additive FEs, and so the additive part of time-constant controls gets removed. But those controls are interacted with year dummies and with the treatment itself. So, yes, they should be included if you think they might help with violation of parallel trends, or if the treatment effects vary with them.

    A word of caution: it sounds like you have an unbalanced panel. The CS approach can lose lots of data because it requires the period just before the intervention is observed. That may be the case in your application. You might try jwdid with the never option. This reproduces csdid2 with the method(reg) option in the balanced case, but uses more data in unbalanced cases.

    Comment

    Working...
    X