Introducción

Este trabajo tiene como objetivo analizar, mediante un modelo de ecuaciones estructurales (SEM), los factores que inciden en la percepción de inseguridad de la población colombiana, a partir de los datos de la Encuesta de Convivencia y Seguridad Ciudadana (ECSC) 2022.

Para ello se definió como variable latente dependiente la percepción de inseguridad, que fue medida a través de tres preguntas relacionadas con: la seguridad que sienten las personas en su barrio y la seguridad de caminar solas de día y de noche. Esta percepción se modela en función de dos variables exógenas: el entorno peligroso percibido, compuesto por indicadores binarios que identifican la presencia de condiciones adversas como delincuencia, expendio de drogas, grupos armados y poca presencia de fuerza pública; y por otro lado, la confianza institucional en las entidades responsables de la seguridad y la convivencia, mediante cinco preguntas que indagan la percepción ciudadana sobre la Policía Nacional, el ICBF y el modelo de vigilancia por cuadrantes. estas variables utilizan escalas likert distintas (por ejemplo, de 1 a 3 o de 1 a 5, donde 1 significa “pésimo”). Adicionalmente, se incorporó la variable de expansión muestral (Exp), con el fin de asegurar que los resultados obtenidos sean representativos a nivel poblacional. A través del SEM, se evalúan las relaciones entre estos factores latentes, la magnitud de las cargas factoriales, la dirección de los efectos y la calidad del ajuste del modelo, proporcionando una comprensión integral del fenómeno de la inseguridad desde una perspectiva ciudadana.

Carga de paquetes y selección de variables

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)
library(lavaan)
## This is lavaan 0.6-19
## lavaan is FREE software! Please report any bugs.
library(lavaanPlot)
library(survey)
## Loading required package: grid
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## 
## The following objects are masked from 'package:tidyr':
## 
##     expand, pack, unpack
## 
## Loading required package: survival
## 
## Attaching package: 'survey'
## 
## The following object is masked from 'package:graphics':
## 
##     dotchart
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## 
## The following object is masked from 'package:dplyr':
## 
##     recode
## 
## The following object is masked from 'package:purrr':
## 
##     some
Percepcio_n_de_seguridad_base <- read_excel('/Users/daniel/Downloads/Percepción de seguridad base.xlsx')

variables_modelo <- Percepcio_n_de_seguridad_base %>%
  select(P3105, P3106, P3502,
         P1361S3, P1361S4, P1361S5, P1361S6, P1361S7, P1361S10,
         P1182S1, P3317S1, P1612S1, P3321, P3119,
         Exp)

variables_modelo <- variables_modelo %>%
  mutate(
    # Invertir solo las de 1 a 5
    P1612S1 = 6 - P1612S1,
    P3321   = 6 - P3321,
    P3119   = 6 - P3119
    # NO se invierte P1182S1 ni P3317S1 porque ya están en escala adecuada (1 a 3) siendo 1 el mas bajo
  )

P3105: ¿Qué tan seguro se siente en el barrio? P3106: ¿Qué tan seguro se siente caminando solo de noche? P3502: ¿Qué tan seguro se siente caminando solo de día? inseguridad =~ P3105 + P3106 + P3502

Variable independiente 1 (exógena): Entorno peligroso P1361S3: Poca presencia de fuerza pública P1361S4: Delincuencia común, robos P1361S5: Pandillas o combos P1361S6: Lotes baldíos o sin iluminación P1361S7: Expendio de drogas P1361S10: Presencia de grupos armados organizados entorno =~ P1361S3 + P1361S4 + P1361S5 + P1361S6 + P1361S7 + P1361S10

Variable independiente 2 (exógena) latente: Confianza institucional P1182S1: Contribución de la Policía P3317S1: Aporte de instituciones a la convivencia P1612S1: Evaluación del Modelo Nacional de Vigilancia por Cuadrantes P3321: Satisfacción con la labor policial P3119: Nivel de confianza en la Policía Nacional confianza =~ P1182S1 + P3317S1 + P1612S1 + P3321 + P3119

En la estructura del modelo, se especifica que la variable inseguridad es explicada directamente por las dos variables exógenas: entorno y confianza. Es decir, se asume que cuanto más peligroso percibe una persona su entorno y menor es su confianza en las instituciones, mayor será su percepción de inseguridad. Esta relación permite evaluar de manera simultánea y robusta el efecto de factores contextuales y actitudinales sobre la sensación de inseguridad.

Esta especificación también permite identificar qué dimensión tiene mayor peso explicativo sobre la percepción de inseguridad, comparando los coeficientes estandarizados de las relaciones estructurales. Así, el modelo no solo evalúa qué tan bien se agrupan los ítems en cada factor latente, sino que también permite probar hipótesis causales dentro del marco teórico planteado.

