# Do specification differences make a difference in difference-in-differences?

My question relates to the following post:

How do I interpret a "difference-in-differences" model with continuous treatment?

I am reproducing an equation from Acemoglu, Autor and Lyle (2004), where they estimate the effect of World War II on female labor supply in the US. Their model takes the following form:

$$y_{ist} = \delta_{s} + \gamma d_{1950} + X'_{ist}\beta_{t} + \varphi(d_{1950} \cdot m_{s}) + \epsilon_{ist},$$

where $$y$$ are weeks worked by female $$i$$, in state $$s$$, in year $$t$$. They have two periods, 1940 and 1950, where $$d_{1950}$$ is a dummy for the latter year, $$X'_{ist}$$ is a vector of individual characteristics, $$\delta_{s}$$ are state dummies, and $$m_{s}$$ is the mobilization rate in each state. Their interaction estimates whether states with higher mobilization rates during WWII saw a stronger rise in females' weeks worked from 1940 to 1950. This is given by the coefficient $$\varphi$$. I have seen this referenced in other posts as a difference-in-differences (DD) design.

Based upon my reading of the paper, the treatment in this case is the mobilization rate. Each state had a mobilization rate, which was expressed as the percentage of eligible males ages 18-44 mobilized. In my understanding, the DD approach requires some "group" of states (i.e., control group) in 1950 where the percentage of eligible males mobilized was zero (i.e., zero intensity). Without this condition (i.e., states with an absence of intensity), I believe we cannot adequately refer to this as a DD design. Yet, it is frequently referred to as such.

I would assume that low-mobilization states would still be considered "treated" in theory. I always assumed that under a DD approach, zero intensity is a necessary condition to disambiguate between treated and untreated units. I suppose some fake data will help. The variable (column) bite is a continuous treatment (i.e., intensity) variable.

set.seed(12345)

did_intensity <- tibble(
y = rnorm(20, mean = 100, 10),                       # random outcome
status = factor(c(rep("control", 10), rep("treatment", 10))),
year = rep(2010:2019, 2)
) %>%
mutate(treat = ifelse(status == "treatment", 1, 0),  # treatment dummy
post = ifelse(year > 2014, 1, 0),             # post-treatment indicator
bite = rnorm(20, 10, 5),                      # random continous intensity measure
post_bite = post*bite,                        # post x bite
treat_post_bite = treat*post*bite             # post x treat x bite
)

# A tibble: 20 x 8
y status     year treat  post  bite post_bite treat_post_bite
<dbl> <fct>     <int> <dbl> <dbl> <dbl>     <dbl>           <dbl>
1 106.  control    2010     0     0 13.9       0               0
2 107.  control    2011     0     0 17.3       0               0
3  98.9 control    2012     0     0  6.78      0               0
4  95.5 control    2013     0     0  2.23      0               0
5 106.  control    2014     0     0  2.01      0               0
6  81.8 control    2015     0     1 19.0      19.0             0
7 106.  control    2016     0     1  7.59      7.59            0
8  97.2 control    2017     0     1 13.1      13.1             0
9  97.2 control    2018     0     1 13.1      13.1             0
10  90.8 control    2019     0     1  9.19      9.19            0
11  98.8 treatment  2010     1     0 14.1       0               0
12 118.  treatment  2011     1     0 21.0       0               0
13 104.  treatment  2012     1     0 20.2       0               0
14 105.  treatment  2013     1     0 18.2       0               0
15  92.5 treatment  2014     1     0 11.3       0               0
16 108.  treatment  2015     1     1 12.5      12.5            12.5
17  91.1 treatment  2016     1     1  8.38      8.38            8.38
18  96.7 treatment  2017     1     1  1.69      1.69            1.69
19 111.  treatment  2018     1     1 18.8      18.8            18.8
20 103.  treatment  2019     1     1 10.1      10.1            10.1


Question 1: Must the continuous "intensity" variable (i.e., bite) equal "zero" for all observations in the control group for DD to work?

For example: The following two models produce similar estimates. In the former model, you would add the main effect for bite to the interaction term (i.e., post*bite; it should equal post_bite in the latter model:

lm(y ~ treat*post + post*bite, data = did_intensity)
lm(y ~ treat*post + post_bite, data = did_intensity)


Question 2: Suppose it was all zeros for all observations in the control group. If so, then these two specifications would produce similar estimates:

did_intensity[1:10, "bite"] <- 0  # 0's for everyone in the control group

summary(lm(y ~ treat*post + post*bite, data = did_intensity))
summary(lm(y ~ treat*post + treat_post_bite, data = did_intensity))


Is one method preferred over the other? Should we code it in such a way that the only observations "treated" are those from the treatment group and in the "after" period?

Any thoughts?