R Markdown

Cristina Margarita Acosta Soto A01367544

Caso 6.6 Gangs and Arms Races

(Pruyt, 2013)

El uso de sistemas de análisis como el descrito proporciona una herramienta crucial para comprender dinámicas complejas entre entidades o sistemas interconectados, como en el caso de las Gangs rivales.

1. Diagrama causal del problema

2. Diagrama de flujo del problema

Modelo del Caso 6.6

En este escenario, se tienen dos Gangs, la Gang A y la Gang B, cuyos arsenales iniciales consisten en el 100% de las armas necesarias para destruirse mutuamente. El armamento de cada Gang solo varía a través de su propio aprovisionamiento. El proceso de armar ambas Gangs depende tanto de una tasa de armamento autónoma, debido a su interés intrínseco en las armas, como de una tasa relativa al armamento esperado del adversario. En este análisis, se supone que las tasas de armamento autónomo y de obsolescencia para ambas Gangs son del 5% y 10% respectivamente, respecto al armamento necesario para derrotar a la otra Gang, por mes. Este estudio se enfocará en examinar este sistema y sus implicaciones.

# Librerías
library(deSolve)
library(ggplot2)

# Definir las condiciones iniciales
initial_conditions <- c(arms_stock_a = 1, 
                        arms_stock_b = 1)  # Se asume que las cantidades están normalizadas al 100%

# Definir el vector de tiempos para la simulación
times <- seq(0, 100, by = 1)  # Simulación durante 100 meses, con intervalos de 1 mes

# Definir la función del modelo
darms_model <- function(t, state, parameters) {
  with(as.list(c(state, parameters)), {
    
    # Variables auxiliares
    arming_rate_gang_a <- overassessment_factor_gang_b_by_gang_a * arms_obsolescence_rate_gang_a * arms_stock_b - (arms_obsolescence_rate_gang_a * arms_stock_a)
    arming_rate_gang_b <- overassessment_factor_gang_a_by_gang_b * arms_obsolescence_rate_gang_b * arms_stock_a - (arms_obsolescence_rate_gang_b * arms_stock_b)
    
    # Variables de flujo
    arming_gang_a <- autonomous_arming_rate_a + arming_rate_gang_a
    arming_gang_b <- autonomous_arming_rate_b + arming_rate_gang_b
    
    # Ecuaciones diferenciales
    darms_stock_a <- arming_gang_a
    darms_stock_b <- arming_gang_b
    
    # Devolver resultados
    return(list(c(darms_stock_a, darms_stock_b),
                arming_gang_a = arming_gang_a,
                arming_gang_b = arming_gang_b
    ))
  })
}

# Definir los parámetros del modelo
parameters_1 <- c(arms_obsolescence_rate_gang_a = 10/100, 
                   arms_obsolescence_rate_gang_b = 10/100,
                   overassessment_factor_gang_a_by_gang_b = 100/100, 
                   overassessment_factor_gang_b_by_gang_a = 50/100,
                   autonomous_arming_rate_a = 5/100,
                   autonomous_arming_rate_b = 5/100
)

parameters_2 <- c(arms_obsolescence_rate_gang_a = 10/100, 
                   arms_obsolescence_rate_gang_b = 10/100,
                   overassessment_factor_gang_a_by_gang_b = 100/100, 
                   overassessment_factor_gang_b_by_gang_a = 110/100,
                   autonomous_arming_rate_a = 5/100,
                   autonomous_arming_rate_b = 5/100
)

# Seleccionar el método de integración
intg_method <- "rk4"

# Realizar la simulación
out1 <- ode(
  y = initial_conditions,
  times = times,
  func = darms_model,
  parms = parameters_1,
  method = intg_method
)

out2 <- ode(
  y = initial_conditions,
  times = times,
  func = darms_model,
  parms = parameters_2,
  method = intg_method
)

# Convertir los resultados a data frames para graficar
graph1 <- as.data.frame(out1)
graph2 <- as.data.frame(out2)

# Graficar los resultados de la simulación
ggplot(graph1, aes(x = time, y = arms_stock_a, color = "Gang A")) + 
  geom_line() +
  labs(x = "Tiempo (meses)", y = "Cantidad de armas", title = "Simulación del armamento de las Gangs") +
  scale_color_manual(values = c("Gang A"="#FF69B4")) +
  theme_minimal()

ggplot(graph2, aes(x = time, y = arms_stock_b, color = "Gang B")) + 
  geom_line() +
  labs(x = "Tiempo (meses)", y = "Cantidad de armas", title = "Simulación del armamento de las Gangs") +
  scale_color_manual(values = c("Gang B" = "#008000")) +
  theme_minimal()

Resultados

En el escenario inicial, donde el Gang A sobrevalora al Gang B en un 10%, se evidencia un marcado incremento en la acumulación de armas por parte de ambas facciones. Esto se atribuye al ciclo de retroalimentación del modelo causal.

Por otro lado, en el segundo escenario, cuando el Gang A subestima al Gang B en un 50%, se observa una notable disminución en el arsenal de ambas facciones. Esto se deriva de la percepción del Grupo A de que el Grupo B posee un armamento un 50% menor, lo que por dilema de respuesta asume que ambos prefieren cooperar y reduce la cantidad de armamento.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
# Combine the data frames of the two outputs into one
combined_data <- bind_rows(
  mutate(graph1, scenario = "Output 1: Overestimation 110% Gang A - 100% Gang B"),
  mutate(graph2, scenario = "Output 2: Overestimation 50% Gang A - 100% Gang B")
)

# Plot the simulation results together with gradient colors
ggplot(combined_data, aes(x = time)) +
  geom_line(aes(y = arms_stock_a, color = scenario), linetype = "solid") +
  geom_line(aes(y = arms_stock_b, color = scenario), linetype = "dashed") +
  labs(title = "Simulation of Armament for Gangs A and B",
       x = "Time (months)", 
       y = "Quantity of Arms", 
       color = "Scenario") +
  scale_color_manual(values = c("Output 1: Overestimation 110% Gang A - 100% Gang B" = "#FF69B4", # Pink
                                "Output 2: Overestimation 50% Gang A - 100% Gang B" = "#008000")) +  # Green
  theme_minimal() +
  guides(color = guide_legend(title = "Scenario"))