This appendix runs two robustness/validation components as a standalone file (it loads data and applies the manual distance overrides):
Donut RD robustness (true cutoff only): excludes
observations within 2.5 km of the cutoff on both sides
(keeps |X| >= 2.5) and re-estimates RD at the true
cutoff c = 0 for all outcomes.
Placebo cutoffs (fixed bandwidth): estimates RD
effects at artificial cutoffs every 5 km up to
±30 km, including 0, using
fixed bandwidth h = 20 km.
Both are run for: - All Italy (full merged sample,
with region FE via covs= in rdrobust) -
Lombardia (subset, no region FE)
# DATA (CSV)
DATA_PATH <- "/Users/murugesana/Dropbox/Research/history_behavior/Experimental_Institutions/R/data/RDD_MERGED_CSVS/All_italy_df_merged.csv"
# MANUAL DISTANCE OVERRIDES (XLSX)
MANUAL_DISTANCE_PATH <- "/Users/murugesana/Dropbox/Research/history_behavior/Experimental_Institutions/R/data/RDD_MERGED_CSVS/TreatedControl_Distance_AsCrowFlies_Manual.xlsx"
# Column names
RUNNING <- "distance_treated_positive_x" # signed distance in km (cutoff at 0)
REGION <- "COD_REG" # region id (for All-Italy FE)
# Lombardia region code (as in your main RMD)
REGION_CODE_LOMBARDIA <- 3
# Outcomes (full list used in main RMD; edit if needed)
OUTCOMES <- c(
"gb_intensity","gb_reg_rate","evasione","services_level", "Admin_Tax_Emp",
"edu_serv_lvl","edu_muni_school_area_per1000", "edu_emp_per1000",
"PublS_CyclePath_per","pol_mun_road","Pillar2_pol",
"marr_civil","marr_rel","incomepc","income",
"expend_level","expenditure"
)
# Placebo outcomes: default = OUTCOMES, or specify a subset
PLACEBO_OUTCOMES <- OUTCOMES
# Donut and placebo settings
DONUT_KM <- 2.5
PLACEBO_STEP_KM <- 5
PLACEBO_MAX_KM <- 30
H_FIXED_PLACEBO <- 20
placebo_cutoffs <- seq(-PLACEBO_MAX_KM, PLACEBO_MAX_KM, by = PLACEBO_STEP_KM)
df0 <- readr::read_csv(DATA_PATH, show_col_types = FALSE)
# Key column for municipalities
KEYCOL <- if ("istat" %in% names(df0)) "istat" else if ("ISTAT" %in% names(df0)) "ISTAT" else NA_character_
if (is.na(KEYCOL)) stop("No istat/ISTAT column found in df0.")
stopifnot(RUNNING %in% names(df0), REGION %in% names(df0))
stopifnot("COMUNE" %in% names(df0), "Treated" %in% names(df0))
# Region FE factor + compatibility alias
df0 <- df0 %>%
mutate(
COD_REG = as.integer(.data[[REGION]]),
.region_fe = factor(.data[[REGION]])
)
if (!("ireg" %in% names(df0))) df0 <- df0 %>% mutate(ireg = as.integer(.data[[REGION]]))
# Manual distance corrections
manual0 <- readxl::read_excel(MANUAL_DISTANCE_PATH)
needed_manual <- c("COD_REG", "COMUNE", "Treated", "distance_updated")
stopifnot(all(needed_manual %in% names(manual0)))
manual <- manual0 %>%
mutate(
COD_REG = as.integer(COD_REG),
Treated = as.integer(Treated),
COMUNE_clean = stringr::str_squish(stringr::str_to_upper(as.character(COMUNE))),
distance_updated = as.numeric(distance_updated)
) %>%
filter(!is.na(distance_updated)) %>%
select(COD_REG, Treated, COMUNE_clean, distance_updated)
df0 <- df0 %>%
mutate(
Treated = as.integer(Treated),
COMUNE_clean = stringr::str_squish(stringr::str_to_upper(as.character(COMUNE))),
.running_original = .data[[RUNNING]]
) %>%
left_join(manual, by = c("COD_REG", "Treated", "COMUNE_clean")) %>%
mutate(
"{RUNNING}" := dplyr::if_else(!is.na(distance_updated), distance_updated, .data[[RUNNING]]),
.running_overwritten = !is.na(distance_updated)
)
# Exclude Tronzano Lago Maggiore, province code 12 (as in main RMD)
if ("COD_PROV" %in% names(df0)) {
df0 <- df0 %>%
filter(!(COMUNE_clean == "TRONZANO LAGO MAGGIORE" & as.integer(.data[["COD_PROV"]]) == 12))
}
cat("Manual overrides applied: overwritten rows = ", sum(df0$.running_overwritten, na.rm = TRUE), "\n", sep = "")
## Manual overrides applied: overwritten rows = 68
cat("All-Italy rows after override+drop: ", nrow(df0), "\n", sep = "")
## All-Italy rows after override+drop: 6984
# Subsamples
df_all <- df0
df_lom <- df0 %>% filter(as.integer(.data[[REGION]]) == REGION_CODE_LOMBARDIA)
cat("All-Italy N:", nrow(df_all), "\n")
## All-Italy N: 6984
cat("Lombardia N:", nrow(df_lom), "\n")
## Lombardia N: 2812
# Basic checks for requested outcomes (skip missing)
OUTCOMES_PRESENT <- OUTCOMES[OUTCOMES %in% names(df_all)]
if (length(OUTCOMES_PRESENT) == 0) stop("None of OUTCOMES are present in df0. Check column names.")
MISSING_OUTCOMES <- setdiff(OUTCOMES, OUTCOMES_PRESENT)
if (length(MISSING_OUTCOMES) > 0) {
cat("Note: missing outcomes will be skipped:\n")
print(MISSING_OUTCOMES)
}
PLACEBO_OUTCOMES_PRESENT <- PLACEBO_OUTCOMES[PLACEBO_OUTCOMES %in% names(df_all)]
if (length(PLACEBO_OUTCOMES_PRESENT) == 0) stop("None of PLACEBO_OUTCOMES are present in df0. Check column names.")
# Region FE matrix for rdrobust(covs=...) (All-Italy)
make_region_covs <- function(data, region_var) {
data <- data %>% mutate(.region_fe = factor(.data[[region_var]]))
model.matrix(~ .region_fe - 1, data = data)
}
# rdrobust at true cutoff with data-driven bandwidth (for donut main results)
run_rd_true_cutoff <- function(data, y, x, covs_mat = NULL, c0 = 0, p = 1, kernel = "tri", bwselect = "mserd") {
yv <- data[[y]]
xv <- data[[x]]
ok <- is.finite(yv) & is.finite(xv)
yv <- yv[ok]; xv <- xv[ok]
covs_use <- if (!is.null(covs_mat)) covs_mat[ok, , drop = FALSE] else NULL
bw <- tryCatch(
rdbwselect(yv, xv, c = c0, p = p, kernel = kernel, bwselect = bwselect, covs = covs_use),
error = function(e) NULL
)
h <- NA_real_
if (!is.null(bw) && !is.null(bw$bws) && nrow(bw$bws) >= 1) {
bws <- bw$bws
cn <- colnames(bws)
if (!is.null(cn) && "h_mserd" %in% cn) {
h <- as.numeric(bws[1, "h_mserd"])
} else if (!is.null(cn) && any(grepl("^h_", cn))) {
h <- as.numeric(bws[1, cn[which(grepl("^h_", cn))[1]]])
} else if (!is.null(cn) && "h" %in% cn) {
h <- as.numeric(bws[1, "h"])
} else {
h <- as.numeric(bws[1, 1])
}
}
if (!is.finite(h) || h <= 0) {
return(tibble(outcome = y, cutoff = c0, n = length(yv), h = NA_real_,
tau_bc = NA_real_, se_rb = NA_real_, p_rb = NA_real_))
}
fit <- tryCatch(
rdrobust(yv, xv, c = c0, p = p, h = h, kernel = kernel, covs = covs_use),
error = function(e) NULL
)
if (is.null(fit)) {
return(tibble(outcome = y, cutoff = c0, n = length(yv), h = h,
tau_bc = NA_real_, se_rb = NA_real_, p_rb = NA_real_))
}
tibble(
outcome = y,
cutoff = c0,
n = length(yv),
h = as.numeric(h),
tau_bc = as.numeric(fit$coef[2]),
se_rb = as.numeric(fit$se[2]),
p_rb = as.numeric(fit$pv[2])
)
}
# Fixed-h placebo rdrobust
run_rd_fixed_h <- function(data, y, x, covs_mat = NULL, c0, h_fixed, p = 1, kernel = "tri", min_each_side = 30) {
yv <- data[[y]]
xv <- data[[x]]
ok <- is.finite(yv) & is.finite(xv)
yv <- yv[ok]; xv <- xv[ok]
covs_use <- if (!is.null(covs_mat)) covs_mat[ok, , drop = FALSE] else NULL
# support check
nL <- sum(xv < c0)
nR <- sum(xv >= c0)
if (nL < min_each_side || nR < min_each_side) {
return(tibble(outcome = y, cutoff = c0, n = length(yv), h = h_fixed,
tau_bc = NA_real_, se_rb = NA_real_, p_rb = NA_real_))
}
fit <- tryCatch(
rdrobust(yv, xv, c = c0, p = p, h = h_fixed, kernel = kernel, covs = covs_use),
error = function(e) NULL
)
if (is.null(fit)) {
return(tibble(outcome = y, cutoff = c0, n = length(yv), h = h_fixed,
tau_bc = NA_real_, se_rb = NA_real_, p_rb = NA_real_))
}
tibble(
outcome = y,
cutoff = c0,
n = length(yv),
h = h_fixed,
tau_bc = as.numeric(fit$coef[2]),
se_rb = as.numeric(fit$se[2]),
p_rb = as.numeric(fit$pv[2])
)
}
cat("\n\n## Appendix B1. Donut RD robustness: exclude |X| < ", DONUT_KM, " km (true cutoff only)\n\n", sep = "")
##
##
## ## Appendix B1. Donut RD robustness: exclude |X| < 2.5 km (true cutoff only)
# Apply donut
df_all_donut <- df_all %>% filter(abs(.data[[RUNNING]]) >= DONUT_KM)
df_lom_donut <- df_lom %>% filter(abs(.data[[RUNNING]]) >= DONUT_KM)
# Region FE covariates (All-Italy only)
covs_all <- make_region_covs(df_all_donut, REGION)
# Run donut RD for all outcomes present
donut_all_tbl <- purrr::map_dfr(OUTCOMES_PRESENT, ~run_rd_true_cutoff(df_all_donut, y = .x, x = RUNNING, covs_mat = covs_all))
donut_lom_tbl <- purrr::map_dfr(OUTCOMES_PRESENT, ~run_rd_true_cutoff(df_lom_donut, y = .x, x = RUNNING, covs_mat = NULL))
donut_out <- bind_rows(
donut_all_tbl %>% mutate(sample = "All Italy (donut)"),
donut_lom_tbl %>% mutate(sample = "Lombardia (donut)")
) %>% select(sample, outcome, n, h, tau_bc, se_rb, p_rb) %>% arrange(sample, outcome)
knitr::kable(donut_out, digits = 4)
| sample | outcome | n | h | tau_bc | se_rb | p_rb |
|---|---|---|---|---|---|---|
| All Italy (donut) | Admin_Tax_Emp | 1834 | 19.2469 | 2.284000e-01 | 4.870000e-02 | 0.0000 |
| All Italy (donut) | Pillar2_pol | 6884 | 17.0231 | 1.423200e+00 | 1.181600e+00 | 0.2284 |
| All Italy (donut) | PublS_CyclePath_per | 6242 | 23.6367 | 2.614400e+00 | 9.134000e-01 | 0.0042 |
| All Italy (donut) | edu_emp_per1000 | 3388 | 15.2618 | -4.220000e-02 | 3.460000e-02 | 0.2226 |
| All Italy (donut) | edu_muni_school_area_per1000 | 6306 | 12.9016 | 4.536000e-01 | 1.144900e+00 | 0.6920 |
| All Italy (donut) | edu_serv_lvl | 5960 | 15.1741 | 1.620500e+00 | 3.522000e-01 | 0.0000 |
| All Italy (donut) | evasione | 6884 | 18.0398 | 7.607000e-01 | 7.633000e-01 | 0.3190 |
| All Italy (donut) | expend_level | 6314 | 13.3674 | -1.135900e+00 | 3.287000e-01 | 0.0005 |
| All Italy (donut) | expenditure | 6884 | 11.8584 | -1.562480e+04 | 1.891505e+05 | 0.9342 |
| All Italy (donut) | gb_intensity | 6924 | 24.5373 | -1.600000e-03 | 1.700000e-03 | 0.3670 |
| All Italy (donut) | gb_reg_rate | 6924 | 22.1061 | 6.070000e-02 | 1.780000e-02 | 0.0006 |
| All Italy (donut) | income | 6314 | 12.3435 | 3.032269e+06 | 1.927260e+07 | 0.8750 |
| All Italy (donut) | incomepc | 6314 | 12.2161 | 2.595840e+03 | 3.444754e+02 | 0.0000 |
| All Italy (donut) | marr_civil | 6314 | 13.8208 | 1.074500e+01 | 2.380900e+00 | 0.0000 |
| All Italy (donut) | marr_rel | 6314 | 15.9338 | 4.210000e-01 | 1.084300e+00 | 0.6978 |
| All Italy (donut) | pol_mun_road | 6314 | 18.0514 | 1.015030e+01 | 5.933200e+00 | 0.0871 |
| All Italy (donut) | services_level | 6314 | 17.6414 | 2.178100e+00 | 2.908000e-01 | 0.0000 |
| Lombardia (donut) | Admin_Tax_Emp | 774 | 4.3103 | 2.075000e-01 | 3.157000e-01 | 0.5111 |
| Lombardia (donut) | Pillar2_pol | 2746 | 6.1926 | -3.097560e+01 | 4.313900e+00 | 0.0000 |
| Lombardia (donut) | PublS_CyclePath_per | 2722 | 8.6155 | 2.058470e+01 | 3.537200e+00 | 0.0000 |
| Lombardia (donut) | edu_emp_per1000 | 1358 | 8.5868 | -6.020000e-02 | 8.850000e-02 | 0.4959 |
| Lombardia (donut) | edu_muni_school_area_per1000 | 2746 | 4.6439 | -1.265371e+02 | 8.392400e+00 | 0.0000 |
| Lombardia (donut) | edu_serv_lvl | 2668 | 8.0400 | 1.087070e+01 | 7.614000e-01 | 0.0000 |
| Lombardia (donut) | evasione | 2746 | 4.0600 | -2.042430e+01 | 9.134700e+00 | 0.0254 |
| Lombardia (donut) | expend_level | 2746 | 6.8256 | -3.968700e+00 | 7.070000e-01 | 0.0000 |
| Lombardia (donut) | expenditure | 2746 | 6.2971 | 8.256643e+06 | 3.083722e+05 | 0.0000 |
| Lombardia (donut) | gb_intensity | 2766 | 4.2772 | 3.920000e-01 | 2.040000e-02 | 0.0000 |
| Lombardia (donut) | gb_reg_rate | 2766 | 8.4473 | -9.210000e-02 | 3.920000e-02 | 0.0188 |
| Lombardia (donut) | income | 2746 | 6.8518 | 6.370997e+08 | 4.026062e+07 | 0.0000 |
| Lombardia (donut) | incomepc | 2746 | 2.6830 | NA | NA | NA |
| Lombardia (donut) | marr_civil | 2746 | 3.6197 | -8.471245e+02 | 3.015490e+01 | 0.0000 |
| Lombardia (donut) | marr_rel | 2746 | 7.4659 | 1.735660e+01 | 3.049000e+00 | 0.0000 |
| Lombardia (donut) | pol_mun_road | 2746 | 6.5424 | 3.238546e+02 | 1.682560e+01 | 0.0000 |
| Lombardia (donut) | services_level | 2746 | 2.6893 | -8.047058e+02 | 3.941880e+01 | 0.0000 |
cat("\n\n## Appendix B2. Placebo cutoffs: every ", PLACEBO_STEP_KM, " km to ±", PLACEBO_MAX_KM,
" (including 0), fixed h = ", H_FIXED_PLACEBO, " km\n\n", sep = "")
##
##
## ## Appendix B2. Placebo cutoffs: every 5 km to ±30 (including 0), fixed h = 20 km
# Covariates for All-Italy placebo (region FE)
covs_all_placebo <- make_region_covs(df_all, REGION)
# Estimate placebo curves (All-Italy + Lombardia)
placebo_all <- purrr::map_dfr(PLACEBO_OUTCOMES_PRESENT, function(y) {
purrr::map_dfr(placebo_cutoffs, function(c0) {
run_rd_fixed_h(df_all, y = y, x = RUNNING, covs_mat = covs_all_placebo,
c0 = c0, h_fixed = H_FIXED_PLACEBO)
})
}) %>% mutate(sample = "All Italy")
placebo_lom <- purrr::map_dfr(PLACEBO_OUTCOMES_PRESENT, function(y) {
purrr::map_dfr(placebo_cutoffs, function(c0) {
run_rd_fixed_h(df_lom, y = y, x = RUNNING, covs_mat = NULL,
c0 = c0, h_fixed = H_FIXED_PLACEBO)
})
}) %>% mutate(sample = "Lombardia")
placebo_df <- bind_rows(placebo_all, placebo_lom) %>%
mutate(
ci_low = tau_bc - 1.96 * se_rb,
ci_high = tau_bc + 1.96 * se_rb
)
# Table (all estimates)
knitr::kable(
placebo_df %>% select(sample, outcome, cutoff, h, tau_bc, se_rb, p_rb) %>% arrange(sample, outcome, cutoff),
digits = 4
)
| sample | outcome | cutoff | h | tau_bc | se_rb | p_rb |
|---|---|---|---|---|---|---|
| All Italy | Admin_Tax_Emp | -30 | 20 | -1.517000e-01 | 1.230000e-01 | 0.2173 |
| All Italy | Admin_Tax_Emp | -25 | 20 | 1.740000e-02 | 6.170000e-02 | 0.7781 |
| All Italy | Admin_Tax_Emp | -20 | 20 | -1.222000e-01 | 6.490000e-02 | 0.0598 |
| All Italy | Admin_Tax_Emp | -15 | 20 | -2.750000e-01 | 7.510000e-02 | 0.0003 |
| All Italy | Admin_Tax_Emp | -10 | 20 | 3.230000e-02 | 3.070000e-02 | 0.2928 |
| All Italy | Admin_Tax_Emp | -5 | 20 | 6.310000e-02 | 2.810000e-02 | 0.0248 |
| All Italy | Admin_Tax_Emp | 0 | 20 | 1.159000e-01 | 4.690000e-02 | 0.0133 |
| All Italy | Admin_Tax_Emp | 5 | 20 | -1.354000e-01 | 5.120000e-02 | 0.0082 |
| All Italy | Admin_Tax_Emp | 10 | 20 | -6.670000e-02 | 4.530000e-02 | 0.1404 |
| All Italy | Admin_Tax_Emp | 15 | 20 | -1.735000e-01 | 5.300000e-02 | 0.0011 |
| All Italy | Admin_Tax_Emp | 20 | 20 | 5.594000e-01 | 2.234000e-01 | 0.0123 |
| All Italy | Admin_Tax_Emp | 25 | 20 | -5.415000e-01 | 1.991000e-01 | 0.0065 |
| All Italy | Admin_Tax_Emp | 30 | 20 | 2.812000e-01 | 6.070000e-02 | 0.0000 |
| All Italy | Pillar2_pol | -30 | 20 | 4.672000e-01 | 1.143800e+00 | 0.6830 |
| All Italy | Pillar2_pol | -25 | 20 | 2.197100e+00 | 1.171900e+00 | 0.0608 |
| All Italy | Pillar2_pol | -20 | 20 | -2.627900e+00 | 1.051400e+00 | 0.0124 |
| All Italy | Pillar2_pol | -15 | 20 | -2.394800e+00 | 9.130000e-01 | 0.0087 |
| All Italy | Pillar2_pol | -10 | 20 | 1.202100e+00 | 8.447000e-01 | 0.1547 |
| All Italy | Pillar2_pol | -5 | 20 | -3.424000e-01 | 8.358000e-01 | 0.6821 |
| All Italy | Pillar2_pol | 0 | 20 | 7.250000e-01 | 9.439000e-01 | 0.4425 |
| All Italy | Pillar2_pol | 5 | 20 | 5.199000e-01 | 8.471000e-01 | 0.5394 |
| All Italy | Pillar2_pol | 10 | 20 | -1.012200e+00 | 8.678000e-01 | 0.2435 |
| All Italy | Pillar2_pol | 15 | 20 | 3.083600e+00 | 1.002400e+00 | 0.0021 |
| All Italy | Pillar2_pol | 20 | 20 | -4.249200e+00 | 1.009600e+00 | 0.0000 |
| All Italy | Pillar2_pol | 25 | 20 | 3.860400e+00 | 1.034100e+00 | 0.0002 |
| All Italy | Pillar2_pol | 30 | 20 | 2.626000e-01 | 1.166700e+00 | 0.8219 |
| All Italy | PublS_CyclePath_per | -30 | 20 | -3.614700e+00 | 1.062700e+00 | 0.0007 |
| All Italy | PublS_CyclePath_per | -25 | 20 | 3.272000e-01 | 7.564000e-01 | 0.6653 |
| All Italy | PublS_CyclePath_per | -20 | 20 | -3.779700e+00 | 9.634000e-01 | 0.0001 |
| All Italy | PublS_CyclePath_per | -15 | 20 | 6.080400e+00 | 1.441200e+00 | 0.0000 |
| All Italy | PublS_CyclePath_per | -10 | 20 | -4.352200e+00 | 1.452000e+00 | 0.0027 |
| All Italy | PublS_CyclePath_per | -5 | 20 | 1.725900e+00 | 8.300000e-01 | 0.0376 |
| All Italy | PublS_CyclePath_per | 0 | 20 | 4.189900e+00 | 1.118400e+00 | 0.0002 |
| All Italy | PublS_CyclePath_per | 5 | 20 | -4.048000e-01 | 1.068100e+00 | 0.7047 |
| All Italy | PublS_CyclePath_per | 10 | 20 | 2.999800e+00 | 8.571000e-01 | 0.0005 |
| All Italy | PublS_CyclePath_per | 15 | 20 | -2.959300e+00 | 1.156800e+00 | 0.0105 |
| All Italy | PublS_CyclePath_per | 20 | 20 | 1.072400e+00 | 1.227500e+00 | 0.3823 |
| All Italy | PublS_CyclePath_per | 25 | 20 | -2.414300e+00 | 9.946000e-01 | 0.0152 |
| All Italy | PublS_CyclePath_per | 30 | 20 | 4.383000e-01 | 1.130600e+00 | 0.6983 |
| All Italy | edu_emp_per1000 | -30 | 20 | -2.206000e-01 | 4.690000e-02 | 0.0000 |
| All Italy | edu_emp_per1000 | -25 | 20 | 8.900000e-02 | 3.010000e-02 | 0.0031 |
| All Italy | edu_emp_per1000 | -20 | 20 | -1.069000e-01 | 4.240000e-02 | 0.0118 |
| All Italy | edu_emp_per1000 | -15 | 20 | 2.870000e-02 | 2.400000e-02 | 0.2319 |
| All Italy | edu_emp_per1000 | -10 | 20 | 1.330000e-02 | 2.680000e-02 | 0.6188 |
| All Italy | edu_emp_per1000 | -5 | 20 | -1.011000e-01 | 3.340000e-02 | 0.0024 |
| All Italy | edu_emp_per1000 | 0 | 20 | -7.220000e-02 | 2.650000e-02 | 0.0065 |
| All Italy | edu_emp_per1000 | 5 | 20 | 8.160000e-02 | 2.550000e-02 | 0.0014 |
| All Italy | edu_emp_per1000 | 10 | 20 | -3.970000e-02 | 3.270000e-02 | 0.2245 |
| All Italy | edu_emp_per1000 | 15 | 20 | -6.420000e-02 | 3.650000e-02 | 0.0790 |
| All Italy | edu_emp_per1000 | 20 | 20 | 1.040000e-01 | 4.890000e-02 | 0.0335 |
| All Italy | edu_emp_per1000 | 25 | 20 | 9.260000e-02 | 4.360000e-02 | 0.0336 |
| All Italy | edu_emp_per1000 | 30 | 20 | 1.720000e-02 | 2.260000e-02 | 0.4460 |
| All Italy | edu_muni_school_area_per1000 | -30 | 20 | -4.393000e-01 | 1.110000e+00 | 0.6923 |
| All Italy | edu_muni_school_area_per1000 | -25 | 20 | -2.713000e-01 | 9.828000e-01 | 0.7825 |
| All Italy | edu_muni_school_area_per1000 | -20 | 20 | -1.881900e+00 | 1.102400e+00 | 0.0878 |
| All Italy | edu_muni_school_area_per1000 | -15 | 20 | -6.553900e+00 | 8.517000e-01 | 0.0000 |
| All Italy | edu_muni_school_area_per1000 | -10 | 20 | 3.309200e+00 | 7.214000e-01 | 0.0000 |
| All Italy | edu_muni_school_area_per1000 | -5 | 20 | 1.197300e+00 | 6.413000e-01 | 0.0619 |
| All Italy | edu_muni_school_area_per1000 | 0 | 20 | -2.374000e-01 | 7.008000e-01 | 0.7348 |
| All Italy | edu_muni_school_area_per1000 | 5 | 20 | -1.881200e+00 | 6.237000e-01 | 0.0026 |
| All Italy | edu_muni_school_area_per1000 | 10 | 20 | 5.192000e-01 | 6.202000e-01 | 0.4025 |
| All Italy | edu_muni_school_area_per1000 | 15 | 20 | -4.378000e-01 | 6.569000e-01 | 0.5051 |
| All Italy | edu_muni_school_area_per1000 | 20 | 20 | -3.270500e+00 | 6.396000e-01 | 0.0000 |
| All Italy | edu_muni_school_area_per1000 | 25 | 20 | 2.142800e+00 | 6.300000e-01 | 0.0007 |
| All Italy | edu_muni_school_area_per1000 | 30 | 20 | -3.130000e-02 | 6.556000e-01 | 0.9619 |
| All Italy | edu_serv_lvl | -30 | 20 | -6.968000e-01 | 3.121000e-01 | 0.0256 |
| All Italy | edu_serv_lvl | -25 | 20 | -2.559000e-01 | 2.934000e-01 | 0.3831 |
| All Italy | edu_serv_lvl | -20 | 20 | -2.529000e-01 | 3.009000e-01 | 0.4006 |
| All Italy | edu_serv_lvl | -15 | 20 | 2.400000e-01 | 3.063000e-01 | 0.4333 |
| All Italy | edu_serv_lvl | -10 | 20 | -5.379000e-01 | 2.859000e-01 | 0.0599 |
| All Italy | edu_serv_lvl | -5 | 20 | -1.754000e-01 | 2.360000e-01 | 0.4573 |
| All Italy | edu_serv_lvl | 0 | 20 | 3.200000e-03 | 2.598000e-01 | 0.9901 |
| All Italy | edu_serv_lvl | 5 | 20 | -1.296000e-01 | 2.431000e-01 | 0.5940 |
| All Italy | edu_serv_lvl | 10 | 20 | 1.306800e+00 | 2.548000e-01 | 0.0000 |
| All Italy | edu_serv_lvl | 15 | 20 | -5.649000e-01 | 2.671000e-01 | 0.0344 |
| All Italy | edu_serv_lvl | 20 | 20 | -5.752000e-01 | 2.916000e-01 | 0.0486 |
| All Italy | edu_serv_lvl | 25 | 20 | 2.770000e-02 | 2.700000e-01 | 0.9183 |
| All Italy | edu_serv_lvl | 30 | 20 | 1.391000e-01 | 2.799000e-01 | 0.6193 |
| All Italy | evasione | -30 | 20 | -1.292500e+00 | 1.169400e+00 | 0.2691 |
| All Italy | evasione | -25 | 20 | -1.372300e+00 | 1.167500e+00 | 0.2398 |
| All Italy | evasione | -20 | 20 | 3.895000e-01 | 8.178000e-01 | 0.6339 |
| All Italy | evasione | -15 | 20 | 2.789800e+00 | 6.938000e-01 | 0.0001 |
| All Italy | evasione | -10 | 20 | 1.135700e+00 | 6.593000e-01 | 0.0850 |
| All Italy | evasione | -5 | 20 | -1.291800e+00 | 6.066000e-01 | 0.0332 |
| All Italy | evasione | 0 | 20 | 1.622600e+00 | 6.470000e-01 | 0.0121 |
| All Italy | evasione | 5 | 20 | 1.305200e+00 | 5.173000e-01 | 0.0116 |
| All Italy | evasione | 10 | 20 | 1.918000e-01 | 5.400000e-01 | 0.7225 |
| All Italy | evasione | 15 | 20 | -9.402000e-01 | 5.832000e-01 | 0.1069 |
| All Italy | evasione | 20 | 20 | 2.160400e+00 | 6.217000e-01 | 0.0005 |
| All Italy | evasione | 25 | 20 | -4.093400e+00 | 6.534000e-01 | 0.0000 |
| All Italy | evasione | 30 | 20 | -2.194700e+00 | 6.782000e-01 | 0.0012 |
| All Italy | expend_level | -30 | 20 | -1.029000e-01 | 2.332000e-01 | 0.6590 |
| All Italy | expend_level | -25 | 20 | 2.550000e-01 | 2.474000e-01 | 0.3028 |
| All Italy | expend_level | -20 | 20 | 4.310000e-01 | 2.306000e-01 | 0.0616 |
| All Italy | expend_level | -15 | 20 | -3.821000e-01 | 2.644000e-01 | 0.1484 |
| All Italy | expend_level | -10 | 20 | -1.510000e-02 | 2.049000e-01 | 0.9414 |
| All Italy | expend_level | -5 | 20 | -4.445000e-01 | 1.834000e-01 | 0.0154 |
| All Italy | expend_level | 0 | 20 | 2.997000e-01 | 2.213000e-01 | 0.1755 |
| All Italy | expend_level | 5 | 20 | -2.534000e-01 | 1.951000e-01 | 0.1939 |
| All Italy | expend_level | 10 | 20 | 1.856000e-01 | 1.845000e-01 | 0.3144 |
| All Italy | expend_level | 15 | 20 | 8.284000e-01 | 2.584000e-01 | 0.0013 |
| All Italy | expend_level | 20 | 20 | -2.980000e-01 | 2.661000e-01 | 0.2628 |
| All Italy | expend_level | 25 | 20 | -6.692000e-01 | 2.268000e-01 | 0.0032 |
| All Italy | expend_level | 30 | 20 | 1.590800e+00 | 2.166000e-01 | 0.0000 |
| All Italy | expenditure | -30 | 20 | -4.162361e+06 | 9.396560e+05 | 0.0000 |
| All Italy | expenditure | -25 | 20 | 1.259533e+06 | 5.986534e+05 | 0.0354 |
| All Italy | expenditure | -20 | 20 | -1.610980e+06 | 5.503082e+05 | 0.0034 |
| All Italy | expenditure | -15 | 20 | 5.799137e+05 | 3.484738e+05 | 0.0961 |
| All Italy | expenditure | -10 | 20 | 5.120104e+04 | 3.468863e+05 | 0.8827 |
| All Italy | expenditure | -5 | 20 | 2.767692e+05 | 1.306469e+05 | 0.0341 |
| All Italy | expenditure | 0 | 20 | 2.941776e+04 | 1.180148e+05 | 0.8032 |
| All Italy | expenditure | 5 | 20 | 3.778049e+05 | 3.500750e+05 | 0.2805 |
| All Italy | expenditure | 10 | 20 | -7.740052e+05 | 2.832817e+05 | 0.0063 |
| All Italy | expenditure | 15 | 20 | -1.692104e+05 | 1.195078e+06 | 0.8874 |
| All Italy | expenditure | 20 | 20 | 8.993825e+06 | 3.094108e+06 | 0.0037 |
| All Italy | expenditure | 25 | 20 | -9.795470e+05 | 1.544069e+06 | 0.5258 |
| All Italy | expenditure | 30 | 20 | 8.710756e+05 | 2.689142e+05 | 0.0012 |
| All Italy | gb_intensity | -30 | 20 | -3.000000e-03 | 1.400000e-03 | 0.0320 |
| All Italy | gb_intensity | -25 | 20 | -2.000000e-04 | 1.500000e-03 | 0.8903 |
| All Italy | gb_intensity | -20 | 20 | 1.400000e-03 | 2.000000e-03 | 0.4753 |
| All Italy | gb_intensity | -15 | 20 | 2.400000e-03 | 2.200000e-03 | 0.2716 |
| All Italy | gb_intensity | -10 | 20 | -7.000000e-03 | 1.800000e-03 | 0.0001 |
| All Italy | gb_intensity | -5 | 20 | -4.000000e-04 | 1.500000e-03 | 0.7874 |
| All Italy | gb_intensity | 0 | 20 | 6.900000e-03 | 1.800000e-03 | 0.0002 |
| All Italy | gb_intensity | 5 | 20 | -1.700000e-03 | 1.600000e-03 | 0.2975 |
| All Italy | gb_intensity | 10 | 20 | 2.600000e-03 | 2.300000e-03 | 0.2714 |
| All Italy | gb_intensity | 15 | 20 | 1.100000e-03 | 2.600000e-03 | 0.6678 |
| All Italy | gb_intensity | 20 | 20 | -9.300000e-03 | 2.300000e-03 | 0.0000 |
| All Italy | gb_intensity | 25 | 20 | 5.400000e-03 | 1.400000e-03 | 0.0001 |
| All Italy | gb_intensity | 30 | 20 | 3.800000e-03 | 1.800000e-03 | 0.0289 |
| All Italy | gb_reg_rate | -30 | 20 | 3.100000e-03 | 2.400000e-02 | 0.8969 |
| All Italy | gb_reg_rate | -25 | 20 | -6.310000e-02 | 2.430000e-02 | 0.0094 |
| All Italy | gb_reg_rate | -20 | 20 | 3.320000e-02 | 2.110000e-02 | 0.1155 |
| All Italy | gb_reg_rate | -15 | 20 | -1.250000e-02 | 1.580000e-02 | 0.4288 |
| All Italy | gb_reg_rate | -10 | 20 | 5.000000e-03 | 1.420000e-02 | 0.7228 |
| All Italy | gb_reg_rate | -5 | 20 | -2.050000e-02 | 1.430000e-02 | 0.1502 |
| All Italy | gb_reg_rate | 0 | 20 | 6.900000e-03 | 1.630000e-02 | 0.6745 |
| All Italy | gb_reg_rate | 5 | 20 | 6.580000e-02 | 1.730000e-02 | 0.0001 |
| All Italy | gb_reg_rate | 10 | 20 | -5.720000e-02 | 1.560000e-02 | 0.0002 |
| All Italy | gb_reg_rate | 15 | 20 | 7.700000e-02 | 1.620000e-02 | 0.0000 |
| All Italy | gb_reg_rate | 20 | 20 | -1.970000e-02 | 1.910000e-02 | 0.3012 |
| All Italy | gb_reg_rate | 25 | 20 | 2.760000e-02 | 2.220000e-02 | 0.2130 |
| All Italy | gb_reg_rate | 30 | 20 | 2.230000e-02 | 2.470000e-02 | 0.3668 |
| All Italy | income | -30 | 20 | -2.518614e+08 | 5.728090e+07 | 0.0000 |
| All Italy | income | -25 | 20 | 9.687963e+07 | 4.421724e+07 | 0.0285 |
| All Italy | income | -20 | 20 | -1.425480e+08 | 4.249877e+07 | 0.0008 |
| All Italy | income | -15 | 20 | 4.639771e+07 | 2.912600e+07 | 0.1112 |
| All Italy | income | -10 | 20 | 1.385440e+07 | 3.134438e+07 | 0.6585 |
| All Italy | income | -5 | 20 | 2.756179e+07 | 1.256916e+07 | 0.0283 |
| All Italy | income | 0 | 20 | 3.969094e+07 | 1.199236e+07 | 0.0009 |
| All Italy | income | 5 | 20 | 4.177546e+07 | 3.834041e+07 | 0.2759 |
| All Italy | income | 10 | 20 | -9.636705e+07 | 2.576937e+07 | 0.0002 |
| All Italy | income | 15 | 20 | -1.914474e+07 | 1.319059e+08 | 0.8846 |
| All Italy | income | 20 | 20 | 9.885287e+08 | 3.426272e+08 | 0.0039 |
| All Italy | income | 25 | 20 | -1.084866e+08 | 1.709083e+08 | 0.5256 |
| All Italy | income | 30 | 20 | 1.000334e+08 | 2.400735e+07 | 0.0000 |
| All Italy | incomepc | -30 | 20 | 1.656790e+01 | 2.605666e+02 | 0.9493 |
| All Italy | incomepc | -25 | 20 | -8.044920e+01 | 2.522588e+02 | 0.7498 |
| All Italy | incomepc | -20 | 20 | -2.482015e+02 | 2.686594e+02 | 0.3556 |
| All Italy | incomepc | -15 | 20 | -5.743590e+02 | 2.616252e+02 | 0.0281 |
| All Italy | incomepc | -10 | 20 | -1.037550e+03 | 2.696971e+02 | 0.0001 |
| All Italy | incomepc | -5 | 20 | -5.954740e+01 | 2.086200e+02 | 0.7753 |
| All Italy | incomepc | 0 | 20 | 1.182645e+03 | 2.491350e+02 | 0.0000 |
| All Italy | incomepc | 5 | 20 | -6.972543e+02 | 2.420712e+02 | 0.0040 |
| All Italy | incomepc | 10 | 20 | 1.028215e+03 | 3.421426e+02 | 0.0027 |
| All Italy | incomepc | 15 | 20 | -1.012063e+03 | 3.805682e+02 | 0.0078 |
| All Italy | incomepc | 20 | 20 | -8.989679e+02 | 3.937247e+02 | 0.0224 |
| All Italy | incomepc | 25 | 20 | 9.892420e+01 | 3.921497e+02 | 0.8008 |
| All Italy | incomepc | 30 | 20 | 2.304520e+03 | 3.758906e+02 | 0.0000 |
| All Italy | marr_civil | -30 | 20 | -2.565540e+01 | 5.443900e+00 | 0.0000 |
| All Italy | marr_civil | -25 | 20 | 1.034360e+01 | 4.495400e+00 | 0.0214 |
| All Italy | marr_civil | -20 | 20 | -1.547970e+01 | 4.589200e+00 | 0.0007 |
| All Italy | marr_civil | -15 | 20 | 2.625700e+00 | 2.714700e+00 | 0.3334 |
| All Italy | marr_civil | -10 | 20 | 3.717300e+00 | 2.797100e+00 | 0.1839 |
| All Italy | marr_civil | -5 | 20 | 2.236300e+00 | 1.405800e+00 | 0.1117 |
| All Italy | marr_civil | 0 | 20 | 7.698000e+00 | 1.473600e+00 | 0.0000 |
| All Italy | marr_civil | 5 | 20 | 1.848100e+00 | 2.848800e+00 | 0.5165 |
| All Italy | marr_civil | 10 | 20 | -4.175300e+00 | 2.468400e+00 | 0.0907 |
| All Italy | marr_civil | 15 | 20 | 4.902000e-01 | 9.199300e+00 | 0.9575 |
| All Italy | marr_civil | 20 | 20 | 6.582140e+01 | 2.349530e+01 | 0.0051 |
| All Italy | marr_civil | 25 | 20 | -4.013500e+00 | 1.174990e+01 | 0.7327 |
| All Italy | marr_civil | 30 | 20 | 1.955600e+00 | 2.390900e+00 | 0.4134 |
| All Italy | marr_rel | -30 | 20 | -8.920900e+00 | 1.655900e+00 | 0.0000 |
| All Italy | marr_rel | -25 | 20 | 3.244600e+00 | 1.593400e+00 | 0.0417 |
| All Italy | marr_rel | -20 | 20 | -5.320000e+00 | 1.636400e+00 | 0.0012 |
| All Italy | marr_rel | -15 | 20 | 1.022400e+00 | 1.030400e+00 | 0.3211 |
| All Italy | marr_rel | -10 | 20 | 1.375200e+00 | 1.113700e+00 | 0.2169 |
| All Italy | marr_rel | -5 | 20 | 1.104100e+00 | 7.582000e-01 | 0.1453 |
| All Italy | marr_rel | 0 | 20 | -1.073600e+00 | 7.915000e-01 | 0.1750 |
| All Italy | marr_rel | 5 | 20 | 1.025200e+00 | 1.073900e+00 | 0.3397 |
| All Italy | marr_rel | 10 | 20 | -1.276900e+00 | 1.157000e+00 | 0.2697 |
| All Italy | marr_rel | 15 | 20 | -6.869000e-01 | 2.973800e+00 | 0.8173 |
| All Italy | marr_rel | 20 | 20 | 1.866670e+01 | 7.231400e+00 | 0.0098 |
| All Italy | marr_rel | 25 | 20 | -4.734000e-01 | 3.654500e+00 | 0.8969 |
| All Italy | marr_rel | 30 | 20 | 1.128100e+00 | 1.084600e+00 | 0.2983 |
| All Italy | pol_mun_road | -30 | 20 | -1.475900e+01 | 1.202450e+01 | 0.2197 |
| All Italy | pol_mun_road | -25 | 20 | 1.731200e+01 | 1.384010e+01 | 0.2110 |
| All Italy | pol_mun_road | -20 | 20 | -5.024390e+01 | 1.432410e+01 | 0.0005 |
| All Italy | pol_mun_road | -15 | 20 | -4.463100e+00 | 9.081200e+00 | 0.6231 |
| All Italy | pol_mun_road | -10 | 20 | 7.868600e+00 | 1.024790e+01 | 0.4426 |
| All Italy | pol_mun_road | -5 | 20 | 9.338600e+00 | 5.841800e+00 | 0.1099 |
| All Italy | pol_mun_road | 0 | 20 | 2.612920e+01 | 4.702800e+00 | 0.0000 |
| All Italy | pol_mun_road | 5 | 20 | 3.893400e+00 | 5.329900e+00 | 0.4651 |
| All Italy | pol_mun_road | 10 | 20 | -1.969890e+01 | 7.149600e+00 | 0.0059 |
| All Italy | pol_mun_road | 15 | 20 | -1.943900e+00 | 1.137780e+01 | 0.8643 |
| All Italy | pol_mun_road | 20 | 20 | 5.798540e+01 | 2.543440e+01 | 0.0226 |
| All Italy | pol_mun_road | 25 | 20 | 2.889500e+00 | 1.305520e+01 | 0.8248 |
| All Italy | pol_mun_road | 30 | 20 | 3.087000e-01 | 5.413400e+00 | 0.9545 |
| All Italy | services_level | -30 | 20 | -7.912000e-01 | 3.217000e-01 | 0.0139 |
| All Italy | services_level | -25 | 20 | 7.537000e-01 | 2.836000e-01 | 0.0079 |
| All Italy | services_level | -20 | 20 | 1.444000e-01 | 2.943000e-01 | 0.6236 |
| All Italy | services_level | -15 | 20 | -9.784000e-01 | 2.827000e-01 | 0.0005 |
| All Italy | services_level | -10 | 20 | -7.461000e-01 | 2.228000e-01 | 0.0008 |
| All Italy | services_level | -5 | 20 | -1.896000e-01 | 2.185000e-01 | 0.3854 |
| All Italy | services_level | 0 | 20 | 4.167000e-01 | 2.372000e-01 | 0.0789 |
| All Italy | services_level | 5 | 20 | -8.365000e-01 | 2.130000e-01 | 0.0001 |
| All Italy | services_level | 10 | 20 | 1.092000e-01 | 1.924000e-01 | 0.5703 |
| All Italy | services_level | 15 | 20 | 6.742000e-01 | 2.006000e-01 | 0.0008 |
| All Italy | services_level | 20 | 20 | 3.724000e-01 | 2.459000e-01 | 0.1299 |
| All Italy | services_level | 25 | 20 | -9.846000e-01 | 2.537000e-01 | 0.0001 |
| All Italy | services_level | 30 | 20 | 1.703000e-01 | 2.641000e-01 | 0.5190 |
| Lombardia | Admin_Tax_Emp | -30 | 20 | NA | NA | NA |
| Lombardia | Admin_Tax_Emp | -25 | 20 | NA | NA | NA |
| Lombardia | Admin_Tax_Emp | -20 | 20 | NA | NA | NA |
| Lombardia | Admin_Tax_Emp | -15 | 20 | -1.402000e-01 | 8.490000e-02 | 0.0985 |
| Lombardia | Admin_Tax_Emp | -10 | 20 | -7.450000e-02 | 4.530000e-02 | 0.1002 |
| Lombardia | Admin_Tax_Emp | -5 | 20 | 5.130000e-02 | 3.950000e-02 | 0.1932 |
| Lombardia | Admin_Tax_Emp | 0 | 20 | 1.147000e-01 | 4.670000e-02 | 0.0140 |
| Lombardia | Admin_Tax_Emp | 5 | 20 | -1.448000e-01 | 5.240000e-02 | 0.0057 |
| Lombardia | Admin_Tax_Emp | 10 | 20 | -6.300000e-02 | 4.720000e-02 | 0.1817 |
| Lombardia | Admin_Tax_Emp | 15 | 20 | -1.788000e-01 | 5.410000e-02 | 0.0010 |
| Lombardia | Admin_Tax_Emp | 20 | 20 | 5.593000e-01 | 2.234000e-01 | 0.0123 |
| Lombardia | Admin_Tax_Emp | 25 | 20 | -5.410000e-01 | 2.012000e-01 | 0.0072 |
| Lombardia | Admin_Tax_Emp | 30 | 20 | 2.837000e-01 | 6.060000e-02 | 0.0000 |
| Lombardia | Pillar2_pol | -30 | 20 | NA | NA | NA |
| Lombardia | Pillar2_pol | -25 | 20 | NA | NA | NA |
| Lombardia | Pillar2_pol | -20 | 20 | -5.762800e+00 | 2.757900e+00 | 0.0367 |
| Lombardia | Pillar2_pol | -15 | 20 | -5.067900e+00 | 1.575200e+00 | 0.0013 |
| Lombardia | Pillar2_pol | -10 | 20 | -8.557000e-01 | 1.542500e+00 | 0.5791 |
| Lombardia | Pillar2_pol | -5 | 20 | -1.210800e+00 | 1.358000e+00 | 0.3726 |
| Lombardia | Pillar2_pol | 0 | 20 | 2.400000e-02 | 1.262600e+00 | 0.9848 |
| Lombardia | Pillar2_pol | 5 | 20 | 3.500000e-01 | 8.837000e-01 | 0.6920 |
| Lombardia | Pillar2_pol | 10 | 20 | -1.100600e+00 | 9.212000e-01 | 0.2322 |
| Lombardia | Pillar2_pol | 15 | 20 | 3.053600e+00 | 1.029500e+00 | 0.0030 |
| Lombardia | Pillar2_pol | 20 | 20 | -4.271400e+00 | 1.010700e+00 | 0.0000 |
| Lombardia | Pillar2_pol | 25 | 20 | 3.858600e+00 | 1.036300e+00 | 0.0002 |
| Lombardia | Pillar2_pol | 30 | 20 | 2.621000e-01 | 1.166900e+00 | 0.8223 |
| Lombardia | PublS_CyclePath_per | -30 | 20 | NA | NA | NA |
| Lombardia | PublS_CyclePath_per | -25 | 20 | NA | NA | NA |
| Lombardia | PublS_CyclePath_per | -20 | 20 | 1.134500e+00 | 8.170000e-01 | 0.1649 |
| Lombardia | PublS_CyclePath_per | -15 | 20 | 2.699200e+00 | 3.941000e-01 | 0.0000 |
| Lombardia | PublS_CyclePath_per | -10 | 20 | -3.644900e+00 | 8.397000e-01 | 0.0000 |
| Lombardia | PublS_CyclePath_per | -5 | 20 | 3.925800e+00 | 1.858900e+00 | 0.0347 |
| Lombardia | PublS_CyclePath_per | 0 | 20 | -1.531400e+00 | 2.090800e+00 | 0.4639 |
| Lombardia | PublS_CyclePath_per | 5 | 20 | 7.632000e-01 | 1.170800e+00 | 0.5145 |
| Lombardia | PublS_CyclePath_per | 10 | 20 | 2.842700e+00 | 9.202000e-01 | 0.0020 |
| Lombardia | PublS_CyclePath_per | 15 | 20 | -2.779100e+00 | 1.202800e+00 | 0.0209 |
| Lombardia | PublS_CyclePath_per | 20 | 20 | 1.139700e+00 | 1.229600e+00 | 0.3540 |
| Lombardia | PublS_CyclePath_per | 25 | 20 | -2.445500e+00 | 9.965000e-01 | 0.0141 |
| Lombardia | PublS_CyclePath_per | 30 | 20 | 4.365000e-01 | 1.130800e+00 | 0.6995 |
| Lombardia | edu_emp_per1000 | -30 | 20 | NA | NA | NA |
| Lombardia | edu_emp_per1000 | -25 | 20 | NA | NA | NA |
| Lombardia | edu_emp_per1000 | -20 | 20 | NA | NA | NA |
| Lombardia | edu_emp_per1000 | -15 | 20 | -1.830000e-02 | 2.900000e-03 | 0.0000 |
| Lombardia | edu_emp_per1000 | -10 | 20 | 2.900000e-03 | 1.350000e-02 | 0.8299 |
| Lombardia | edu_emp_per1000 | -5 | 20 | 1.480000e-02 | 3.660000e-02 | 0.6867 |
| Lombardia | edu_emp_per1000 | 0 | 20 | -1.507000e-01 | 3.730000e-02 | 0.0001 |
| Lombardia | edu_emp_per1000 | 5 | 20 | 8.020000e-02 | 2.680000e-02 | 0.0028 |
| Lombardia | edu_emp_per1000 | 10 | 20 | -5.740000e-02 | 3.500000e-02 | 0.1010 |
| Lombardia | edu_emp_per1000 | 15 | 20 | -7.340000e-02 | 3.740000e-02 | 0.0499 |
| Lombardia | edu_emp_per1000 | 20 | 20 | 1.078000e-01 | 4.890000e-02 | 0.0276 |
| Lombardia | edu_emp_per1000 | 25 | 20 | 9.380000e-02 | 4.360000e-02 | 0.0314 |
| Lombardia | edu_emp_per1000 | 30 | 20 | 1.730000e-02 | 2.260000e-02 | 0.4445 |
| Lombardia | edu_muni_school_area_per1000 | -30 | 20 | NA | NA | NA |
| Lombardia | edu_muni_school_area_per1000 | -25 | 20 | NA | NA | NA |
| Lombardia | edu_muni_school_area_per1000 | -20 | 20 | 3.964500e+00 | 2.588700e+00 | 0.1257 |
| Lombardia | edu_muni_school_area_per1000 | -15 | 20 | -6.307600e+00 | 1.770500e+00 | 0.0004 |
| Lombardia | edu_muni_school_area_per1000 | -10 | 20 | -5.056700e+00 | 1.227100e+00 | 0.0000 |
| Lombardia | edu_muni_school_area_per1000 | -5 | 20 | 4.739300e+00 | 1.197100e+00 | 0.0001 |
| Lombardia | edu_muni_school_area_per1000 | 0 | 20 | -2.503500e+00 | 1.296800e+00 | 0.0535 |
| Lombardia | edu_muni_school_area_per1000 | 5 | 20 | -2.445000e+00 | 6.582000e-01 | 0.0002 |
| Lombardia | edu_muni_school_area_per1000 | 10 | 20 | 7.379000e-01 | 6.743000e-01 | 0.2738 |
| Lombardia | edu_muni_school_area_per1000 | 15 | 20 | -6.332000e-01 | 6.805000e-01 | 0.3521 |
| Lombardia | edu_muni_school_area_per1000 | 20 | 20 | -3.285900e+00 | 6.403000e-01 | 0.0000 |
| Lombardia | edu_muni_school_area_per1000 | 25 | 20 | 2.143500e+00 | 6.315000e-01 | 0.0007 |
| Lombardia | edu_muni_school_area_per1000 | 30 | 20 | -3.090000e-02 | 6.558000e-01 | 0.9624 |
| Lombardia | edu_serv_lvl | -30 | 20 | NA | NA | NA |
| Lombardia | edu_serv_lvl | -25 | 20 | NA | NA | NA |
| Lombardia | edu_serv_lvl | -20 | 20 | -2.619000e-01 | 4.254000e-01 | 0.5382 |
| Lombardia | edu_serv_lvl | -15 | 20 | 3.697000e-01 | 4.662000e-01 | 0.4277 |
| Lombardia | edu_serv_lvl | -10 | 20 | -2.277300e+00 | 4.627000e-01 | 0.0000 |
| Lombardia | edu_serv_lvl | -5 | 20 | -1.968000e-01 | 3.476000e-01 | 0.5712 |
| Lombardia | edu_serv_lvl | 0 | 20 | 8.651000e-01 | 3.430000e-01 | 0.0117 |
| Lombardia | edu_serv_lvl | 5 | 20 | -2.050000e-01 | 2.552000e-01 | 0.4218 |
| Lombardia | edu_serv_lvl | 10 | 20 | 1.319000e+00 | 2.731000e-01 | 0.0000 |
| Lombardia | edu_serv_lvl | 15 | 20 | -5.723000e-01 | 2.735000e-01 | 0.0364 |
| Lombardia | edu_serv_lvl | 20 | 20 | -5.741000e-01 | 2.919000e-01 | 0.0492 |
| Lombardia | edu_serv_lvl | 25 | 20 | 1.900000e-02 | 2.707000e-01 | 0.9440 |
| Lombardia | edu_serv_lvl | 30 | 20 | 1.390000e-01 | 2.799000e-01 | 0.6195 |
| Lombardia | evasione | -30 | 20 | NA | NA | NA |
| Lombardia | evasione | -25 | 20 | NA | NA | NA |
| Lombardia | evasione | -20 | 20 | 3.663800e+00 | 2.532000e+00 | 0.1479 |
| Lombardia | evasione | -15 | 20 | 3.228700e+00 | 1.222400e+00 | 0.0083 |
| Lombardia | evasione | -10 | 20 | 4.806500e+00 | 1.391000e+00 | 0.0005 |
| Lombardia | evasione | -5 | 20 | -6.032000e-01 | 1.034700e+00 | 0.5599 |
| Lombardia | evasione | 0 | 20 | 4.933300e+00 | 9.825000e-01 | 0.0000 |
| Lombardia | evasione | 5 | 20 | 1.428900e+00 | 5.563000e-01 | 0.0102 |
| Lombardia | evasione | 10 | 20 | -1.710000e-02 | 5.711000e-01 | 0.9761 |
| Lombardia | evasione | 15 | 20 | -8.842000e-01 | 5.942000e-01 | 0.1367 |
| Lombardia | evasione | 20 | 20 | 2.154200e+00 | 6.222000e-01 | 0.0005 |
| Lombardia | evasione | 25 | 20 | -4.148200e+00 | 6.547000e-01 | 0.0000 |
| Lombardia | evasione | 30 | 20 | -2.195300e+00 | 6.784000e-01 | 0.0012 |
| Lombardia | expend_level | -30 | 20 | NA | NA | NA |
| Lombardia | expend_level | -25 | 20 | NA | NA | NA |
| Lombardia | expend_level | -20 | 20 | 9.984000e-01 | 4.247000e-01 | 0.0187 |
| Lombardia | expend_level | -15 | 20 | 1.205900e+00 | 4.674000e-01 | 0.0099 |
| Lombardia | expend_level | -10 | 20 | -5.451000e-01 | 4.319000e-01 | 0.2069 |
| Lombardia | expend_level | -5 | 20 | -1.319600e+00 | 3.264000e-01 | 0.0001 |
| Lombardia | expend_level | 0 | 20 | 1.094300e+00 | 3.323000e-01 | 0.0010 |
| Lombardia | expend_level | 5 | 20 | -4.108000e-01 | 1.941000e-01 | 0.0343 |
| Lombardia | expend_level | 10 | 20 | 2.487000e-01 | 1.970000e-01 | 0.2067 |
| Lombardia | expend_level | 15 | 20 | 8.532000e-01 | 2.638000e-01 | 0.0012 |
| Lombardia | expend_level | 20 | 20 | -3.010000e-01 | 2.664000e-01 | 0.2587 |
| Lombardia | expend_level | 25 | 20 | -6.558000e-01 | 2.271000e-01 | 0.0039 |
| Lombardia | expend_level | 30 | 20 | 1.590800e+00 | 2.167000e-01 | 0.0000 |
| Lombardia | expenditure | -30 | 20 | NA | NA | NA |
| Lombardia | expenditure | -25 | 20 | NA | NA | NA |
| Lombardia | expenditure | -20 | 20 | -7.592332e+04 | 1.759748e+05 | 0.6661 |
| Lombardia | expenditure | -15 | 20 | -4.784981e+04 | 2.717299e+04 | 0.0782 |
| Lombardia | expenditure | -10 | 20 | -4.142824e+03 | 6.580600e+04 | 0.9498 |
| Lombardia | expenditure | -5 | 20 | 4.179204e+05 | 1.408860e+05 | 0.0030 |
| Lombardia | expenditure | 0 | 20 | -8.794917e+05 | 1.601799e+05 | 0.0000 |
| Lombardia | expenditure | 5 | 20 | 6.355741e+05 | 3.584208e+05 | 0.0762 |
| Lombardia | expenditure | 10 | 20 | -1.209950e+06 | 2.310461e+05 | 0.0000 |
| Lombardia | expenditure | 15 | 20 | -1.706679e+04 | 1.191893e+06 | 0.9886 |
| Lombardia | expenditure | 20 | 20 | 8.937368e+06 | 3.093982e+06 | 0.0039 |
| Lombardia | expenditure | 25 | 20 | -1.036661e+06 | 1.545034e+06 | 0.5022 |
| Lombardia | expenditure | 30 | 20 | 8.745717e+05 | 2.685420e+05 | 0.0011 |
| Lombardia | gb_intensity | -30 | 20 | NA | NA | NA |
| Lombardia | gb_intensity | -25 | 20 | NA | NA | NA |
| Lombardia | gb_intensity | -20 | 20 | -5.000000e-03 | 4.600000e-03 | 0.2739 |
| Lombardia | gb_intensity | -15 | 20 | 1.740000e-02 | 4.800000e-03 | 0.0003 |
| Lombardia | gb_intensity | -10 | 20 | -2.370000e-02 | 4.300000e-03 | 0.0000 |
| Lombardia | gb_intensity | -5 | 20 | 6.000000e-03 | 2.700000e-03 | 0.0257 |
| Lombardia | gb_intensity | 0 | 20 | 1.630000e-02 | 2.600000e-03 | 0.0000 |
| Lombardia | gb_intensity | 5 | 20 | -3.400000e-03 | 1.800000e-03 | 0.0530 |
| Lombardia | gb_intensity | 10 | 20 | 2.200000e-03 | 2.500000e-03 | 0.3720 |
| Lombardia | gb_intensity | 15 | 20 | -2.000000e-04 | 2.700000e-03 | 0.9274 |
| Lombardia | gb_intensity | 20 | 20 | -9.300000e-03 | 2.300000e-03 | 0.0000 |
| Lombardia | gb_intensity | 25 | 20 | 5.600000e-03 | 1.400000e-03 | 0.0001 |
| Lombardia | gb_intensity | 30 | 20 | 3.800000e-03 | 1.800000e-03 | 0.0289 |
| Lombardia | gb_reg_rate | -30 | 20 | NA | NA | NA |
| Lombardia | gb_reg_rate | -25 | 20 | NA | NA | NA |
| Lombardia | gb_reg_rate | -20 | 20 | -2.960000e-02 | 2.440000e-02 | 0.2262 |
| Lombardia | gb_reg_rate | -15 | 20 | 2.400000e-02 | 1.730000e-02 | 0.1650 |
| Lombardia | gb_reg_rate | -10 | 20 | 1.170000e-02 | 1.590000e-02 | 0.4612 |
| Lombardia | gb_reg_rate | -5 | 20 | -7.490000e-02 | 1.480000e-02 | 0.0000 |
| Lombardia | gb_reg_rate | 0 | 20 | 2.810000e-02 | 1.610000e-02 | 0.0807 |
| Lombardia | gb_reg_rate | 5 | 20 | 7.370000e-02 | 1.860000e-02 | 0.0001 |
| Lombardia | gb_reg_rate | 10 | 20 | -6.050000e-02 | 1.670000e-02 | 0.0003 |
| Lombardia | gb_reg_rate | 15 | 20 | 9.040000e-02 | 1.660000e-02 | 0.0000 |
| Lombardia | gb_reg_rate | 20 | 20 | -1.920000e-02 | 1.910000e-02 | 0.3162 |
| Lombardia | gb_reg_rate | 25 | 20 | 2.750000e-02 | 2.220000e-02 | 0.2159 |
| Lombardia | gb_reg_rate | 30 | 20 | 2.230000e-02 | 2.470000e-02 | 0.3678 |
| Lombardia | income | -30 | 20 | NA | NA | NA |
| Lombardia | income | -25 | 20 | NA | NA | NA |
| Lombardia | income | -20 | 20 | -1.196535e+07 | 3.149122e+07 | 0.7040 |
| Lombardia | income | -15 | 20 | -9.533706e+06 | 4.890614e+06 | 0.0512 |
| Lombardia | income | -10 | 20 | 7.085148e+05 | 9.281224e+06 | 0.9391 |
| Lombardia | income | -5 | 20 | 5.355922e+07 | 1.673832e+07 | 0.0014 |
| Lombardia | income | 0 | 20 | -9.856871e+07 | 1.909590e+07 | 0.0000 |
| Lombardia | income | 5 | 20 | 6.480434e+07 | 3.953058e+07 | 0.1011 |
| Lombardia | income | 10 | 20 | -1.290268e+08 | 2.257734e+07 | 0.0000 |
| Lombardia | income | 15 | 20 | -6.673957e+06 | 1.317615e+08 | 0.9596 |
| Lombardia | income | 20 | 20 | 9.839876e+08 | 3.426201e+08 | 0.0041 |
| Lombardia | income | 25 | 20 | -1.123919e+08 | 1.710230e+08 | 0.5111 |
| Lombardia | income | 30 | 20 | 1.004454e+08 | 2.395438e+07 | 0.0000 |
| Lombardia | incomepc | -30 | 20 | NA | NA | NA |
| Lombardia | incomepc | -25 | 20 | NA | NA | NA |
| Lombardia | incomepc | -20 | 20 | -2.019307e+03 | 4.337268e+02 | 0.0000 |
| Lombardia | incomepc | -15 | 20 | 3.200572e+02 | 2.683917e+02 | 0.2331 |
| Lombardia | incomepc | -10 | 20 | -1.508361e+03 | 3.240104e+02 | 0.0000 |
| Lombardia | incomepc | -5 | 20 | -2.337180e+01 | 3.302862e+02 | 0.9436 |
| Lombardia | incomepc | 0 | 20 | 1.256059e+03 | 3.319316e+02 | 0.0002 |
| Lombardia | incomepc | 5 | 20 | -5.894851e+02 | 2.642930e+02 | 0.0257 |
| Lombardia | incomepc | 10 | 20 | 1.020621e+03 | 3.825968e+02 | 0.0076 |
| Lombardia | incomepc | 15 | 20 | -1.095003e+03 | 3.919803e+02 | 0.0052 |
| Lombardia | incomepc | 20 | 20 | -9.005590e+02 | 3.943474e+02 | 0.0224 |
| Lombardia | incomepc | 25 | 20 | 9.363340e+01 | 3.932665e+02 | 0.8118 |
| Lombardia | incomepc | 30 | 20 | 2.303409e+03 | 3.759578e+02 | 0.0000 |
| Lombardia | marr_civil | -30 | 20 | NA | NA | NA |
| Lombardia | marr_civil | -25 | 20 | NA | NA | NA |
| Lombardia | marr_civil | -20 | 20 | 3.163300e+00 | 2.860000e+00 | 0.2687 |
| Lombardia | marr_civil | -15 | 20 | -2.677600e+00 | 9.775000e-01 | 0.0062 |
| Lombardia | marr_civil | -10 | 20 | -1.154000e+00 | 9.556000e-01 | 0.2272 |
| Lombardia | marr_civil | -5 | 20 | 9.362200e+00 | 2.074300e+00 | 0.0000 |
| Lombardia | marr_civil | 0 | 20 | -6.427500e+00 | 2.426400e+00 | 0.0081 |
| Lombardia | marr_civil | 5 | 20 | 4.179200e+00 | 2.881800e+00 | 0.1470 |
| Lombardia | marr_civil | 10 | 20 | -6.455700e+00 | 2.196800e+00 | 0.0033 |
| Lombardia | marr_civil | 15 | 20 | 1.251500e+00 | 9.186300e+00 | 0.8916 |
| Lombardia | marr_civil | 20 | 20 | 6.532010e+01 | 2.349440e+01 | 0.0054 |
| Lombardia | marr_civil | 25 | 20 | -4.403300e+00 | 1.175740e+01 | 0.7080 |
| Lombardia | marr_civil | 30 | 20 | 1.978400e+00 | 2.388900e+00 | 0.4076 |
| Lombardia | marr_rel | -30 | 20 | NA | NA | NA |
| Lombardia | marr_rel | -25 | 20 | NA | NA | NA |
| Lombardia | marr_rel | -20 | 20 | -5.779000e-01 | 1.353000e+00 | 0.6693 |
| Lombardia | marr_rel | -15 | 20 | -7.297000e-01 | 6.720000e-01 | 0.2775 |
| Lombardia | marr_rel | -10 | 20 | -1.118700e+00 | 5.474000e-01 | 0.0410 |
| Lombardia | marr_rel | -5 | 20 | 4.720100e+00 | 1.122200e+00 | 0.0000 |
| Lombardia | marr_rel | 0 | 20 | -7.006900e+00 | 1.348400e+00 | 0.0000 |
| Lombardia | marr_rel | 5 | 20 | 1.777000e+00 | 1.067300e+00 | 0.0959 |
| Lombardia | marr_rel | 10 | 20 | -2.396600e+00 | 1.115500e+00 | 0.0317 |
| Lombardia | marr_rel | 15 | 20 | -3.178000e-01 | 2.970700e+00 | 0.9148 |
| Lombardia | marr_rel | 20 | 20 | 1.848780e+01 | 7.230900e+00 | 0.0106 |
| Lombardia | marr_rel | 25 | 20 | -6.295000e-01 | 3.656900e+00 | 0.8633 |
| Lombardia | marr_rel | 30 | 20 | 1.135100e+00 | 1.084200e+00 | 0.2952 |
| Lombardia | pol_mun_road | -30 | 20 | NA | NA | NA |
| Lombardia | pol_mun_road | -25 | 20 | NA | NA | NA |
| Lombardia | pol_mun_road | -20 | 20 | -1.837700e+01 | 1.298080e+01 | 0.1569 |
| Lombardia | pol_mun_road | -15 | 20 | -1.636980e+01 | 3.584300e+00 | 0.0000 |
| Lombardia | pol_mun_road | -10 | 20 | -2.692800e+00 | 4.907800e+00 | 0.5832 |
| Lombardia | pol_mun_road | -5 | 20 | 3.029810e+01 | 7.928900e+00 | 0.0001 |
| Lombardia | pol_mun_road | 0 | 20 | -4.936420e+01 | 8.845600e+00 | 0.0000 |
| Lombardia | pol_mun_road | 5 | 20 | 1.330090e+01 | 4.881300e+00 | 0.0064 |
| Lombardia | pol_mun_road | 10 | 20 | -1.648550e+01 | 6.302200e+00 | 0.0089 |
| Lombardia | pol_mun_road | 15 | 20 | 2.330100e+00 | 1.126000e+01 | 0.8361 |
| Lombardia | pol_mun_road | 20 | 20 | 5.516110e+01 | 2.542690e+01 | 0.0301 |
| Lombardia | pol_mun_road | 25 | 20 | 7.551000e-01 | 1.305870e+01 | 0.9539 |
| Lombardia | pol_mun_road | 30 | 20 | 3.300000e-01 | 5.413000e+00 | 0.9514 |
| Lombardia | services_level | -30 | 20 | NA | NA | NA |
| Lombardia | services_level | -25 | 20 | NA | NA | NA |
| Lombardia | services_level | -20 | 20 | 2.487300e+00 | 5.259000e-01 | 0.0000 |
| Lombardia | services_level | -15 | 20 | -7.743000e-01 | 5.574000e-01 | 0.1648 |
| Lombardia | services_level | -10 | 20 | -1.578800e+00 | 4.623000e-01 | 0.0006 |
| Lombardia | services_level | -5 | 20 | -7.885000e-01 | 4.136000e-01 | 0.0566 |
| Lombardia | services_level | 0 | 20 | 9.821000e-01 | 3.914000e-01 | 0.0121 |
| Lombardia | services_level | 5 | 20 | -1.198500e+00 | 2.261000e-01 | 0.0000 |
| Lombardia | services_level | 10 | 20 | 1.077000e-01 | 2.115000e-01 | 0.6106 |
| Lombardia | services_level | 15 | 20 | 7.664000e-01 | 2.064000e-01 | 0.0002 |
| Lombardia | services_level | 20 | 20 | 3.649000e-01 | 2.464000e-01 | 0.1386 |
| Lombardia | services_level | 25 | 20 | -9.958000e-01 | 2.542000e-01 | 0.0001 |
| Lombardia | services_level | 30 | 20 | 1.706000e-01 | 2.641000e-01 | 0.5182 |
# One graph per outcome, facet by sample
for (y in unique(placebo_df$outcome)) {
dfy <- placebo_df %>% filter(outcome == y, is.finite(tau_bc), is.finite(se_rb))
p <- ggplot(dfy, aes(x = cutoff, y = tau_bc)) +
geom_hline(yintercept = 0) +
geom_vline(xintercept = 0, linetype = "dashed") +
geom_errorbar(aes(ymin = ci_low, ymax = ci_high), width = 0) +
geom_point(size = 1.6) +
facet_wrap(~ sample, ncol = 1, scales = "free_y") +
labs(
x = "Artificial cutoff (km; true cutoff at 0)",
y = "RD estimate (bias-corrected Ï„; robust SE)",
title = paste0("Placebo cutoff RD estimates: ", y, " (fixed h = ", H_FIXED_PLACEBO, " km)")
) +
theme_minimal(base_size = 12)
print(p)
}