Modelado de la dinámica de un sistema delictivo.

Autor: Maria Fernanda De Luna Arocha A01383195.

El caso “Gangs and Arms Races” de Pruyt describe una situación donde dos pandillas, la pandilla A y la pandilla B, compiten entre sí en un ciclo de armamentismo sin fin. Inicialmente, cada pandilla tiene un arsenal de armas suficiente para destruir a la otra. El armamento de cada pandilla aumenta o disminuye solo a través de su propio armamentismo. Además, el armamentismo de cada pandilla depende tanto de una tasa de armamentismo autónoma, debido a su interés intrínseco en el armamento, como de una tasa relativa al armamentismo esperado del adversario.

1. Diagrama causal del caso

Diagrama causal del caso 6.6 “Gangs and Arms Races” del libro de Pruyt .

Este diagrama muestra cómo las variables externas y las variables de inicio influyen en el armamentismo de las pandillas, y cómo este armamentismo, a su vez, afecta el nivel de violencia y la percepción de armamentismo entre las pandillas. La retroalimentación entre las pandillas y las percepciones mutuas es un aspecto clave en el ciclo de armamentismo y violencia descrito en el caso.

2. Diagrama de flujo del caso

Diagrama de Flujo del caso 6.6 “Gangs and Arms Races” del libro de Pruyt .

Este diagrama causal es una simplificación de la realidad. Hay muchos otros factores que pueden influir en las carreras armamentistas entre pandillas. El diagrama muestra cómo las diferentes variables se interconectan y cómo pueden crear un ciclo de violencia. La intervención en cualquier punto del diagrama puede ayudar a reducir la violencia y prevenir las carreras armamentistas entre pandillas.

3. Simulación de la carrera armamentista entre pandillas A y B

Parte 1

Supongamos que la gang A sobreestima el armamento de la banda B en un 10%, es decir, que el “overassessment factor of gang B arming by gang A” es 110%, y que la banda B evalúa correctamente el armado de la banda A, es decir, el “overassessment factor of gang A arming by gang B” es 100%. Modela este sistema y simula el modelo durante un periodo de 100 meses. Describe el comportamiento que muestra la simulación y relacionalo con los ciclos de causalidad que hayas encontrado en el diagrama causal.

# Cargar el paquete deSolve para utilizar funciones de resolución de ecuaciones diferenciales
library("deSolve") #cada variable de estado es una ecuación diferencial
## Warning: package 'deSolve' was built under R version 4.3.3
library(ggplot2)

# Establecer las condiciones iniciales de la variable de estado. En este caso 1
inicial.conditions <- c(arms_stock_gang_a = 1.0,
                        arms_stock_gang_b = 1.0) #animal

# Definir el vector de tiempos para la simulación
times <- seq(0,100, by = 1) #

# Definir la función del modelo. #parametros son las variables exógenas
model_arms<-function(t, state, parameters){
  with(as.list(c(state, parameters)),{
    #Variables Auxiliares o endógenas
    relative_arming_rate_a=overassesment_factor_gang_b_by_a*obsolescence_rate_a*arms_stock_gang_b-obsolescence_rate_a*arms_stock_gang_a
    relative_arming_rate_b=overassesment_factor_gang_a_by_b*obsolescence_rate_b*arms_stock_gang_a-obsolescence_rate_b*arms_stock_gang_b
    
    #Variables de flujo (son las que modifican a las variables de estado) AQUI NO VAN ds
    arming_gang_a=autonomous_arming_rate_a+relative_arming_rate_a
    arming_gang_b=autonomous_arming_rate_b+relative_arming_rate_b

    #SE EMPIEZA DE AQUI: variable de estado (se establece su ecuación diferencial de ahí viene la d SOLO AQUI SE PONE LA D para la de estado, las demas no)
    darms_stock_gang_a=arming_gang_a
    darms_stock_gang_b=arming_gang_b
    
    
#Devuelve los resultados de la variable de estado
    return(list(c(darms_stock_gang_a, darms_stock_gang_b), 
               arming_gang_a = arming_gang_a, #variables de flujo
               arming_gang_b = arming_gang_b)) #variables de flujo
  })
}

# Definir los parámetros del modelo. Estan por fuera del sistema
parameters <- c(autonomous_arming_rate_a= 0.05,
                autonomous_arming_rate_b =0.05 ,
                overassesment_factor_gang_b_by_a =1.1 ,
                overassesment_factor_gang_a_by_b =1.0 ,
                obsolescence_rate_a=0.10,
                obsolescence_rate_b=0.10)
               


# Seleccionar el método de integración a utilizar en la simulación, en este caso 'rk4' (Runge-Kutta de 4to orden)
intg.method = c("rk4")

# Realizar la simulación utilizando la función 'ode' del paquete deSolve
out1 <- ode(
  y = inicial.conditions,  #condiciones iniciales
  times = times, #tiempo de simulación
  func = model_arms, #función del modelo
  parms = parameters,
  method = intg.method
)

out2 <- ode(
  y = inicial.conditions,  #condiciones iniciales
  times = times, #tiempo de simulación
  func = model_arms, #función del modelo
  parms = parameters,
  method = intg.method
)

out1 <- as.data.frame(out1)
out2 <- as.data.frame(out2)

# Graficar los resultados de la simulación
ggplot(out1, aes(x=time, y=arms_stock_gang_a )) + geom_line()

ggplot(out2, aes(x=time, y= arms_stock_gang_b)) + geom_line()

Parte 2

