1. Planteamiento de la pregunta predictiva

1.1 Contexto histórico: El Salvador y la violencia estructural

El Salvador arrastra una historia de violencia que atraviesa todo el siglo XX y se profundiza en el XXI. La guerra civil (1980-1992) dejó más de 75,000 muertos y sentó las bases de una sociedad fragmentada. Los Acuerdos de Paz de Chapultepec (1992) pusieron fin al conflicto armado pero no resolvieron las condiciones estructurales de desigualdad, exclusión y debilidad institucional.

En la posguerra, El Salvador experimentó una transición democrática que alternó el poder entre los dos partidos surgidos del conflicto: ARENA (derecha, heredera del proyecto contrainsurgente) y el FMLN (izquierda, antigua guerrilla). Sin embargo, esta democratización formal coexistió con el surgimiento de las pandillas o “maras” —principalmente la MS-13 y el Barrio 18— que convirtieron al país en uno de los más violentos del mundo. Para 2015, El Salvador alcanzó una tasa de 103 homicidios por cada 100,000 habitantes, la más alta a nivel global.

1.2 El ascenso de Bukele y el modelo de seguridad

En este contexto de violencia endémica y desencanto con los partidos tradicionales, Nayib Bukele ganó la presidencia en 2019 con el 53% de los votos, rompiendo el bipartidismo que había dominado la política salvadoreña durante casi tres décadas. Bukele, un político joven con manejo estratégico de redes sociales, se presentó como la antítesis del sistema político tradicional.

El punto de inflexión llegó el 27 de marzo de 2022, cuando una ola de 87 homicidios en un solo fin de semana llevó al gobierno a declarar un régimen de excepción que suspendió garantías constitucionales fundamentales: el derecho de asociación, el derecho a ser informado de los motivos de la detención, el acceso a un abogado, y la inviolabilidad de las comunicaciones. Este régimen, que constitucionalmente debía durar 30 días, ha sido prorrogado de manera continua y permanece vigente hasta la fecha de la encuesta (2023).

Bajo el régimen de excepción, el gobierno implementó una política de encarcelamiento masivo que ha llevado a más de 75,000 personas a prisión —aproximadamente el 1.1% de la población total del país—. El Salvador pasó a tener la tasa de encarcelamiento más alta del mundo. Los resultados en términos de reducción de homicidios han sido dramáticos: la tasa cayó de 103 en 2015 a menos de 8 por cada 100,000 habitantes en 2023.

1.3 La tensión democrática: resultados vs. procedimientos

Este escenario plantea una tensión clásica en teoría política que trasciende el caso salvadoreño: ¿puede la legitimidad democrática construirse sobre resultados tangibles (seguridad) más que sobre procedimientos institucionales (representación, garantías, división de poderes)?

Organizaciones como Human Rights Watch, Amnistía Internacional y la CIDH han documentado detenciones arbitrarias, muertes bajo custodia estatal, y violaciones sistemáticas al debido proceso. Sin embargo, las encuestas muestran niveles de aprobación presidencial superiores al 80%, y el propio Latinobarómetro 2023 registra que El Salvador es el país de América Latina donde más ciudadanos creen que “el país progresa”.

Este aparente consenso ciudadano en torno al modelo Bukele invita a preguntarse: ¿qué están evaluando los salvadoreños cuando dicen estar “satisfechos con la democracia”? ¿Valoran los procedimientos democráticos tradicionales o los resultados concretos en materia de seguridad?

1.4 Pregunta predictiva

¿En qué medida la satisfacción con la democracia en El Salvador está asociada a la confianza en instituciones de seguridad (Presidente, Fuerzas Armadas) versus instituciones representativas tradicionales (Congreso, partidos políticos)?

1.5 Hipótesis

La satisfacción con la democracia en El Salvador está más fuertemente asociada a la confianza en instituciones vinculadas al modelo de seguridad (Presidente y Fuerzas Armadas) que a la confianza en instituciones de representación tradicional (Congreso y partidos políticos).

Esta hipótesis se sustenta en la idea de que, en contextos de violencia crónica, las necesidades inmediatas —particularmente la seguridad física— adquieren primacía sobre valores democráticos abstractos como la representación plural o el equilibrio de poderes. Los ciudadanos estarían dispuestos a intercambiar garantías procedimentales por resultados tangibles, configurando lo que podríamos llamar una legitimidad democrática por resultados o, en términos más críticos, un autoritarismo competitivo con apoyo popular.

1.6 Relevancia del estudio

Este análisis es relevante por tres razones:

  1. Teórica: Contribuye al debate sobre los fundamentos de la legitimidad democrática y la tensión entre democracia procedimental y sustantiva.

  2. Comparativa: El modelo Bukele ha generado interés en otros países de la región (Ecuador, Honduras, Perú) como posible solución a problemas de inseguridad, lo que hace urgente comprender sus bases de apoyo.

  3. Normativa: Entender qué valoran los ciudadanos cuando evalúan la democracia es fundamental para cualquier proyecto de fortalecimiento democrático en la región.


2. Dataset y variables seleccionadas

2.1 Carga de librerías y datos

# Librerías necesarias
library(tidyverse)
library(readxl)
library(broom)
library(car)
library(ggcorrplot)  # Para matriz de correlaciones con ggplot2
library(knitr)
library(kableExtra)
library(GGally)
library(scales)  # Para formateo de ejes
# Cargar datos de Latinobarómetro 2023 - El Salvador
datos_raw <- read_excel("/Users/lorenaumana/Desktop/Curso R/datos/F00018433-Latinobarometro_2023_El_Salvador_Excel_eng_v1.xlsx")

