paquetes <- c(
"tidyverse",
"psych",
"corrplot",
"broom",
"stargazer",
"car",
"lmtest",
"sandwich",
"knitr",
"kableExtra"
)
instalar <- paquetes[!(paquetes %in% installed.packages()[, "Package"])]
if(length(instalar) > 0) install.packages(instalar)
lapply(paquetes, library, character.only = TRUE)
## [[1]]
## [1] "lubridate" "forcats" "stringr" "dplyr" "purrr" "readr"
## [7] "tidyr" "tibble" "ggplot2" "tidyverse" "stats" "graphics"
## [13] "grDevices" "utils" "datasets" "methods" "base"
##
## [[2]]
## [1] "psych" "lubridate" "forcats" "stringr" "dplyr" "purrr"
## [7] "readr" "tidyr" "tibble" "ggplot2" "tidyverse" "stats"
## [13] "graphics" "grDevices" "utils" "datasets" "methods" "base"
##
## [[3]]
## [1] "corrplot" "psych" "lubridate" "forcats" "stringr" "dplyr"
## [7] "purrr" "readr" "tidyr" "tibble" "ggplot2" "tidyverse"
## [13] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
## [19] "base"
##
## [[4]]
## [1] "broom" "corrplot" "psych" "lubridate" "forcats" "stringr"
## [7] "dplyr" "purrr" "readr" "tidyr" "tibble" "ggplot2"
## [13] "tidyverse" "stats" "graphics" "grDevices" "utils" "datasets"
## [19] "methods" "base"
##
## [[5]]
## [1] "stargazer" "broom" "corrplot" "psych" "lubridate" "forcats"
## [7] "stringr" "dplyr" "purrr" "readr" "tidyr" "tibble"
## [13] "ggplot2" "tidyverse" "stats" "graphics" "grDevices" "utils"
## [19] "datasets" "methods" "base"
##
## [[6]]
## [1] "car" "carData" "stargazer" "broom" "corrplot" "psych"
## [7] "lubridate" "forcats" "stringr" "dplyr" "purrr" "readr"
## [13] "tidyr" "tibble" "ggplot2" "tidyverse" "stats" "graphics"
## [19] "grDevices" "utils" "datasets" "methods" "base"
##
## [[7]]
## [1] "lmtest" "zoo" "car" "carData" "stargazer" "broom"
## [7] "corrplot" "psych" "lubridate" "forcats" "stringr" "dplyr"
## [13] "purrr" "readr" "tidyr" "tibble" "ggplot2" "tidyverse"
## [19] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
## [25] "base"
##
## [[8]]
## [1] "sandwich" "lmtest" "zoo" "car" "carData" "stargazer"
## [7] "broom" "corrplot" "psych" "lubridate" "forcats" "stringr"
## [13] "dplyr" "purrr" "readr" "tidyr" "tibble" "ggplot2"
## [19] "tidyverse" "stats" "graphics" "grDevices" "utils" "datasets"
## [25] "methods" "base"
##
## [[9]]
## [1] "knitr" "sandwich" "lmtest" "zoo" "car" "carData"
## [7] "stargazer" "broom" "corrplot" "psych" "lubridate" "forcats"
## [13] "stringr" "dplyr" "purrr" "readr" "tidyr" "tibble"
## [19] "ggplot2" "tidyverse" "stats" "graphics" "grDevices" "utils"
## [25] "datasets" "methods" "base"
##
## [[10]]
## [1] "kableExtra" "knitr" "sandwich" "lmtest" "zoo"
## [6] "car" "carData" "stargazer" "broom" "corrplot"
## [11] "psych" "lubridate" "forcats" "stringr" "dplyr"
## [16] "purrr" "readr" "tidyr" "tibble" "ggplot2"
## [21] "tidyverse" "stats" "graphics" "grDevices" "utils"
## [26] "datasets" "methods" "base"
¿Cómo afecta la desigualdad económica a la estabilidad política de los países de América Latina?
La desigualdad económica puede afectar la estabilidad política porque influye en la distribución de oportunidades, el descontento social, la confianza en las instituciones y la posibilidad de conflicto político. Desde esta perspectiva, países con mayores niveles de desigualdad podrían presentar menor estabilidad política. Sin embargo, para este proyecto se evalúa la hipótesis planteada por el grupo: una posible relación positiva entre desigualdad económica y estabilidad política.
datos <- read_csv("base_limpia_2018.csv")
head(datos)
## # A tibble: 6 × 9
## pais codigo anio estabilidad_politica gini estado_derecho corrupcion
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Argentina ARG 2018 68.0 41.7 0.656 40
## 2 Brazil BRA 2018 54.9 53.9 0.708 35
## 3 Colombia COL 2018 54.5 50.4 0.757 36
## 4 Costa Rica CRI 2018 76.7 48 0.94 56
## 5 Ecuador ECU 2018 64.7 45.4 0.5 34
## 6 El Salvador SLV 2018 58.7 38.6 0.387 35
## # ℹ 2 more variables: pib_per_capita <dbl>, democracia <dbl>
str(datos)
## spc_tbl_ [13 × 9] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ pais : chr [1:13] "Argentina" "Brazil" "Colombia" "Costa Rica" ...
## $ codigo : chr [1:13] "ARG" "BRA" "COL" "CRI" ...
## $ anio : num [1:13] 2018 2018 2018 2018 2018 ...
## $ estabilidad_politica: num [1:13] 68 54.9 54.5 76.7 64.7 ...
## $ gini : num [1:13] 41.7 53.9 50.4 48 45.4 38.6 48.9 35.3 46 49.2 ...
## $ estado_derecho : num [1:13] 0.656 0.708 0.757 0.94 0.5 0.387 0.298 0.874 0.485 0.607 ...
## $ corrupcion : num [1:13] 40 35 36 56 34 35 29 44 28 37 ...
## $ pib_per_capita : num [1:13] 24410 15464 15239 21498 12187 ...
## $ democracia : num [1:13] 84 75 66 91 63 67 46 78 63 84 ...
## - attr(*, "spec")=
## .. cols(
## .. pais = col_character(),
## .. codigo = col_character(),
## .. anio = col_double(),
## .. estabilidad_politica = col_double(),
## .. gini = col_double(),
## .. estado_derecho = col_double(),
## .. corrupcion = col_double(),
## .. pib_per_capita = col_double(),
## .. democracia = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
datos_modelo <- datos %>%
select(
pais,
codigo,
anio,
estabilidad_politica,
gini,
estado_derecho,
corrupcion,
pib_per_capita,
democracia
) %>%
drop_na()
nrow(datos_modelo)
## [1] 13
estabilidad_politicaginiestado_derechocorrupcionpib_per_capitademocraciadescriptivos <- psych::describe(datos_modelo %>%
select(estabilidad_politica, gini, estado_derecho, corrupcion, pib_per_capita, democracia))
kable(
round(descriptivos[, c("n", "mean", "sd", "min", "max")], 2),
caption = "Estadísticas descriptivas de las variables del modelo"
) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| n | mean | sd | min | max | |
|---|---|---|---|---|---|
| estabilidad_politica | 13 | 64.07 | 10.28 | 50.05 | 84.91 |
| gini | 13 | 45.04 | 5.27 | 35.30 | 53.90 |
| estado_derecho | 13 | 0.64 | 0.22 | 0.30 | 0.97 |
| corrupcion | 13 | 39.08 | 11.84 | 28.00 | 70.00 |
| pib_per_capita | 13 | 16875.17 | 7445.38 | 5633.38 | 32463.54 |
| democracia | 13 | 73.31 | 13.83 | 46.00 | 98.00 |
grafica_principal <- ggplot(datos_modelo, aes(x = gini, y = estabilidad_politica)) +
geom_point(size = 3, color = "darkblue") +
geom_smooth(method = "lm", se = TRUE, color = "red") +
geom_text(aes(label = codigo), vjust = -0.8, size = 3) +
labs(
title = "Desigualdad económica y estabilidad política",
subtitle = "Países de América Latina, 2018",
x = "Coeficiente de Gini",
y = "Estabilidad política"
) +
theme_minimal(base_size = 14)
grafica_principal
datos_modelo %>%
select(estabilidad_politica, gini, estado_derecho, corrupcion, pib_per_capita, democracia) %>%
pivot_longer(cols = everything(), names_to = "variable", values_to = "valor") %>%
ggplot(aes(x = valor)) +
geom_histogram(fill = "steelblue", color = "white", bins = 8) +
facet_wrap(~ variable, scales = "free") +
labs(
title = "Distribución de las variables utilizadas",
x = "Valor",
y = "Frecuencia"
) +
theme_minimal(base_size = 13)
matriz_cor <- cor(
datos_modelo %>%
select(estabilidad_politica, gini, estado_derecho, corrupcion, pib_per_capita, democracia),
use = "complete.obs"
)
corrplot(
matriz_cor,
method = "color",
type = "upper",
addCoef.col = "black",
tl.col = "black",
tl.srt = 45,
number.cex = 0.8
)
modelo1 <- lm(estabilidad_politica ~ gini, data = datos_modelo)
summary(modelo1)
##
## Call:
## lm(formula = estabilidad_politica ~ gini, data = datos_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.272 -5.413 -2.369 1.991 16.728
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 98.7520 24.4946 4.032 0.00198 **
## gini -0.7701 0.5405 -1.425 0.18193
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.865 on 11 degrees of freedom
## Multiple R-squared: 0.1558, Adjusted R-squared: 0.07908
## F-statistic: 2.03 on 1 and 11 DF, p-value: 0.1819
modelo2 <- lm(estabilidad_politica ~ gini + estado_derecho + corrupcion, data = datos_modelo)
summary(modelo2)
##
## Call:
## lm(formula = estabilidad_politica ~ gini + estado_derecho + corrupcion,
## data = datos_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.0653 -4.4406 -0.6988 2.4474 10.4756
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 47.7315 19.4868 2.449 0.0368 *
## gini -0.2380 0.3657 -0.651 0.5315
## estado_derecho -2.0308 13.8978 -0.146 0.8870
## corrupcion 0.7257 0.2647 2.742 0.0228 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.221 on 9 degrees of freedom
## Multiple R-squared: 0.7253, Adjusted R-squared: 0.6338
## F-statistic: 7.923 on 3 and 9 DF, p-value: 0.006791
modelo3 <- lm(
estabilidad_politica ~ gini + estado_derecho + corrupcion + pib_per_capita + democracia,
data = datos_modelo
)
summary(modelo3)
##
## Call:
## lm(formula = estabilidad_politica ~ gini + estado_derecho + corrupcion +
## pib_per_capita + democracia, data = datos_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.391 -2.368 0.547 2.135 6.549
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.115e+01 2.679e+01 1.163 0.283
## gini -2.277e-01 3.820e-01 -0.596 0.570
## estado_derecho -1.511e+01 1.566e+01 -0.965 0.367
## corrupcion 4.439e-01 2.845e-01 1.560 0.163
## pib_per_capita 2.038e-05 4.377e-04 0.047 0.964
## democracia 4.800e-01 4.146e-01 1.158 0.285
##
## Residual standard error: 5.524 on 7 degrees of freedom
## Multiple R-squared: 0.8316, Adjusted R-squared: 0.7112
## F-statistic: 6.911 on 5 and 7 DF, p-value: 0.01234
stargazer(
modelo1, modelo2, modelo3,
type = "html",
title = "Resultados de modelos OLS",
dep.var.labels = "Estabilidad política",
covariate.labels = c(
"Coeficiente de Gini",
"Estado de derecho",
"Control de corrupción",
"PIB per cápita",
"Democracia"
),
digits = 3,
star.cutoffs = c(0.1, 0.05, 0.01),
notes = "* p < 0.10; ** p < 0.05; *** p < 0.01"
)
| Dependent variable: | |||
| Estabilidad política | |||
| (1) | (2) | (3) | |
| Coeficiente de Gini | -0.770 | -0.238 | -0.228 |
| (0.540) | (0.366) | (0.382) | |
| Estado de derecho | -2.031 | -15.106 | |
| (13.898) | (15.659) | ||
| Control de corrupción | 0.726** | 0.444 | |
| (0.265) | (0.285) | ||
| PIB per cápita | 0.00002 | ||
| (0.0004) | |||
| Democracia | 0.480 | ||
| (0.415) | |||
| Constant | 98.752*** | 47.731** | 31.150 |
| (24.495) | (19.487) | (26.788) | |
| Observations | 13 | 13 | 13 |
| R2 | 0.156 | 0.725 | 0.832 |
| Adjusted R2 | 0.079 | 0.634 | 0.711 |
| Residual Std. Error | 9.865 (df = 11) | 6.221 (df = 9) | 5.524 (df = 7) |
| F Statistic | 2.030 (df = 1; 11) | 7.923*** (df = 3; 9) | 6.911** (df = 5; 7) |
| Note: | p<0.1; p<0.05; p<0.01 | ||
|
|||
grafica_coeficientes <- broom::tidy(modelo3, conf.int = TRUE) %>%
filter(term != "(Intercept)") %>%
ggplot(aes(x = estimate, y = reorder(term, estimate))) +
geom_point(size = 3, color = "darkred") +
geom_errorbarh(aes(xmin = conf.low, xmax = conf.high), height = 0.2) +
geom_vline(xintercept = 0, linetype = "dashed") +
labs(
title = "Coeficientes del modelo completo",
subtitle = "Intervalos de confianza al 95%",
x = "Coeficiente estimado",
y = "Variable"
) +
theme_minimal(base_size = 13)
grafica_coeficientes
car::vif(modelo3)
## gini estado_derecho corrupcion pib_per_capita democracia
## 1.593353 4.505541 4.465527 4.175902 12.936210
lmtest::bptest(modelo3)
##
## studentized Breusch-Pagan test
##
## data: modelo3
## BP = 6.0921, df = 5, p-value = 0.2974
lmtest::coeftest(modelo3, vcov = sandwich::vcovHC(modelo3, type = "HC1"))
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.1150e+01 3.0822e+01 1.0106 0.34584
## gini -2.2768e-01 3.9631e-01 -0.5745 0.58361
## estado_derecho -1.5106e+01 1.6137e+01 -0.9361 0.38040
## corrupcion 4.4395e-01 1.6785e-01 2.6450 0.03318 *
## pib_per_capita 2.0383e-05 5.6858e-04 0.0358 0.97240
## democracia 4.7997e-01 4.8458e-01 0.9905 0.35493
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## En el modelo completo, el coeficiente estimado del Gini es -0.228 con un valor p de 0.5699 . El R cuadrado del modelo es 0.832 , lo que indica que el modelo explica aproximadamente 83.2 % de la variación en la estabilidad política.
A partir de los modelos OLS, se evalúa si la desigualdad económica, medida por el coeficiente de Gini, se relaciona con la estabilidad política en América Latina. El Modelo 1 analiza la relación simple entre ambas variables. El Modelo 2 incorpora controles institucionales. El Modelo 3 agrega controles económicos y políticos.
Para aceptar o rechazar la hipótesis alternativa, se observa
principalmente el signo del coeficiente de gini y su valor
p:
Los resultados deben interpretarse con cautela porque la muestra incluye únicamente países latinoamericanos para el año 2018. Aun así, el análisis permite aplicar correctamente regresión OLS, estadísticas descriptivas y visualización de datos para responder la pregunta de investigación.
Pregunta de investigación, hipótesis y teoría.
Datos, variables, estadísticas descriptivas y gráficas.
Modelos OLS, hallazgos, conclusión y limitaciones.
dir.create("graficas", showWarnings = FALSE)
ggsave("graficas/gini_estabilidad_latam.png", grafica_principal, width = 9, height = 6, dpi = 300)
ggsave("graficas/coeficientes_modelo3.png", grafica_coeficientes, width = 9, height = 6, dpi = 300)