## # A tibble: 3 × 3
## transfer number percent
## <chr> <int> <dbl>
## 1 0 48 60.8
## 2 1 30 38
## 3 <NA> 1 1.3
НЗП: UR_share_total (общая доля голосов ЕР по результатам выборов в городской совет)
names(grad)
## [1] "oktmo" "city" "transfer"
## [4] "year_of_transfer" "term_of_transfer" "CPRF"
## [7] "Yabloko" "LDPR" "UR"
## [10] "JR" "Self" "Others"
## [13] "CPRF_sum" "UR_sum" "LDPR_sum"
## [16] "JR_sum" "Year.of.elections" "UR_list_share"
## [19] "UR_mandate_share" "UR_share_total" "budget_all"
## [22] "ind" "grat" "population"
## [25] "bud_ratio" "grat_ratio" "bud_pc_ratio"
## [28] "dot" "subv" "subs"
## [31] "n_12_16" "num_part_12_16" "mean_part_12_16"
## [34] "momentum"
mod <- glm(factor(transfer) ~ UR_share_total, family = "binomial", data = grad)
tab_model(mod, show.se = TRUE, show.ci = FALSE)
| factor(transfer) | |||
|---|---|---|---|
| Predictors | Odds Ratios | std. Error | p |
| (Intercept) | 0.18 | 0.27 | 0.254 |
| UR share total | 5.80 | 12.07 | 0.398 |
| Observations | 75 | ||
| R2 Tjur | 0.009 | ||
plot(ggpredict(mod, terms=c("UR_share_total")))
НЗП: UR_share_total, bud_ratio (бюджетная самостоятельность по Росстату), bud_pc_ratio (бюджет на одного жителя), n_12_16 (среднее количество протестов по град.вопросам в 2012 - 2016 гг.), momentum (средняя интенсивность протестов)
mod1 <- glm(factor(transfer) ~ UR_share_total + bud_ratio + log(bud_pc_ratio) + n_12_16 + momentum, family = "binomial", data = grad)
tab_model(mod1, show.se = TRUE, show.ci = FALSE)
| factor(transfer) | |||
|---|---|---|---|
| Predictors | Odds Ratios | std. Error | p |
| (Intercept) | 0.04 | 0.11 | 0.293 |
| UR share total | 6.35 | 15.80 | 0.457 |
| bud ratio | 29.55 | 100.66 | 0.320 |
| bud pc ratio [log] | 0.67 | 0.35 | 0.451 |
| n 12 16 | 1.08 | 0.06 | 0.116 |
| momentum | 0.99 | 0.00 | 0.154 |
| Observations | 67 | ||
| R2 Tjur | 0.082 | ||
plot(ggpredict(mod1, terms=c("UR_share_total")))
plot(ggpredict(mod1, terms=c("bud_ratio")))
plot(ggpredict(mod1, terms=c("bud_pc_ratio")))
plot(ggpredict(mod1, terms=c("n_12_16")))
plot(ggpredict(mod1, terms=c("momentum")))
НЗП: UR_sum (доля мест, полученных ЕР в городском совете)
mod2 <- glm(factor(transfer) ~ UR_sum, family = "binomial", data = grad)
tab_model(mod2, show.se = TRUE, show.ci = FALSE)
| factor(transfer) | |||
|---|---|---|---|
| Predictors | Odds Ratios | std. Error | p |
| (Intercept) | 0.34 | 0.49 | 0.455 |
| UR sum | 1.01 | 0.02 | 0.661 |
| Observations | 77 | ||
| R2 Tjur | 0.002 | ||
plot(ggpredict(mod2, terms=c("UR_sum")))
НЗП: UR_sum, bud_ratio (бюджетная самостоятельность по Росстату), bud_pc_ratio (бюджет на одного жителя), n_12_16 (среднее количество протестов по град.вопросам в 2012 - 2016 гг.), momentum (средняя интенсивность протестов)
mod3 <- glm(factor(transfer) ~ UR_sum + bud_ratio + log(bud_pc_ratio) + n_12_16 + momentum, family = "binomial", data = grad)
tab_model(mod3, show.se = TRUE, show.ci = FALSE)
| factor(transfer) | |||
|---|---|---|---|
| Predictors | Odds Ratios | std. Error | p |
| (Intercept) | 0.10 | 0.34 | 0.486 |
| UR sum | 1.02 | 0.02 | 0.500 |
| bud ratio | 13.46 | 43.07 | 0.416 |
| bud pc ratio [log] | 0.63 | 0.33 | 0.373 |
| n 12 16 | 1.07 | 0.05 | 0.165 |
| momentum | 0.99 | 0.00 | 0.160 |
| Observations | 69 | ||
| R2 Tjur | 0.063 | ||
plot(ggpredict(mod3, terms=c("UR_sum")))
plot(ggpredict(mod3, terms=c("bud_ratio")))
plot(ggpredict(mod3, terms=c("bud_pc_ratio")))
plot(ggpredict(mod3, terms=c("n_12_16")))
plot(ggpredict(mod3, terms=c("momentum")))
НЗП: UR_share_total, grat_share (доля всех трансфертов с других уровней в бюджете муниципалитета) и bud_pc_ratio
grat_share значим, но в странную сторону: чем выше зависимость города от трансфертов, тем ниже вероятность изъятия полномочий
grad <- grad %>%
mutate(grat_share = grat / budget_all)
mod4 <- glm(factor(transfer) ~ UR_share_total + grat_share + log(bud_pc_ratio), family = "binomial", data = grad)
tab_model(mod4, show.se = TRUE, show.ci = FALSE)
| factor(transfer) | |||
|---|---|---|---|
| Predictors | Odds Ratios | std. Error | p |
| (Intercept) | 3.24 | 7.17 | 0.596 |
| UR share total | 2.86 | 7.03 | 0.669 |
| grat share | 0.00 | 0.00 | 0.021 |
| bud pc ratio [log] | 1.69 | 1.00 | 0.376 |
| Observations | 70 | ||
| R2 Tjur | 0.099 | ||
# Альтернативная визуализация предсказанных вероятностей https://cran.r-project.org/web/packages/jtools/vignettes/effect_plot.html
# .libPaths()
# install.packages("jtools", lib = "C:/Program Files/R/R-4.2.0/library")
library(jtools)
effect_plot(mod4, pred = grat_share, interval = TRUE, plot.points = TRUE)
Значимость grat_share (больше не!) пропадает при добавлении среднего числа протестов и моментума
mod5 <- glm(factor(transfer) ~ UR_share_total + grat_share + log(bud_pc_ratio) + n_12_16 + momentum, family = "binomial", data = grad)
tab_model(mod5, show.se = TRUE, show.ci = FALSE)
| factor(transfer) | |||
|---|---|---|---|
| Predictors | Odds Ratios | std. Error | p |
| (Intercept) | 3.75 | 9.68 | 0.609 |
| UR share total | 2.98 | 7.61 | 0.668 |
| grat share | 0.00 | 0.00 | 0.040 |
| bud pc ratio [log] | 1.53 | 0.95 | 0.492 |
| n 12 16 | 1.05 | 0.05 | 0.301 |
| momentum | 1.00 | 0.00 | 0.193 |
| Observations | 69 | ||
| R2 Tjur | 0.118 | ||
заменила долю всех трансфертов в бюджете МО на долю собственных доходов - связь положительная, но незначимая (причем без остальных ковариатов тоже)
grad <- grad %>%
mutate(ind_share = ind / budget_all)
mod6 <- glm(factor(transfer) ~ UR_share_total + ind_share + log(bud_pc_ratio) + n_12_16 + momentum, family = "binomial", data = grad)
tab_model(mod6, show.se = TRUE, show.ci = FALSE)
| factor(transfer) | |||
|---|---|---|---|
| Predictors | Odds Ratios | std. Error | p |
| (Intercept) | 0.06 | 0.18 | 0.359 |
| UR share total | 6.16 | 15.18 | 0.461 |
| ind share | 13.02 | 42.19 | 0.428 |
| bud pc ratio [log] | 0.70 | 0.36 | 0.495 |
| n 12 16 | 1.08 | 0.06 | 0.111 |
| momentum | 0.99 | 0.00 | 0.153 |
| Observations | 67 | ||
| R2 Tjur | 0.077 | ||
effect_plot(mod6, pred = ind_share, interval = TRUE, plot.points = TRUE)