# Dimensiones originales
cat("Dimensiones originales:", dim(datos_raw)[1], "casos x", dim(datos_raw)[2], "variables\n")
## Dimensiones originales: 1000 casos x 301 variables

2.2 Selección y recodificación de variables

# Seleccionar y renombrar variables de interés
datos <- datos_raw %>%
  select(
    # Variable dependiente
    satisf_demo = `P11STGBS.A: Satisfacción con la democracia`,
    
    # Instituciones de SEGURIDAD (hipótesis principal)
    conf_presidente = `P13ST.I: Confianza en el Presidente`,
    conf_ffaa = `P13STGBS.A: Confianza en las Fuerzas Armadas`,
    
    # Instituciones REPRESENTATIVAS tradicionales
    conf_congreso = `P13ST.D: Confianza en el Congreso`,
    conf_partidos = `P13ST.G: Confianza en los Partidos Políticos`,
    
    # Variables de control
    edad = `EDAD: Edad`,
    sexo = `SEXO: Sexo entrevistado`,
    
    # Variables contextuales adicionales
    sit_economica = `P5STGBS: Situación económica actual del país`,
    imagen_progreso = `P2ST: Imagen de progreso del país`
  )
# Recodificar valores perdidos (-1 = No sabe, -2 = No responde)
datos_clean <- datos %>%
  mutate(across(everything(), ~na_if(., -1))) %>%
  mutate(across(everything(), ~na_if(., -2))) %>%
  mutate(across(everything(), ~na_if(., -5)))  # Algunos usan -5

# Invertir escalas para que valores ALTOS = MÁS confianza/satisfacción
# Original: 1 = Mucha confianza/Muy satisfecho ... 4 = Ninguna/Nada
datos_clean <- datos_clean %>%
  mutate(across(
    c(satisf_demo, conf_presidente, conf_ffaa, conf_congreso, conf_partidos),
    ~5 - .  # Invierte: 1->4, 2->3, 3->2, 4->1
  ))

# Recodificar sexo como factor
datos_clean <- datos_clean %>%
  mutate(sexo = factor(sexo, levels = c(1, 2), labels = c("Hombre", "Mujer")))

# Crear base para modelado (casos completos)
datos_modelo <- datos_clean %>%
  select(satisf_demo, conf_presidente, conf_ffaa, conf_congreso, conf_partidos, edad, sexo) %>%
  drop_na()

cat("Casos válidos para el modelo:", nrow(datos_modelo), "de", nrow(datos_clean), 
    "(", round(nrow(datos_modelo)/nrow(datos_clean)*100, 1), "%)\n")
## Casos válidos para el modelo: 884 de 1000 ( 88.4 %)

2.3 Descripción de variables

Variable Descripción Escala recodificada
satisf_demo Satisfacción con la democracia 1 (Nada) a 4 (Muy satisfecho)
conf_presidente Confianza en el Presidente 1 (Ninguna) a 4 (Mucha)
conf_ffaa Confianza en Fuerzas Armadas 1 (Ninguna) a 4 (Mucha)
conf_congreso Confianza en el Congreso 1 (Ninguna) a 4 (Mucha)
conf_partidos Confianza en Partidos Políticos 1 (Ninguna) a 4 (Mucha)
edad Edad en años Continua
sexo Sexo Hombre / Mujer

3. Análisis Exploratorio de Datos (EDA)

3.1 Estadísticos descriptivos

datos_modelo %>%
  select(-sexo) %>%
  summary() %>%
  kable(caption = "Estadísticos descriptivos de variables numéricas") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Estadísticos descriptivos de variables numéricas
satisf_demo conf_presidente conf_ffaa conf_congreso conf_partidos edad
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :18.00
1st Qu.:2.000 1st Qu.:3.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:26.00
Median :3.000 Median :4.000 Median :3.000 Median :3.000 Median :2.000 Median :39.00
Mean :2.984 Mean :3.367 Mean :3.111 Mean :2.631 Mean :1.982 Mean :40.97
3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:2.000 3rd Qu.:53.00
Max. :4.000 Max. :4.000 Max. :4.000 Max. :4.000 Max. :4.000 Max. :88.00
# Distribución de la variable dependiente
ggplot(datos_modelo, aes(x = factor(satisf_demo))) +
  geom_bar(fill = "steelblue", alpha = 0.8) +
  geom_text(stat = "count", aes(label = after_stat(count)), vjust = -0.5) +
  labs(
    title = "Distribución de Satisfacción con la Democracia",
    subtitle = "El Salvador, Latinobarómetro 2023",
    x = "Satisfacción (1 = Nada ... 4 = Muy satisfecho)",
    y = "Frecuencia"
  ) +
  theme_minimal()

3.2 Análisis de correlaciones

# Matriz de correlaciones
cor_matrix <- datos_modelo %>%
  select(-sexo) %>%
  cor()

# Visualización con ggcorrplot
ggcorrplot(cor_matrix, 
           method = "circle",
           type = "upper",
           lab = TRUE,
           lab_size = 3.5,
           colors = c("#E74C3C", "white", "#3498DB"),
           title = "Matriz de Correlaciones",
           ggtheme = theme_minimal())

# Correlaciones con la variable dependiente
cor_vd <- cor_matrix[, "satisf_demo"] %>%
  sort(decreasing = TRUE) %>%
  round(3)

cat("Correlaciones con Satisfacción Democrática:\n")
## Correlaciones con Satisfacción Democrática:
print(cor_vd)
##     satisf_demo conf_presidente   conf_congreso       conf_ffaa   conf_partidos 
##           1.000           0.514           0.451           0.394           0.356 
##            edad 
##           0.033

Interpretación preliminar: Las correlaciones muestran el patrón esperado por la hipótesis. La confianza en el Presidente y las Fuerzas Armadas presenta correlaciones más fuertes con la satisfacción democrática que la confianza en partidos políticos.