Ahora supongamos que la gang A subestima el armamento de la banda B en un 50%, es decir, que el “overassessment factor of gang B arming by gang A” es 50%, y que la banda B evalúa correctamente el armado de la banda A, es decir, el “overassessment factor of gang A arming by gang B” es 100%. Haz una nueva corrida del modelo durante un periodo de 100 meses. Describe el comportamiento que muestra la simulación y relacionalo con los ciclos de causalidad que hayas encontrado en el diagrama causal.

# Cargar el paquete deSolve para utilizar funciones de resolución de ecuaciones diferenciales
library("deSolve") #cada variable de estado es una ecuación diferencial
library(ggplot2)

# Establecer las condiciones iniciales de la variable de estado. En este caso 1
inicial.conditions <- c(arms_stock_gang_a = 1.0,
                        arms_stock_gang_b = 1.0) #animal

# Definir el vector de tiempos para la simulación
times <- seq(0,100, by = 1) #

# Definir la función del modelo. #parametros son las variables exógenas
model_arms<-function(t, state, parameters){
  with(as.list(c(state, parameters)),{
    #Variables Auxiliares o endógenas
    relative_arming_rate_a=overassesment_factor_gang_b_by_a*obsolescence_rate_a*arms_stock_gang_b-obsolescence_rate_a*arms_stock_gang_a
    relative_arming_rate_b=overassesment_factor_gang_a_by_b*obsolescence_rate_b*arms_stock_gang_a-obsolescence_rate_b*arms_stock_gang_b
    
    #Variables de flujo (son las que modifican a las variables de estado) AQUI NO VAN ds
    arming_gang_a=autonomous_arming_rate_a+relative_arming_rate_a
    arming_gang_b=autonomous_arming_rate_b+relative_arming_rate_b

    #SE EMPIEZA DE AQUI: variable de estado (se establece su ecuación diferencial de ahí viene la d SOLO AQUI SE PONE LA D para la de estado, las demas no)
    darms_stock_gang_a=arming_gang_a
    darms_stock_gang_b=arming_gang_b
    
    
#Devuelve los resultados de la variable de estado
    return(list(c(darms_stock_gang_a, darms_stock_gang_b), 
               arming_gang_a = arming_gang_a, #variables de flujo
               arming_gang_b = arming_gang_b)) #variables de flujo
  })
}

# Definir los parámetros del modelo. Estan por fuera del sistema
parameters <- c(autonomous_arming_rate_a= 0.05,
                autonomous_arming_rate_b =0.05 ,
                overassesment_factor_gang_b_by_a =0.50 ,
                overassesment_factor_gang_a_by_b =1.00 ,
                obsolescence_rate_a=0.10,
                obsolescence_rate_b=0.10)
               


# Seleccionar el método de integración a utilizar en la simulación, en este caso 'rk4' (Runge-Kutta de 4to orden)
intg.method = c("rk4")

# Realizar la simulación utilizando la función 'ode' del paquete deSolve
out3 <- ode(
  y = inicial.conditions,  #condiciones iniciales
  times = times, #tiempo de simulación
  func = model_arms, #función del modelo
  parms = parameters,
  method = intg.method
)

out4 <- ode(
  y = inicial.conditions,  #condiciones iniciales
  times = times, #tiempo de simulación
  func = model_arms, #función del modelo
  parms = parameters,
  method = intg.method
)

out3 <- as.data.frame(out3)
out4 <- as.data.frame(out4)

# Graficar los resultados de la simulación
ggplot(out3, aes(x=time, y=arms_stock_gang_a )) + geom_line()

ggplot(out4, aes(x=time, y= arms_stock_gang_b)) + geom_line()

4. Análisis comparativo de las corridas del modelo

GANG A

GANG B

5. Conclusiones:

La forma en que las pandillas A y B perciben y evalúan el armamento del otro puede tener consecuencias significativas en la dinámica del conflicto armado entre ellas.

Cuando la pandilla A sobreestima el armamento de la pandilla B en un 10%, es decir, cree que la pandilla B está más armada de lo que realmente está, esto puede desencadenar respuestas defensivas por parte de la pandilla A. En un intento de protegerse o equipararse con la supuesta amenaza, la pandilla A podría aumentar su propio armamento. Sin embargo, esta reacción podría interpretarse erróneamente por parte de la pandilla B como una señal de agresión, lo que podría provocar una escalada en el conflicto.

Por otro lado, cuando la pandilla A subestima el armamento de la pandilla B en un 50%, es decir, cree que la pandilla B está menos armada de lo que realmente está, esto podría llevar a una disminución en la preparación defensiva de la pandilla A. Aprovechando esta subestimación, la pandilla B podría fortalecer su propio armamento y posición estratégica sin provocar una reacción defensiva significativa por parte de la pandilla A. Esto podría permitir a la pandilla B ejercer una presión mayor sobre la pandilla A, aumentando así su influencia y poder en el conflicto.

En conclusión, tanto la sobreestimación como la subestimación del armamento entre las pandillas pueden desencadenar dinámicas de armamentismo y escalada de conflictos que aumentan la tensión y el riesgo de violencia. Estos escenarios subrayan la importancia de la percepción precisa y la comunicación efectiva en situaciones de conflicto, así como la necesidad de estrategias de gestión de conflictos que fomenten la resolución pacífica de disputas.

6. Referencias:

Pruyt, E. (2013). Small system dynamics models for big issues: Triple jump towards real-world complexity (1st ed.). TU Delft Library. ISBN 978-94-6186-195-5 -Libro donde se encuentra el caso mencionado anteriormente