Información de Contacto

INTRODUCCIÓN

Chile está sufriendo la mayor crisis de seguridad, que afecta directamente a Gendarmería de Chile, último eslabón del sistema de justicia penal, encargada de recibir a todas las personas declaradas un peligro para la sociedad o condenadas por la comisión de un delito. El aumento de reclusos es una situación crítica, ya que las plazas disponibles son limitadas y no aumentan al aumentar los encarcelados. Esto genera sobrepoblación y hacinamiento, lo que provoca que las unidades penales superen su capacidad según su diseño.

Este documento explota el conjunto de datos mediante el modelo ARIMA para predecir la población penal futura en Chile.

DESCRIPCIÓN DE DATOS

Los datos corresponden a informes estadísticos mensuales desde enero-2019 a la fecha, obtenidos en https://www.gendarmeria.gob.cl/rep_est_mes.html, los cuales se unificaron obteniendo la población penal por unidad y mes. Esta población penal corresponde a las personas que se encuentran recluidas por medida cautelar de prisión preventiva (imputado) y cumplimiento de pena privativa de libertad (condenado).

Para ello, solo se tuvieron en cuenta centros de detención preventiva (CDP), centros de cumplimiento penitenciario (CCP), centros penitenciarios femeninos (CPF), complejos penitenciarios (CP) y la unidad especial de alta seguridad (UEAS). Finalmente, los datos presenta la siguiente descripción:

VARIABLE TIPO OBSERVACIÓN
REGION Categórica Corresponde a la región geográfica.
UNIDAD Categórica Identifica la unidad penal.
IMPUTADOS_H Numérica Número de imputados hombres en prisión preventiva.
IMPUTADOS_M Numérica Número de imputados mujeres en prisión preventiva.
IMPUTADOS_TOTAL Numérica Total de imputados en prisión preventiva (hombres y mujeres).
CONDENADOS_H Numérica Número de condenados hombres en reclusión.
CONDENADOS_M Numérica Número de condenados mujeres en reclusión.
CONDENADOS_TOTAL Numérica Total de condenados en prisión definitiva (hombres y mujeres).
TOTAL Numérica Total de personas recluidas en la unidad penal.
FECHA Fecha Fecha de captura de los datos.
AÑO Numérica Año en que se registran los datos.
MES Numérica Mes en que se registran los datos.

Análisis descriptivo

El análisis descriptivo es el primer paso de un estudio de datos adecuado. Aunque no permite sacar conclusiones, resulta útil permitiendo caracterizar, sintetizar y visualizar los datos.

Población penal actual

Uso de capacidad por región

Población penal por año

Población penal por mes

Población penal por unidad


ARIMA

Un modelo ARIMA (Autorregresivo Integrado de Media Móvil) es un modelo estadístico diseñado para analizar y predecir series de tiempo que no son estacionarias por naturaleza, pero que pueden transformarse en estacionarias mediante diferenciaciones. Los modelos ARIMA incorporan explícitamente las autocorrelaciones en los datos y modelan tanto los patrones como las dependencias en el componente irregular de la serie temporal, lo que los hace especialmente útiles para capturar relaciones a corto y largo plazo.


Descomposición

Una serie de tiempo puede descomponerse en varios componentes claves, estos son:

Serie observada (observed): Representa la gráfica de la serie original con todos sus elementos combinados.

Tendencia (trend): Refleja la dirección general de la serie a lo largo del tiempo, ya sea creciente, decreciente o estable, y describe patrones persistentes a largo plazo.

Estacionalidad (seasonal): Identifica patrones repetitivos o periódicos asociados a intervalos de tiempo específicos.

Componente aleatorio (random): Representa el ruido o error en los datos, compuesto por variaciones impredecibles que no siguen patrones definidos y no pueden ser explicadas por los demás componentes.



Modelo ARIMA

Se utilizó la función auto.arima() que es parte del paquete forecast para automatizar el proceso de selección del mejor modelo ARIMA sin la necesidad de especificar los parámetros. El argumento lambda = “auto” corresponde a la función automática para determinar el valor de lambda que mejor transforma los datos de la serie temporal para lograr una varianza constante a lo largo del tiempo, el parámetro lambda hace referencia a la transformación Box-Cox.


modelo_auto_arima <- auto.arima(ts.mes, lambda = "auto")
modelo_auto_arima
## Series: ts.mes 
## ARIMA(0,2,1)(0,0,2)[12] 
## Box Cox transformation: lambda= 0.8840002 
## 
## Coefficients:
##           ma1    sma1    sma2
##       -0.8018  0.2432  0.5865
## s.e.   0.0681  0.1070  0.3188
## 
## sigma^2 = 27384:  log likelihood = -506.65
## AIC=1021.29   AICc=1021.85   BIC=1030.67


Predicciones

Utilizando la función predict() se obtienen las predicciones a futuro a partir del modelo ARIMA ajustado previamente con la función auto.arima(). Con el argumento n.ahead=12 el modelo generará predicciones para los próximos 12 meses.


pred <- predict(modelo_auto_arima, n.ahead = 12)
pred
## $pred
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2025                                                                19003.67
## 2026 18914.94 18900.41 18778.48 18804.52 18707.35 18709.89 18685.82         
##           Sep      Oct      Nov      Dec
## 2025 19058.51 18972.82 18995.18 18894.67
## 2026                                    
## 
## $se
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 2025                                                                      
## 2026  626.5042  724.9027  826.8754  932.4101 1041.4628 1153.9738 1269.8759
##            Aug       Sep       Oct       Nov       Dec
## 2025  166.7851  260.3073  349.3051  439.0512  531.2266
## 2026


Transformación Box-Cox

Para reconstruir los valores originales de la predicción a partir de la transformación Box-Cox (lambda = 0.8840002), se utiliza la fórmula inversa correspondiente a la transformación Box-Cox.

lambda <- modelo_auto_arima$lambda[1]
pred_transformadas <- pred$pred
pred_originales <- round(((pred_transformadas * lambda) + 1)^(1 / lambda), 0)
pred_originales
##        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
## 2025                                           60224 60420 60113 60193 59833
## 2026 59906 59854 59417 59510 59163 59172 59086


Visualización

Utilizando la función plot_ly() parte del paquete plotly se genera el gráfico interactivo, donde la serie observada se muestran en color negro y las predicciones en color rojo , para que se pueda visualizar ambos conjuntos de datos de manera clara y dinámica.