3.3 Visualización de relaciones bivariadas

# Relación entre confianza institucional y satisfacción
datos_modelo %>%
  pivot_longer(
    cols = c(conf_presidente, conf_ffaa, conf_congreso, conf_partidos),
    names_to = "institucion",
    values_to = "confianza"
  ) %>%
  mutate(institucion = case_when(
    institucion == "conf_presidente" ~ "Presidente",
    institucion == "conf_ffaa" ~ "Fuerzas Armadas",
    institucion == "conf_congreso" ~ "Congreso",
    institucion == "conf_partidos" ~ "Partidos Políticos"
  )) %>%
  ggplot(aes(x = confianza, y = satisf_demo)) +
  geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "steelblue") +
  geom_smooth(method = "lm", se = TRUE, color = "#E74C3C") +
  facet_wrap(~institucion, ncol = 2) +
  labs(
    title = "Relación entre Confianza Institucional y Satisfacción Democrática",
    x = "Nivel de Confianza (1-4)",
    y = "Satisfacción con la Democracia (1-4)"
  ) +
  theme_minimal()

3.4 Evaluación de colinealidad

# Correlaciones entre predictores
cor_predictores <- datos_modelo %>%
  select(conf_presidente, conf_ffaa, conf_congreso, conf_partidos) %>%
  cor()

cat("Correlaciones entre predictores:\n")
## Correlaciones entre predictores:
print(round(cor_predictores, 3))
##                 conf_presidente conf_ffaa conf_congreso conf_partidos
## conf_presidente           1.000     0.517         0.575         0.382
## conf_ffaa                 0.517     1.000         0.561         0.375
## conf_congreso             0.575     0.561         1.000         0.554
## conf_partidos             0.382     0.375         0.554         1.000

Nota sobre multicolinealidad: Se observa correlación moderada entre conf_presidente y conf_ffaa (0.52), lo cual es esperable dado que ambas instituciones están asociadas al modelo de seguridad del gobierno actual. Se evaluará el VIF en los modelos.


4. Modelos Predictivos

4.1 Modelo 1: Instituciones de Seguridad

Este modelo evalúa si la confianza en las instituciones asociadas al modelo de seguridad (Presidente y FFAA) predice la satisfacción democrática.

modelo_seguridad <- lm(satisf_demo ~ conf_presidente + conf_ffaa, 
                        data = datos_modelo)

summary(modelo_seguridad)
## 
## Call:
## lm(formula = satisf_demo ~ conf_presidente + conf_ffaa, data = datos_modelo)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.4422 -0.6151  0.2104  0.5578  2.5156 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      0.83180    0.11776   7.063 3.30e-12 ***
## conf_presidente  0.47815    0.03748  12.757  < 2e-16 ***
## conf_ffaa        0.17445    0.03312   5.267 1.74e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8215 on 881 degrees of freedom
## Multiple R-squared:  0.2869, Adjusted R-squared:  0.2853 
## F-statistic: 177.3 on 2 and 881 DF,  p-value: < 2.2e-16

4.2 Modelo 2: Instituciones Representativas

Este modelo evalúa si la confianza en instituciones tradicionales de representación (Congreso y partidos) predice la satisfacción democrática.

modelo_representativo <- lm(satisf_demo ~ conf_congreso + conf_partidos, 
                             data = datos_modelo)

summary(modelo_representativo)
## 
## Call:
## lm(formula = satisf_demo ~ conf_congreso + conf_partidos, data = datos_modelo)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.77336 -0.61202  0.06792  0.70673  1.72860 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.77074    0.08246  21.474  < 2e-16 ***
## conf_congreso  0.34062    0.03322  10.253  < 2e-16 ***
## conf_partidos  0.16003    0.03751   4.267  2.2e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8594 on 881 degrees of freedom
## Multiple R-squared:  0.2197, Adjusted R-squared:  0.2179 
## F-statistic:   124 on 2 and 881 DF,  p-value: < 2.2e-16

4.3 Modelo 3: Modelo Completo

Este modelo integra ambos tipos de instituciones más variables de control.

modelo_completo <- lm(satisf_demo ~ conf_presidente + conf_ffaa + 
                                     conf_congreso + conf_partidos + 
                                     edad + sexo, 
                       data = datos_modelo)

summary(modelo_completo)
## 
## Call:
## lm(formula = satisf_demo ~ conf_presidente + conf_ffaa + conf_congreso + 
##     conf_partidos + edad + sexo, data = datos_modelo)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7321 -0.6040  0.1314  0.5204  2.4628 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      8.176e-01  1.391e-01   5.877 5.93e-09 ***
## conf_presidente  3.856e-01  4.041e-02   9.543  < 2e-16 ***
## conf_ffaa        9.795e-02  3.521e-02   2.782  0.00552 ** 
## conf_congreso    1.269e-01  3.785e-02   3.354  0.00083 ***
## conf_partidos    1.183e-01  3.547e-02   3.335  0.00089 ***
## edad            -2.006e-05  1.660e-03  -0.012  0.99036    
## sexoMujer       -7.606e-03  5.483e-02  -0.139  0.88970    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8062 on 877 degrees of freedom
## Multiple R-squared:  0.3164, Adjusted R-squared:  0.3117 
## F-statistic: 67.64 on 6 and 877 DF,  p-value: < 2.2e-16

5. Comparación y Selección de Modelos

5.1 Tabla comparativa