modelo_sem <- '
  # Factores latentes
  inseguridad =~ P3105 + P3106 + P3502
  entorno     =~ P1361S3 + P1361S4 + P1361S5 + P1361S6 + P1361S7 + P1361S10
  confianza   =~ P1182S1 + P3317S1 + P1612S1 + P3321 + P3119

  # Relaciones estructurales
  inseguridad ~ entorno + confianza
'

Una vez definido el modelo teórico, se procede a su estimación utilizando el paquete lavaan. Para este fin, seleccionamos el estimador MLR (Maximum Likelihood Robust). Esta decisión responde a varias características del instrumento de medición y de la naturaleza de los datos recolectados

Además, al momento de estimar el modelo, se decide no eliminar registros con valores faltante, dado que estos podrían corresponder a, personas que no respondieron ciertas preguntas por razones personales, condiciones particulares que no aplicaban a su contexto, o simplemente errores de no respuesta.

Para manejar esta situación de manera apropiada, se utilizó el método missing = “fiml” (Full Information Maximum Likelihood), que permite aprovechar toda la información disponible, sin recurrir a la eliminación de casos o la imputación arbitraria. Esto mejora la eficiencia de las estimaciones y reduce el sesgo potencial en los parámetros.

Por otro lado, se incorporaron los factores de expansión (Exp) presentes en la base de datos. Estos pesos permiten que cada observación represente de forma proporcional su contribución dentro del total de la población objetivo, dado que se trata de datos muestrales provenientes de una encuesta oficial. Para ello, se combinó la estimación del modelo SEM con el paquete survey, lo que permite ponderar adecuadamente las estimaciones obtenidas

Antes de estimar el modelo de ecuaciones estructurales, se evaluó la posible presencia de multicolinealidad entre los indicadores observables de cada variable latente. Esta evaluación es relevante, ya que un alto grado de correlación entre los ítems puede afectar la estabilidad y precisión de las estimaciones del modelo.

# Selecciona solo las variables observadas de un factor (ejemplo: confianza)
modelo_confianza <- lm(P3119 ~ P1182S1 + P3317S1 + P1612S1 + P3321, data = variables_modelo)
vif(modelo_confianza)
##  P1182S1  P3317S1  P1612S1    P3321 
## 1.493213 1.162549 1.080189 1.350802

Todos los valores se ubicaron muy por debajo del umbral crítico, lo cual sugiere que no existe multicolinealidad problemática entre estos ítems. Por tanto, se concluye que los indicadores del constructo confianza institucional son estadísticamente adecuados y pueden ser conservados en el modelo sin comprometer su validez.

# Estimación del modelo 
fit_modelo <- sem(modelo_sem,
                  data = variables_modelo,
                  sampling.weights = "Exp",
                  estimator = "MLR",
                  missing = "fiml")
