This report on the question evaluates whether the Disaster Management Program (DRM) increased district Net District Product (NDP) in Odisha. The empirical strategy uses Difference-in-Differences (DID) to compare treated and untreated districts before and after the program, and Triple-Difference (DDD) to test whether the effect was larger in poorer districts.
df <- read_dta("test_data.dta")
df <- df %>%
mutate(
treat = vulnerability_rank < 17,
post = year >= 2003,
poor = share_margworker > 0.10
)
summary(df)
## districts_name year heavyrain_yr flood_yr
## Length:390 Min. :1998 Min. :0.00000 Min. :0.0000
## Class :character 1st Qu.:2001 1st Qu.:0.00000 1st Qu.:0.0000
## Mode :character Median :2004 Median :0.00000 Median :0.0000
## Mean :2004 Mean :0.08205 Mean :0.2692
## 3rd Qu.:2007 3rd Qu.:0.00000 3rd Qu.:1.0000
## Max. :2010 Max. :1.00000 Max. :1.0000
## drought_yr cyclone_yr nu_shwd_i population
## Min. :0.0000 Min. :0.00000 Min. : 0.000 Min. : 254169
## 1st Qu.:0.0000 1st Qu.:0.00000 1st Qu.: 0.000 1st Qu.: 671280
## Median :0.0000 Median :0.00000 Median : 1.000 Median :1195403
## Mean :0.1282 Mean :0.07692 Mean : 3.762 Mean :1252992
## 3rd Qu.:0.0000 3rd Qu.:0.00000 3rd Qu.: 6.750 3rd Qu.:1603948
## Max. :1.0000 Max. :1.00000 Max. :26.000 Max. :3375738
## district_ndp coastal_dummy share_aglab share_otworker
## Min. : 24588 Min. :0.0000 Min. :0.04782 Min. :0.05927
## 1st Qu.: 87442 1st Qu.:0.0000 1st Qu.:0.08498 1st Qu.:0.07496
## Median :145589 Median :0.0000 Median :0.12961 Median :0.09380
## Mean :189637 Mean :0.2333 Mean :0.13017 Mean :0.10175
## 3rd Qu.:232938 3rd Qu.:0.0000 3rd Qu.:0.16695 3rd Qu.:0.12279
## Max. :955390 Max. :1.0000 Max. :0.22794 Max. :0.21852
## share_margworker vulnerability_rank treat post
## Min. :0.04829 Min. : 1.0 Mode :logical Mode :logical
## 1st Qu.:0.07807 1st Qu.: 8.0 FALSE:182 FALSE:150
## Median :0.13406 Median :15.5 TRUE :208 TRUE :240
## Mean :0.12337 Mean :15.5
## 3rd Qu.:0.15843 3rd Qu.:23.0
## Max. :0.20763 Max. :30.0
## poor
## Mode :logical
## FALSE:133
## TRUE :257
##
##
##
district_ndp: outcome variable measuring district
economic performance.treat: equals TRUE for districts with vulnerability
rank below 17; these are the DRM districts.post: equals TRUE for years 2003 and later; this
captures the post-program period.poor: equals TRUE for districts with share of marginal
workers greater than 10%; this identifies poorer districts.Before using DID, it is necessary to assess the parallel trends assumption. This assumption requires that, in the absence of treatment, treated and untreated districts would have followed similar trends over time.
A complete proof of parallel trends is not possible, but it is standard to examine whether the treated and control groups display broadly similar movement before the intervention. This report does that in two ways: a pre-period growth comparison and a pre-treatment trend graph.
pre_growth_correct <- df %>%
filter(year < 2003) %>%
group_by(treat, year) %>%
summarise(mean_ndp = mean(district_ndp, na.rm = TRUE), .groups = "drop") %>%
arrange(treat, year) %>%
group_by(treat) %>%
summarise(
start_ndp = first(mean_ndp),
end_ndp = last(mean_ndp),
growth_rate = (end_ndp - start_ndp) / start_ndp,
.groups = "drop"
)
pre_growth_correct
The control districts show pre-period growth of about 33.0%, while treated districts show growth of about 36.5%. The difference is small in magnitude, which supports the use of DID, although it should be treated as supportive evidence rather than definitive proof.
pre_trends <- df %>%
filter(year < 2003) %>%
group_by(year, treat) %>%
summarise(
mean_ndp = mean(district_ndp, na.rm = TRUE),
n = n(),
.groups = "drop"
)
ggplot(pre_trends, aes(x = year, y = mean_ndp, color = factor(treat), group = treat)) +
geom_line(linewidth = 1.1) +
geom_point(size = 2.5) +
labs(
title = "Pre-2003 Trends: Treated vs Control",
subtitle = "Visual check for parallel trends",
x = "Year",
y = "Mean District NDP",
color = "Group (0=Control, 1=Treated)"
) +
theme_minimal()
The DID regression is:
\[ \text{district\_ndp}_{it} = \beta_0 + \beta_1 \text{treat}_i + \beta_2 \text{post}_t + \beta_3 (\text{treat}_i \times \text{post}_t) + u_{it} \]
The coefficient of interest is \(\beta_3\). This coefficient measures the additional change in NDP for treated districts after the DRM program, relative to untreated districts.
did_model <- lm(district_ndp ~ treat * post, data = df)
did_results <- coeftest(did_model, vcov = vcovHC(did_model, type = "HC1"))
did_results
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 90699.6 6637.5 13.6646 < 2.2e-16 ***
## treatTRUE 36368.1 9432.9 3.8554 0.0001353 ***
## postTRUE 62303.8 11966.2 5.2067 3.133e-07 ***
## treatTRUE:postTRUE 125531.9 21238.3 5.9106 7.498e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
The coefficient on treatTRUE:postTRUE is 125531.9. This
means that, after accounting for common time changes and the baseline
difference between treated and untreated districts, the DRM program is
associated with an increase of about 125,532 in district NDP for treated
districts.
This coefficient is highly statistically significant with p-value 7.498e-09, which is far below 0.01. Therefore, the null hypothesis of no treatment effect is rejected at the 1% significance level. Economically and statistically, this suggests a strong positive association between DRM and district output.
The positive coefficient on treatTRUE indicates that
treated districts already had higher average NDP before the program. The
positive coefficient on postTRUE indicates that NDP rose
over time even in the control group. The DID term is important because
it measures the extra increase in treated districts beyond these two
general patterns.
The second question asks whether the DRM effect was larger for poorer districts. DID alone cannot answer that directly, so a triple interaction term is introduced.
\[ \text{district\_ndp}_{it} = \beta_0 + \beta_1 \text{treat}_i + \beta_2 \text{post}_t + \beta_3 \text{poor}_i + \beta_4 (\text{treat}_i \times \text{post}_t) + \beta_5 (\text{treat}_i \times \text{poor}_i) + \beta_6 (\text{post}_t \times \text{poor}_i) + \beta_7 (\text{treat}_i \times \text{post}_t \times \text{poor}_i) + u_{it} \]
The main parameter of interest is \(\beta_7\), the triple-difference estimator.
ddd_model <- lm(district_ndp ~ treat * post * poor, data = df)
ddd_results <- coeftest(ddd_model, vcov = vcovHC(ddd_model, type = "HC1"))
ddd_results
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 79785.2 10011.1 7.9697 1.854e-14 ***
## treatTRUE 48415.2 11289.8 4.2884 2.282e-05 ***
## postTRUE 65465.8 15196.3 4.3080 2.098e-05 ***
## poorTRUE 13172.5 12659.1 1.0406 0.2987
## treatTRUE:postTRUE 104920.0 25342.4 4.1401 4.275e-05 ***
## treatTRUE:poorTRUE -15438.0 18486.8 -0.8351 0.4042
## postTRUE:poorTRUE -4032.9 20636.5 -0.1954 0.8452
## treatTRUE:postTRUE:poorTRUE 38932.8 40764.1 0.9551 0.3401
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
The coefficient on treatTRUE:postTRUE:poorTRUE is
38932.8. This means that poorer treated districts experienced an
additional increase of about 38,933 in district NDP relative to the DID
effect for non-poor districts.
However, the p-value is 0.3401, which is much larger than conventional significance levels such as 10%, 5%, or 1%. Therefore, the null hypothesis that the additional effect for poorer districts is zero cannot be rejected. In substantive terms, the point estimate is positive, but the evidence is not strong enough to conclude that poorer districts benefited significantly more than other treated districts.
This table helps connect the regression results to raw averages. It shows how average district NDP differs across treatment status, time period, and poverty status.
df %>%
group_by(treat, post, poor) %>%
summarise(
mean_ndp = mean(district_ndp, na.rm = TRUE),
n = n(),
.groups = "drop"
)
This table provides a descriptive summary before interpreting the regression coefficients. It shows that average NDP is higher in treated districts than in control districts and that post-treatment NDP is higher than pre-treatment NDP. It also shows that treated-poor districts after treatment have notably high mean NDP, but regression analysis is still necessary because raw means alone do not separate treatment effects from time effects and initial group differences.
The event-study style graph plots average NDP relative to the treatment year 2003. It is used to visually inspect how the treated and control groups evolve around the intervention year.
event_data <- df %>%
mutate(rel_year = year - 2003) %>%
group_by(rel_year, treat) %>%
summarise(
mean_ndp = mean(district_ndp, na.rm = TRUE),
n = n(),
.groups = "drop"
)
ggplot(event_data, aes(x = rel_year, y = mean_ndp, color = factor(treat), group = treat)) +
geom_line(linewidth = 1.1) +
geom_point(size = 2.5) +
geom_vline(xintercept = 0, linetype = "dashed", color = "red", linewidth = 1) +
labs(
title = "Event Study: 2003 Treatment",
x = "Years relative to 2003",
y = "Mean District NDP",
color = "Group"
) +
theme_minimal()
The red dashed line marks the beginning of the post-treatment period. The treated group appears to pull away more strongly after 2003, which is consistent with a positive treatment effect. At the same time, this graph should be used as descriptive support rather than as a formal event-study regression, because it is based on grouped means rather than a full leads-and-lags model.
The DID results provide strong evidence that the DRM program increased district NDP in treated districts. The effect is large and statistically significant, suggesting that disaster management efforts may have reduced economic losses and improved output performance.
The DDD results suggest a positive additional effect in poorer districts, but this coefficient is not statistically significant. Therefore, the evidence does not support a confident claim that poorer districts benefited more than other treated districts, even though the point estimate is positive.
Taken together, the most defensible conclusion is that the DRM program had a positive average effect on district NDP, while the evidence for stronger gains in poorer districts remains weak.
For this report, the DID effect is highly significant, while the DDD triple interaction is not statistically significant. This distinction is important because it means the evidence is strong for the average DRM effect, but not strong for the claim of an especially large effect in poorer districts.
This analysis uses DID because the policy created treated and untreated districts over time, making it possible to compare changes rather than only levels. DDD is added because the research question also asks whether poorer districts benefited more from the policy.
The main result is that DRM is associated with a large and statistically significant increase in district NDP in treated districts. The estimated DID effect is about 125,532 and is significant at the 1% level. The DDD estimate is positive but statistically insignificant, so the report does not find strong evidence that poorer districts experienced a significantly larger benefit.
Overall, the evidence supports the conclusion that DRM improved economic outcomes on average in treated districts, while the hypothesis of a stronger effect for poorer districts is not convincingly supported by the data.