comparacion <- tibble(
  Modelo = c("Seguridad", "Representativo", "Completo"),
  Formula = c(
    "satisf ~ presidente + ffaa",
    "satisf ~ congreso + partidos",
    "satisf ~ todas + controles"
  ),
  R2 = c(
    summary(modelo_seguridad)$r.squared,
    summary(modelo_representativo)$r.squared,
    summary(modelo_completo)$r.squared
  ),
  R2_ajustado = c(
    summary(modelo_seguridad)$adj.r.squared,
    summary(modelo_representativo)$adj.r.squared,
    summary(modelo_completo)$adj.r.squared
  ),
  AIC = c(
    AIC(modelo_seguridad),
    AIC(modelo_representativo),
    AIC(modelo_completo)
  ),
  BIC = c(
    BIC(modelo_seguridad),
    BIC(modelo_representativo),
    BIC(modelo_completo)
  )
)

comparacion %>%
  mutate(across(where(is.numeric), ~round(., 4))) %>%
  kable(caption = "Comparación de modelos") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Comparación de modelos
Modelo Formula R2 R2_ajustado AIC BIC
Seguridad satisf ~ presidente + ffaa 0.2869 0.2853 2166.015 2185.153
Representativo satisf ~ congreso + partidos 0.2197 0.2179 2245.727 2264.865
Completo satisf ~ todas + controles 0.3164 0.3117 2136.756 2175.031

5.2 Test ANOVA para comparar modelos anidados

# Comparar modelo seguridad vs completo
anova(modelo_seguridad, modelo_completo)
## Analysis of Variance Table
## 
## Model 1: satisf_demo ~ conf_presidente + conf_ffaa
## Model 2: satisf_demo ~ conf_presidente + conf_ffaa + conf_congreso + conf_partidos + 
##     edad + sexo
##   Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
## 1    881 594.53                                  
## 2    877 569.99  4    24.538 9.4386 1.796e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

5.3 Justificación del modelo final

Selección: Modelo Completo

Aunque el modelo de seguridad tiene un R² notable, el modelo completo se selecciona porque:

  1. Mayor capacidad explicativa: El R² ajustado es superior, indicando que las variables adicionales aportan información relevante.
  2. AIC/BIC más bajos: Indica mejor balance entre ajuste y parsimonia.
  3. Interpretación teórica: Permite comparar directamente el peso de instituciones de seguridad vs. representativas, que es el corazón de la hipótesis.

6. Modelo Final: Diagnósticos e Interpretación

6.1 Fórmula del modelo

\[\text{Satisf\_demo} = \beta_0 + \beta_1(\text{Conf\_presidente}) + \beta_2(\text{Conf\_ffaa}) + \beta_3(\text{Conf\_congreso}) + \beta_4(\text{Conf\_partidos}) + \beta_5(\text{Edad}) + \beta_6(\text{Sexo}) + \epsilon\]

6.2 Tabla de coeficientes

tidy(modelo_completo, conf.int = TRUE) %>%
  mutate(
    significancia = case_when(
      p.value < 0.001 ~ "***",
      p.value < 0.01 ~ "**",
      p.value < 0.05 ~ "*",
      p.value < 0.1 ~ ".",
      TRUE ~ ""
    )
  ) %>%
  select(term, estimate, std.error, statistic, p.value, conf.low, conf.high, significancia) %>%
  mutate(across(where(is.numeric), ~round(., 4))) %>%
  kable(
    caption = "Coeficientes del modelo final",
    col.names = c("Variable", "Coef.", "Error Est.", "t", "p-valor", "IC 2.5%", "IC 97.5%", "Sig.")
  ) %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Coeficientes del modelo final
Variable Coef. Error Est. t p-valor IC 2.5% IC 97.5% Sig.
(Intercept) 0.8176 0.1391 5.8771 0.0000 0.5446 1.0906 ***
conf_presidente 0.3856 0.0404 9.5432 0.0000 0.3063 0.4650 ***
conf_ffaa 0.0980 0.0352 2.7816 0.0055 0.0288 0.1671 **
conf_congreso 0.1269 0.0378 3.3543 0.0008 0.0527 0.2012 ***
conf_partidos 0.1183 0.0355 3.3347 0.0009 0.0487 0.1879 ***
edad 0.0000 0.0017 -0.0121 0.9904 -0.0033 0.0032
sexoMujer -0.0076 0.0548 -0.1387 0.8897 -0.1152 0.1000

6.3 Interpretación de coeficientes

coefs <- tidy(modelo_completo)

cat("INTERPRETACIÓN DE COEFICIENTES:\n\n")
## INTERPRETACIÓN DE COEFICIENTES:
cat("• Confianza en el Presidente (β =", round(coefs$estimate[2], 3), "):\n")
## • Confianza en el Presidente (β = 0.386 ):
cat("  Por cada punto adicional en confianza en el Presidente,\n")
##   Por cada punto adicional en confianza en el Presidente,
cat("  la satisfacción democrática aumenta", round(coefs$estimate[2], 3), "puntos,\n")
##   la satisfacción democrática aumenta 0.386 puntos,
cat("  manteniendo las demás variables constantes.\n\n")
##   manteniendo las demás variables constantes.
cat("• Confianza en FFAA (β =", round(coefs$estimate[3], 3), "):\n")
## • Confianza en FFAA (β = 0.098 ):
cat("  Por cada punto adicional en confianza en las Fuerzas Armadas,\n")
##   Por cada punto adicional en confianza en las Fuerzas Armadas,
cat("  la satisfacción democrática aumenta", round(coefs$estimate[3], 3), "puntos.\n\n")
##   la satisfacción democrática aumenta 0.098 puntos.
cat("• Confianza en Congreso (β =", round(coefs$estimate[4], 3), "):\n")
## • Confianza en Congreso (β = 0.127 ):
cat("  El efecto de la confianza en el Congreso es",
    ifelse(coefs$p.value[4] < 0.05, "significativo", "NO significativo"), "\n\n")