## Warning: lavaan->lav_model_vcov():  
##    The variance-covariance matrix of the estimated parameters (vcov) does not 
##    appear to be positive definite! The smallest eigenvalue (= -1.935981e-20) 
##    is smaller than zero. This may be a symptom that the model is not 
##    identified.
summary(fit_modelo, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
## lavaan 0.6-19 ended normally after 73 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        45
## 
##   Number of observations                         95388
##   Number of missing patterns                         2
##   Sampling weights variable                        Exp
## 
## Model Test User Model:
##                                                Standard      Scaled
##   Test Statistic                              12979.457    8524.274
##   Degrees of freedom                                 74          74
##   P-value (Chi-square)                            0.000       0.000
##   Scaling correction factor                                   1.523
##     Yuan-Bentler correction (Mplus variant)                        
## 
## Model Test Baseline Model:
## 
##   Test statistic                            234369.490  140612.495
##   Degrees of freedom                                91          91
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  1.667
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.945       0.940
##   Tucker-Lewis Index (TLI)                       0.932       0.926
##                                                                   
##   Robust Comparative Fit Index (CFI)                         0.929
##   Robust Tucker-Lewis Index (TLI)                            0.913
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)            -914167.647 -914167.647
##   Scaling correction factor                                  1.947
##       for the MLR correction                                      
##   Loglikelihood unrestricted model (H1)    -907677.919 -907677.919
##   Scaling correction factor                                  1.683
##       for the MLR correction                                      
##                                                                   
##   Akaike (AIC)                             1828425.295 1828425.295
##   Bayesian (BIC)                           1828851.252 1828851.252
##   Sample-size adjusted Bayesian (SABIC)    1828708.240 1828708.240
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.043       0.035
##   90 Percent confidence interval - lower         0.042       0.034
##   90 Percent confidence interval - upper         0.043       0.035
##   P-value H_0: RMSEA <= 0.050                    1.000       1.000
##   P-value H_0: RMSEA >= 0.080                    0.000       0.000
##                                                                   
##   Robust RMSEA                                               0.060
##   90 Percent confidence interval - lower                     0.058
##   90 Percent confidence interval - upper                     0.062
##   P-value H_0: Robust RMSEA <= 0.050                         0.000
##   P-value H_0: Robust RMSEA >= 0.080                         0.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.040       0.040
## 
## Parameter Estimates:
## 
##   Standard errors                             Sandwich
##   Information bread                           Observed
##   Observed information based on                Hessian
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   inseguridad =~                                                        
##     P3105             1.000                               0.394    0.717
##     P3106             1.469    0.019   76.333    0.000    0.579    0.535
##     P3502             1.410    0.017   81.057    0.000    0.555    0.804
##   entorno =~                                                            
##     P1361S3           1.000                               0.266    0.568
##     P1361S4           0.731    0.013   57.842    0.000    0.194    0.536
##     P1361S5           1.421    0.022   64.078    0.000    0.377    0.756
##     P1361S6           1.244    0.020   61.820    0.000    0.330    0.663
##     P1361S7           1.331    0.023   59.066    0.000    0.353    0.708
##     P1361S10          0.138    0.008   17.684    0.000    0.037    0.157
##   confianza =~                                                          
##     P1182S1           1.000                               0.358    0.606
##     P3317S1           0.554    0.008   72.525    0.000    0.199    0.301
##     P1612S1           1.222    0.020   62.034    0.000    0.438    0.269
##     P3321             2.175    0.016  136.339    0.000    0.779    0.854
##     P3119             2.450    0.017  142.969    0.000    0.878    0.865
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   inseguridad ~                                                         
##     entorno          -0.249    0.022  -11.441    0.000   -0.168   -0.168
##     confianza         0.247    0.008   32.922    0.000    0.225    0.225
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   entorno ~~                                                            
##     confianza        -0.018    0.001  -18.400    0.000   -0.187   -0.187
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .P3105             2.227    0.002 1018.477    0.000    2.227    4.056
##    .P3106             2.850    0.004  665.005    0.000    2.850    2.637
##    .P3502             2.301    0.003  835.695    0.000    2.301    3.333
##    .P1361S3           1.384    0.006  239.352    0.000    1.384    2.961
##    .P1361S4           1.202    0.005  262.441    0.000    1.202    3.321
##    .P1361S5           1.531    0.007  210.257    0.000    1.531    3.068
##    .P1361S6           1.643    0.006  255.618    0.000    1.643    3.296
##    .P1361S7           1.529    0.007  221.016    0.000    1.529    3.064
##    .P1361S10          1.951    0.002 1191.788    0.000    1.951    8.337
##    .P1182S1           1.794    0.002  767.800    0.000    1.794    3.035
##    .P3317S1           2.013    0.003  771.358    0.000    2.013    3.052
##    .P1612S1           4.874    0.006  753.518    0.000    4.874    2.990
##    .P3321             2.874    0.004  793.943    0.000    2.874    3.150
##    .P3119             2.893    0.004  719.285    0.000    2.893    2.851
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .P3105             0.147    0.002   66.429    0.000    0.147    0.486
##    .P3106             0.834    0.007  114.378    0.000    0.834    0.714
##    .P3502             0.169    0.003   54.855    0.000    0.169    0.354
##    .P1361S3           0.148    0.002   79.317    0.000    0.148    0.677
##    .P1361S4           0.093    0.001   75.208    0.000    0.093    0.713
##    .P1361S5           0.107    0.002   55.440    0.000    0.107    0.428
##    .P1361S6           0.139    0.002   73.410    0.000    0.139    0.560
##    .P1361S7           0.124    0.002   59.910    0.000    0.124    0.499
##    .P1361S10          0.053    0.001   36.053    0.000    0.053    0.975
##    .P1182S1           0.221    0.002  142.939    0.000    0.221    0.633
##    .P3317S1           0.395    0.002  197.782    0.000    0.395    0.909
##    .P1612S1           2.466    0.009  265.555    0.000    2.466    0.928
##    .P3321             0.225    0.004   62.248    0.000    0.225    0.271
##    .P3119             0.259    0.004   66.971    0.000    0.259    0.252
##    .inseguridad       0.141    0.002   61.310    0.000    0.907    0.907
##     entorno           0.071    0.002   36.492    0.000    1.000    1.000
##     confianza         0.128    0.002   77.385    0.000    1.000    1.000
## 
## R-Square:
##                    Estimate
##     P3105             0.514
##     P3106             0.286
##     P3502             0.646
##     P1361S3           0.323
##     P1361S4           0.287
##     P1361S5           0.572
##     P1361S6           0.440
##     P1361S7           0.501
##     P1361S10          0.025
##     P1182S1           0.367
##     P3317S1           0.091
##     P1612S1           0.072
##     P3321             0.729
##     P3119             0.748
##     inseguridad       0.093

