Diff in Diff (Label)

Data and Setup

Create lags

head(df_weekly, 7)
# A tibble: 7 × 4
  isrc         week_diff streams treated
  <chr>            <dbl>   <dbl>   <dbl>
1 AUUM71700649        -3    10.5       0
2 AUUM71700649        -2    10.5       0
3 AUUM71700649        -1    10.5       0
4 AUUM71700649         0    10.4       0
5 AUUM71700649         1    10.5       0
6 AUUM71700649         2    10.3       0
7 AUUM71700649         3    10.3       0
df_weekly_lag <- df_weekly %>%
  group_by(isrc) %>% 
  arrange(isrc, week_diff, .by_group = T) %>%
  mutate(streams_growth = streams - dplyr::lag(streams)) %>%
  filter(!is.na(streams_growth)) %>% ungroup()

Diff-in-Diff estimate

OLS estimation, Dep. Var.: streams_growth
Observations: 372
Fixed-effects: isrc: 62,  week_diff: 6
Standard-errors: Clustered (isrc) 
                       Estimate Std. Error   t value    Pr(>|t|)    
week_diff::-2:treated  0.009701   0.033916  0.286019 0.775832697    
week_diff::-1:treated  0.009358   0.027741  0.337349 0.737011657    
week_diff::1:treated   0.252793   0.057353  4.407688 0.000043069 ***
week_diff::2:treated   0.079110   0.032363  2.444421 0.017413742 *  
week_diff::3:treated  -0.006267   0.038342 -0.163458 0.870698390    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.118151     Adj. R2: 0.171736
                 Within R2: 0.131172