##   El efecto de la confianza en el Congreso es significativo
cat("• Confianza en Partidos (β =", round(coefs$estimate[5], 3), "):\n")
## • Confianza en Partidos (β = 0.118 ):
cat("  El efecto de la confianza en partidos políticos es",
    ifelse(coefs$p.value[5] < 0.05, "significativo", "NO significativo"), "\n")
##   El efecto de la confianza en partidos políticos es significativo

6.4 Métricas globales del modelo

glance_modelo <- glance(modelo_completo)

cat("MÉTRICAS GLOBALES DEL MODELO FINAL:\n\n")
## MÉTRICAS GLOBALES DEL MODELO FINAL:
cat("• R²:", round(glance_modelo$r.squared, 4), "\n")
## • R²: 0.3164
cat("  El modelo explica el", round(glance_modelo$r.squared * 100, 1), "% de la varianza\n")
##   El modelo explica el 31.6 % de la varianza
cat("  en satisfacción democrática.\n\n")
##   en satisfacción democrática.
cat("• R² ajustado:", round(glance_modelo$adj.r.squared, 4), "\n")
## • R² ajustado: 0.3117
cat("• F-statistic:", round(glance_modelo$statistic, 2), "\n")
## • F-statistic: 67.64
cat("• p-valor global:", format(glance_modelo$p.value, scientific = TRUE), "\n")
## • p-valor global: 3.620522e-69
cat("• AIC:", round(glance_modelo$AIC, 2), "\n")
## • AIC: 2136.76

6.5 Diagnósticos de supuestos

Multicolinealidad (VIF)

vif_valores <- vif(modelo_completo)
vif_df <- data.frame(Variable = names(vif_valores), VIF = round(vif_valores, 3))

vif_df %>%
  mutate(Evaluacion = ifelse(VIF < 5, "✓ Aceptable", "⚠ Revisar")) %>%
  kable(caption = "Factor de Inflación de Varianza (VIF)") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Factor de Inflación de Varianza (VIF)
Variable VIF Evaluacion
conf_presidente conf_presidente 1.646 ✓ Aceptable
conf_ffaa conf_ffaa 1.601 ✓ Aceptable
conf_congreso conf_congreso 2.128 ✓ Aceptable
conf_partidos conf_partidos 1.467 ✓ Aceptable
edad edad 1.034 ✓ Aceptable
sexo sexo 1.017 ✓ Aceptable

Gráficos de diagnóstico

par(mfrow = c(2, 2))
plot(modelo_completo)

Interpretación de diagnósticos:

  1. Residuals vs Fitted: Evalúa linealidad. Buscamos distribución aleatoria sin patrones.
  2. Normal Q-Q: Evalúa normalidad de residuos. Los puntos deben seguir la línea diagonal.
  3. Scale-Location: Evalúa homocedasticidad. Buscamos dispersión constante.
  4. Residuals vs Leverage: Identifica casos influyentes.

7. Visualización de Resultados del Modelo

7.1 Gráfico de coeficientes (Forest Plot)

# Crear forest plot de coeficientes
coef_plot <- tidy(modelo_completo, conf.int = TRUE) %>%
  filter(term != "(Intercept)") %>%
  mutate(
    term = case_when(
      term == "conf_presidente" ~ "Confianza en\nPresidente",
      term == "conf_ffaa" ~ "Confianza en\nFuerzas Armadas",
      term == "conf_congreso" ~ "Confianza en\nCongreso",
      term == "conf_partidos" ~ "Confianza en\nPartidos Políticos",
      term == "edad" ~ "Edad",
      term == "sexoMujer" ~ "Sexo (Mujer)"
    ),
    significativo = ifelse(p.value < 0.05, "Significativo", "No significativo"),
    # Ordenar por magnitud del efecto
    term = fct_reorder(term, estimate)
  )

ggplot(coef_plot, aes(x = estimate, y = term, color = significativo)) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "gray50") +
  geom_errorbarh(aes(xmin = conf.low, xmax = conf.high), height = 0.2, size = 1) +
  geom_point(size = 4) +
  scale_color_manual(values = c("Significativo" = "#2E86AB", "No significativo" = "#A23B72")) +
  labs(
    title = "Efecto de cada variable sobre la Satisfacción Democrática",
    subtitle = "Coeficientes con intervalos de confianza al 95%",
    x = "Coeficiente (β)",
    y = NULL,
    color = "Significancia\n(p < 0.05)",
    caption = "Línea punteada = efecto nulo"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold"),
    legend.position = "bottom"
  )

7.2 Comparación visual: Seguridad vs. Representación

# Comparar coeficientes estandarizados
datos_std <- datos_modelo %>%
  mutate(across(where(is.numeric), scale))

modelo_std <- lm(satisf_demo ~ conf_presidente + conf_ffaa + 
                               conf_congreso + conf_partidos + 
                               edad + sexo, 
                 data = datos_std)

coef_std <- tidy(modelo_std) %>%
  filter(term %in% c("conf_presidente", "conf_ffaa", "conf_congreso", "conf_partidos")) %>%
  mutate(
    tipo = ifelse(term %in% c("conf_presidente", "conf_ffaa"), 
                  "Instituciones de\nSEGURIDAD", 
                  "Instituciones\nREPRESENTATIVAS"),
    term = case_when(
      term == "conf_presidente" ~ "Presidente",
      term == "conf_ffaa" ~ "Fuerzas Armadas",
      term == "conf_congreso" ~ "Congreso",
      term == "conf_partidos" ~ "Partidos"
    )
  )