Análisis del modelo SEM con ponderación y MLR

  • Chi² (Scaled): 8524.27 (gl = 74), p < 0.001 → estadísticamente significativo. En muestras grandes como esta (n > 95.000), es común que el Chi² resulte significativo incluso en buenos modelos, por lo que no es el único indicador a considerar.
  • CFI y TLI robustos: 0.929 y 0.913 respectivamente. Valores > 0.90 indican un ajuste aceptable; > 0.95 sería excelente.
  • RMSEA robusto: 0.060 (IC 90%: 0.058 - 0.062). También se considera aceptable (ideal < 0.05, pero hasta 0.08 es válido).
  • SRMR: 0.040 → excelente (ideal < 0.08)

Relaciones estructurales

El entorno percibido como peligroso se asocia negativamente con la percepción de inseguridad (β = -0.168). Como la variable está codificada donde valores más altos indican mayor peligrosidad, este coeficiente sugiere que a mayor percepción, menor percepeción de inseguridad.

En contraste, la confianza institucional se asocia positivamente con la percepción de inseguridad (β = 0.225). Recuerde que las variables de confianza están invertidas, por lo que valores más altos significan menor confianza. Así, este coeficiente indica que menor confianza en las instituciones de seguridad se asocia con mayor percepción de inseguridad.

Cargas factoriales

Las cargas estandarizadas (Std.all) de los ítems que definen las variables latentes son: - Inseguridad: ítems entre 0.535 y 0.804 → fuertes. - Entorno: la mayoría entre 0.5 y 0.75 → adecuadas, excepto P1361S10 (0.157), que podría considerarse débil. - Confianza: desde 0.269 (débil) hasta 0.865 (muy fuerte).

Esto indica que los ítems representan de forma adecuada las dimensiones latentes propuestas.

Covarianza entre factores exógenos

Esto indica que a mayor peligrosidad percibida del entorno, menor confianza institucional. Coherente con marcos teóricos donde la degradación del entorno genera desconfianza en el Estado y la autoridad.

Resultados del modelo estructural con ponderación

Luego de incorporar el factor de expansión (Exp) y estimar el modelo mediante el estimador MLR (robusto ante no normalidad y datos con valores perdidos asumidos como MCAR o MAR), se observa que el modelo presenta un buen ajuste general a los datos. Los índices robustos CFI = 0.929, TLI = 0.913 y RMSEA = 0.060 indican una representación adecuada de la estructura latente propuesta.

En términos de efectos estructurales, se confirma que:

  • Una menor percepción de peligrosidad del entorno se asocia con una menor percepción de inseguridad (β = -0.168, p < 0.001).
  • Una menor confianza institucional en la Policía y entidades afines (recordando que las escalas fueron invertidas) se relaciona con una mayor percepción de inseguridad (β = 0.225, p < 0.001).

Ambos efectos son estadísticamente significativos y coherentes con la literatura sobre seguridad subjetiva. La covarianza negativa entre entorno y confianza (β = -0.187) indica que percepciones negativas del entorno también reducen la confianza en las instituciones de seguridad, revelando una relación indirecta.

Aunque el porcentaje de varianza explicada de la inseguridad es del 9.3%, esto es aceptable en estudios de percepción ciudadana, donde múltiples factores intervienen. Las cargas factoriales de los ítems son en su mayoría adecuadas, reforzando la validez del modelo propuesto.

lavaanPlot(
  model = fit_modelo,
  stand = TRUE,            # Muestra coeficientes estandarizados
  coefs = TRUE,            # Muestra los coeficientes en las flechas
  covs = TRUE,             # Muestra las covarianzas
  stars = "regress",       # Muestra significancia solo en regresiones
  node_options = list(fontsize = 12),
  edge_options = list(fontsize = 10),
  graph_options = list(rankdir = "TB")  # Top to Bottom layout
)

Conclusión general del modelo de percepción de inseguridad

El modelo propuesto permitió analizar cómo los factores contextuales y la confianza institucional influyen en la percepción de inseguridad en Colombia. A través de un enfoque de ecuaciones estructurales, se definieron tres constructos latentes: inseguridad percibida (variable dependiente), entorno peligroso percibido y confianza institucional en la seguridad (ambas como variables exógenas).

El diagrama estructural muestra que:

Además, se observa una covarianza negativa entre entorno y confianza institucional (-0.19), lo cual sugiere que quienes perciben un entorno más peligroso tienden también a desconfiar de las instituciones de seguridad.

Finalmente, el modelo mostró un buen ajuste global (CFI = 0.94, RMSEA = 0.060, SRMR = 0.040), y se incorporaron factores de expansión para garantizar representatividad poblacional. Los resultados ofrecen una visión sobre cómo distintos factores del entorno urbano y de la institucionalidad configuran la percepción ciudadana de inseguridad.