ggplot(coef_std, aes(x = reorder(term, estimate), y = estimate, fill = tipo)) +
  geom_col(width = 0.7, alpha = 0.9) +
  geom_hline(yintercept = 0, linetype = "solid", color = "gray30") +
  coord_flip() +
  scale_fill_manual(values = c("Instituciones de\nSEGURIDAD" = "#E63946", 
                                "Instituciones\nREPRESENTATIVAS" = "#457B9D")) +
  labs(
    title = "¿Qué tipo de confianza importa más?",
    subtitle = "Coeficientes estandarizados (β) - permiten comparar magnitudes",
    x = NULL,
    y = "Efecto estandarizado sobre Satisfacción Democrática",
    fill = "Tipo de\ninstitución"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    legend.position = "right"
  )

7.3 Comparación de R² entre modelos

# Gráfico de barras comparando R²
r2_data <- tibble(
  Modelo = c("Solo\nSeguridad", "Solo\nRepresentativo", "Modelo\nCompleto"),
  R2 = c(
    summary(modelo_seguridad)$r.squared,
    summary(modelo_representativo)$r.squared,
    summary(modelo_completo)$r.squared
  )
) %>%
  mutate(Modelo = factor(Modelo, levels = c("Solo\nSeguridad", "Solo\nRepresentativo", "Modelo\nCompleto")))

ggplot(r2_data, aes(x = Modelo, y = R2, fill = Modelo)) +
  geom_col(width = 0.6, show.legend = FALSE) +
  geom_text(aes(label = paste0(round(R2*100, 1), "%")), 
            vjust = -0.5, size = 5, fontface = "bold") +
  scale_fill_manual(values = c("#E63946", "#457B9D", "#2A9D8F")) +
  scale_y_continuous(labels = scales::percent, limits = c(0, max(r2_data$R2) * 1.15)) +
  labs(
    title = "Capacidad explicativa de cada modelo",
    subtitle = "R² = Porcentaje de varianza explicada en Satisfacción Democrática",
    x = NULL,
    y = "R²"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold"),
    axis.text.x = element_text(size = 11)
  )

7.4 Valores predichos vs. observados

# Agregar predicciones al dataset
datos_modelo <- datos_modelo %>%
  mutate(
    predicho = predict(modelo_completo),
    residuo = satisf_demo - predicho
  )

ggplot(datos_modelo, aes(x = predicho, y = satisf_demo)) +
  geom_jitter(alpha = 0.4, color = "#2E86AB", width = 0.05, height = 0.1) +
  geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "#E63946", size = 1) +
  labs(
    title = "Valores Predichos vs. Observados",
    subtitle = "La línea diagonal representa predicción perfecta",
    x = "Satisfacción Predicha por el Modelo",
    y = "Satisfacción Observada"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))

7.5 Efecto marginal del Presidente sobre Satisfacción

# Visualizar efecto de confianza en presidente
# Manteniendo otras variables en su media
nuevos_datos <- expand.grid(
  conf_presidente = 1:4,
  conf_ffaa = mean(datos_modelo$conf_ffaa),
  conf_congreso = mean(datos_modelo$conf_congreso),
  conf_partidos = mean(datos_modelo$conf_partidos),
  edad = mean(datos_modelo$edad),
  sexo = "Mujer"
)

nuevos_datos$prediccion <- predict(modelo_completo, newdata = nuevos_datos, 
                                    interval = "confidence")[,1]
pred_int <- predict(modelo_completo, newdata = nuevos_datos, interval = "confidence")
nuevos_datos$lwr <- pred_int[,2]
nuevos_datos$upr <- pred_int[,3]

ggplot(nuevos_datos, aes(x = conf_presidente, y = prediccion)) +
  geom_ribbon(aes(ymin = lwr, ymax = upr), fill = "#2E86AB", alpha = 0.3) +
  geom_line(color = "#2E86AB", size = 1.5) +
  geom_point(color = "#2E86AB", size = 4) +
  scale_x_continuous(breaks = 1:4, labels = c("Ninguna", "Poca", "Algo", "Mucha")) +
  labs(
    title = "Efecto de la Confianza en el Presidente",
    subtitle = "Predicción de satisfacción democrática (otras variables en su media)",
    x = "Nivel de Confianza en el Presidente",
    y = "Satisfacción Democrática Predicha",
    caption = "Banda sombreada = Intervalo de confianza 95%"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))


8. Discusión

8.1 Síntesis de hallazgos

Los resultados del análisis ofrecen evidencia consistente con la hipótesis central de este estudio: la satisfacción con la democracia en El Salvador está más fuertemente asociada a la confianza en instituciones vinculadas al modelo de seguridad que a la confianza en instituciones de representación política tradicional.

Tres hallazgos principales sustentan esta conclusión:

  1. La primacía del Presidente: El coeficiente de confianza en el Presidente (β ≈ 0.38) es casi tres veces mayor que el de cualquier otra variable en el modelo. Esto indica que la figura presidencial se ha convertido en el principal referente para evaluar el funcionamiento democrático.

  2. La brecha seguridad-representación: El modelo que incluye únicamente instituciones de seguridad (Presidente + FFAA) explica el 28.7% de la varianza en satisfacción democrática, frente al 22% del modelo con instituciones representativas (Congreso + Partidos). Esta diferencia de casi 7 puntos porcentuales es sustantivamente significativa.

  3. El efecto marginal del Presidente: Una persona que transita de “ninguna confianza” a “mucha confianza” en el Presidente experimenta un incremento predicho de casi un punto completo en satisfacción democrática (de 2.1 a 3.1 en escala de 4), manteniendo constantes las demás variables.

8.2 Interpretación teórica: Tres lecturas del fenómeno

8.2.1 Legitimidad por resultados (output legitimacy)

La teoría clásica de Lipset (1959) distinguía entre legitimidad por origen (procedimientos democráticos) y legitimidad por ejercicio (resultados de gobierno). Los datos salvadoreños sugieren un caso extremo de legitimidad por resultados: los ciudadanos evalúan positivamente la democracia no por cómo funciona el proceso político, sino por lo que el gobierno produce.

En contextos de violencia crónica como el salvadoreño, donde la inseguridad afectaba todas las dimensiones de la vida cotidiana, la provisión de seguridad constituye un bien público de primer orden. La reducción de homicidios de 103 a menos de 8 por cada 100,000 habitantes representa una transformación tangible que los ciudadanos experimentan directamente. Bajo esta lectura, la alta satisfacción democrática refleja una evaluación racional: el sistema político está entregando lo que más se necesitaba.

8.2.2 Democracia delegativa y personalización del poder

Los hallazgos son consistentes con el concepto de democracia delegativa propuesto por O’Donnell (1994): regímenes donde el presidente electo se considera autorizado a gobernar como considere conveniente, limitado únicamente por las relaciones de poder existentes y el término constitucional de su mandato.

La personalización de la legitimidad democrática en la figura de Bukele —evidenciada por el coeficiente tres veces mayor que cualquier otra institución— sugiere que los salvadoreños han delegado en el Presidente no solo la gestión gubernamental, sino la propia definición de lo que significa vivir en democracia. Las instituciones de mediación (partidos, Congreso) pierden relevancia porque la relación ciudadano-Estado se establece directamente con el líder.

Esto tiene implicaciones preocupantes: cuando la legitimidad democrática depende de una persona, ¿qué ocurre cuando esa persona deja el poder? ¿Es transferible esta legitimidad a instituciones, o el sistema se vuelve estructuralmente dependiente del líder?

8.3 El intercambio seguridad-libertad: Más allá de El Salvador

Los hallazgos de este estudio iluminan una tensión que trasciende el caso salvadoreño y que es central para la ciencia política contemporánea: ¿están los ciudadanos dispuestos a sacrificar libertades procedimentales a cambio de seguridad?

La evidencia sugiere que, al menos en contextos de violencia extrema, la respuesta es afirmativa. Esto tiene implicaciones para:

  • La teoría democrática: Los modelos procedimentales de democracia (Dahl, Schumpeter) asumen que los ciudadanos valoran la competencia electoral, el pluralismo y los contrapesos institucionales. El caso salvadoreño sugiere que estos valores pueden ser secundarios cuando necesidades más básicas (seguridad física) no están satisfechas. Esto es consistente con el marco de Maslow aplicado a la política: los derechos civiles y políticos pueden ser “bienes de lujo” que solo se priorizan cuando las necesidades básicas están cubiertas.

  • El efecto demostración regional: El “modelo Bukele” ha generado interés en otros países latinoamericanos con problemas de inseguridad (Ecuador, Honduras, Perú, Chile). Comprender las bases de su apoyo popular es crucial para anticipar si este modelo se replicará —y con qué consecuencias— en la región.

  • Las estrategias de oposición democrática: Si la legitimidad del régimen se basa en resultados de seguridad, las estrategias de oposición centradas en denunciar violaciones a derechos humanos pueden ser políticamente ineficaces. Los datos sugieren que los ciudadanos ya incorporaron este trade-off en su evaluación: saben que hay abusos, pero priorizan la seguridad.

8.4 Fortalezas del análisis

Este estudio presenta varias fortalezas metodológicas:

  • Datos representativos: Latinobarómetro 2023 utiliza muestreo probabilístico con cobertura nacional, lo que permite inferencias válidas sobre la población salvadoreña adulta.

  • Diseño comparativo interno: La especificación de tres modelos (seguridad, representativo, completo) permite evaluar hipótesis competidoras de manera sistemática, más allá de simplemente reportar asociaciones.

  • Validez de constructo: Las variables de confianza institucional de Latinobarómetro han sido ampliamente utilizadas en investigación comparada, lo que facilita el diálogo con literatura previa.

  • Transparencia y reproducibilidad: El análisis completo está documentado en código R, permitiendo replicación y extensión por otros investigadores.

8.5 Limitaciones y agenda futura

Limitaciones

  • Causalidad: El diseño transversal no permite establecer direccionalidad causal. Es posible que quienes ya estaban satisfechos con la democracia tiendan a confiar más en el Presidente (causalidad inversa), o que ambas variables sean causadas por un tercer factor (satisfacción general con la vida, por ejemplo).

  • Endogeneidad conceptual: En un contexto de hiperpresidencialismo, los encuestados pueden no distinguir claramente entre “confianza en el Presidente” y “satisfacción con la democracia”, generando correlación espuria.

  • Variables omitidas: El modelo no incluye controles por educación, ingreso, zona de residencia (urbano/rural), o experiencia directa con violencia, variables que podrían mediar o confundir las relaciones observadas.

  • Limitaciones del instrumento: La pregunta de Latinobarómetro sobre “satisfacción con la democracia” no distingue entre satisfacción con el régimen político y satisfacción con el gobierno de turno —una distinción analíticamente crucial.

Agenda de investigación futura

  1. Análisis longitudinal: Examinar cómo han evolucionado estas relaciones entre 2019 (inicio del gobierno Bukele) y 2024, aprovechando múltiples olas de Latinobarómetro.

  2. Comparación regional: Replicar el análisis en países con diferentes niveles de violencia y distintos tipos de régimen para evaluar la generalización de los hallazgos.

  3. Desagregación subnacional: Explorar si la relación seguridad-satisfacción democrática varía según la exposición territorial a la violencia (zonas históricamente controladas por pandillas vs. otras).

  4. Diseños cualitativos complementarios: Entrevistas en profundidad para comprender cómo los salvadoreños conceptualizan “democracia” y qué entienden cuando reportan estar “satisfechos” con ella.


9. Conclusiones

Este estudio examinó los determinantes de la satisfacción con la democracia en El Salvador utilizando datos de Latinobarómetro 2023, con el objetivo de evaluar si la confianza en instituciones de seguridad (Presidente, Fuerzas Armadas) tiene mayor peso que la confianza en instituciones representativas (Congreso, partidos políticos).

Los resultados confirman la hipótesis central: la confianza en el Presidente es, por amplio margen, el predictor más fuerte de satisfacción democrática (β ≈ 0.38), mientras que las instituciones representativas tradicionales muestran efectos considerablemente menores. El modelo de seguridad explica casi 7 puntos porcentuales más de varianza que el modelo representativo (28.7% vs. 22%).

Estos hallazgos tienen implicaciones teóricas y prácticas significativas:

Primero, sugieren que en contextos de violencia crónica, la legitimidad democrática puede construirse sobre resultados tangibles (seguridad) más que sobre procedimientos institucionales (representación, deliberación, contrapesos). Esto desafía los supuestos procedimentalistas de buena parte de la teoría democrática contemporánea.

Segundo, evidencian un proceso de personalización de la legitimidad democrática donde la figura presidencial desplaza a las instituciones de mediación como referente para evaluar el régimen. Esto configura lo que O’Donnell llamó “democracia delegativa” llevada a un extremo.

Tercero, plantean interrogantes sobre la sostenibilidad de este modelo de legitimidad. Si la satisfacción democrática depende de una persona y de un resultado específico (seguridad), ¿qué ocurre cuando cambian las circunstancias? La ausencia de instituciones intermedias sólidas puede hacer al sistema vulnerable a crisis de legitimidad futuras.

Finalmente, los datos invitan a una reflexión incómoda: ¿qué están evaluando los ciudadanos cuando dicen estar satisfechos con “la democracia”? Si la respuesta es “la gestión de un gobierno que suspende garantías constitucionales”, entonces el concepto mismo de satisfacción democrática requiere revisión —al menos en contextos como el salvadoreño.

El caso de El Salvador no es solo una anomalía centroamericana; es un laboratorio donde se ponen a prueba los límites de la teoría democrática frente a las demandas ciudadanas de seguridad. Los resultados no ofrecen respuestas normativas fáciles, pero sí evidencia empírica para un debate que apenas comienza.


Referencias

Teóricas

  • Dahl, R. (1971). Polyarchy: Participation and Opposition. Yale University Press.
  • Levitsky, S. & Way, L. (2010). Competitive Authoritarianism: Hybrid Regimes After the Cold War. Cambridge University Press.
  • Lipset, S.M. (1959). Some Social Requisites of Democracy. American Political Science Review, 53(1), 69-105.
  • O’Donnell, G. (1994). Delegative Democracy. Journal of Democracy, 5(1), 55-69.

Metodológicas

  • Fox, J. & Weisberg, S. (2019). An R Companion to Applied Regression. Sage.
  • Wickham, H. & Grolemund, G. (2017). R for Data Science. O’Reilly.

Fuentes de datos

  • Latinobarómetro (2023). Informe Latinobarómetro 2023: La recesión democrática de América Latina. Corporación Latinobarómetro. Santiago de Chile.

Información de la sesión

sessionInfo()
## R version 4.5.1 (2025-06-13)
## Platform: x86_64-apple-darwin20
## Running under: macOS Monterey 12.7.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.5-x86_64/Resources/lib/libRblas.0.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.5-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: America/Mexico_City
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] scales_1.4.0       GGally_2.4.0       kableExtra_1.4.0   knitr_1.50        
##  [5] ggcorrplot_0.1.4.1 car_3.1-3          carData_3.0-5      broom_1.0.8       
##  [9] readxl_1.4.5       lubridate_1.9.4    forcats_1.0.0      stringr_1.5.1     
## [13] dplyr_1.1.4        purrr_1.0.4        readr_2.1.5        tidyr_1.3.1       
## [17] tibble_3.3.0       ggplot2_4.0.0      tidyverse_2.0.0   
## 
## loaded via a namespace (and not attached):
##  [1] gtable_0.3.6       xfun_0.52          bslib_0.9.0        lattice_0.22-7    
##  [5] tzdb_0.5.0         vctrs_0.6.5        tools_4.5.1        generics_0.1.4    
##  [9] pkgconfig_2.0.3    Matrix_1.7-3       RColorBrewer_1.1-3 S7_0.2.0          
## [13] lifecycle_1.0.4    compiler_4.5.1     farver_2.1.2       textshaping_1.0.1 
## [17] htmltools_0.5.8.1  sass_0.4.10        yaml_2.3.10        Formula_1.2-5     
## [21] pillar_1.10.2      jquerylib_0.1.4    cachem_1.1.0       abind_1.4-8       
## [25] nlme_3.1-168       ggstats_0.11.0     tidyselect_1.2.1   digest_0.6.37     
## [29] stringi_1.8.7      reshape2_1.4.4     labeling_0.4.3     splines_4.5.1     
## [33] fastmap_1.2.0      grid_4.5.1         cli_3.6.5          magrittr_2.0.3    
## [37] withr_3.0.2        backports_1.5.0    timechange_0.3.0   rmarkdown_2.29    
## [41] cellranger_1.1.0   hms_1.1.3          evaluate_1.0.4     viridisLite_0.4.2 
## [45] mgcv_1.9-3         rlang_1.1.6        Rcpp_1.0.14        glue_1.8.0        
## [49] xml2_1.3.8         svglite_2.2.1      rstudioapi_0.17.1  jsonlite_2.0.0    
## [53] R6_2.6.1           plyr_1.8.9         systemfonts_1.2.3