Modelado de la dinámica de un sistema criminal por Michelle Romero

2025-03-31

Modelado de la dinámica de un sistema criminal👨‍👩‍👦

En este blog, exploraremos el Caso 6.7 del libro de Pruyt, titulado Unintended Family Planning Benefits. Este caso analiza la dinámica de familias con problemas y su contribución a la criminalidad. Veremos distintas etapas de la vida (niñez, juventud, adultez y jubilación), además, de la tasa de natalidad y tasa de mortalidad, así como la propensión a cometer delitos en cada grupo de edad.

Para comprender mejor esta dinámica, construiremos un diagrama causal, representando las transiciones entre los diferentes grupos de edad (niños, jóvenes, adultos y jubilados), junto con tasas de natalidad y criminalidad. Luego, desarrollaremos un diagrama de flujo y finalmente, ejecutaremos una corrida del modelo a 50 años en R Studio, permitiéndonos observar tendencias a largo plazo.

Caso en inglés: Let’s focus on families with multiple problems only, and let’s assume that individuals born in families with multiple problems are indeed trapped, but that they do not necessarily resort to crime. Model an aging chain of kids, youngsters, adults and retirees. Initially, there are 1 million kids, 1 million youngsters, 3 million adults, and 750000 retirees within these families with multiple problems. Suppose for the sake of simplicity that only retirees die, on average after an average time as retiree of 15 years, i.e. deaths equals retirees divided by average time as retiree. Similarly, adults flow after an average time as adult of 40 years from adults to retirees, youngsters after an average time as youngster of 12 years from youngsters to adults, and kids after an average time as kid of 12 years from kids to youngsters. Both adults and youngsters give birth: the birth inflow is thus the sum of the adults times the annual fertility rate of adults of 3 percent per adult per year and the youngsters times the annual fertility rate of youngsters of 0.3% per youngster per year. Suppose 6 million crimes are committed annually by others, that is, by criminals that are not part of families with multiple problems. Apart from these crimes by others, crimes are committed by criminal kids at a rate of 2 criminal acts per criminal kid per year, by criminal youngsters at a rate of 4 criminal acts per criminal youngster per year, by criminal adults at a rate of 12 criminal acts per criminal adult per year, and by criminal retirees at a rate of 4 criminal acts per criminal retiree per year. Suppose that, in these families with multiple problems, the percentage of kids with criminal behavior amounts to 5%, the percentage of youngsters with criminal behavior amounts to 50%, the percentage of adults with criminal behavior amounts to 60%, and the percentage of retirees with criminal behavior amounts to 10%.

Caso en español: Centrémonos únicamente en las familias con múltiples problemas y supongamos que los individuos nacidos en estas familias están atrapados, pero que no necesariamente recurren al crimen. Modelemos una cadena de envejecimiento con niños, jóvenes, adultos y jubilados. Inicialmente, hay 1 millón de niños, 1 millón de jóvenes, 3 millones de adultos y 750,000 jubilados dentro de estas familias con múltiples problemas. Supongamos que, por simplicidad, solo los jubilados fallecen, en promedio después de un tiempo de jubilación de 15 años, es decir, el número de muertes equivale al número de jubilados dividido por el tiempo promedio como jubilado. De manera similar, los adultos pasan a ser jubilados después de un tiempo promedio como adulto de 40 años, los jóvenes se convierten en adultos después de un tiempo promedio como jóvenes de 12 años, y los niños pasan a ser jóvenes después de un tiempo promedio como niño de 12 años. Tanto los adultos como los jóvenes tienen hijos: la tasa de natalidad es la suma de los adultos multiplicados por la tasa de fertilidad anual de los adultos del 3% por adulto por año y los jóvenes multiplicados por la tasa de fertilidad anual de los jóvenes del 0.3% por joven por año. Se cometen anualmente 6 millones de delitos por parte de otros criminales, es decir, criminales que no forman parte de familias con múltiples problemas. Aparte de estos delitos cometidos por otros, los delitos dentro de estas familias se cometen a una tasa de 2 actos criminales por niño criminal al año, 4 actos criminales por joven criminal al año, 12 actos criminales por adulto criminal al año y 4 actos criminales por jubilado criminal al año. Supongamos que, dentro de estas familias con múltiples problemas, el porcentaje de niños con comportamiento criminal es del 5%, el porcentaje de jóvenes con comportamiento criminal es del 50%, el porcentaje de adultos con comportamiento criminal es del 60% y el porcentaje de jubilados con comportamiento criminal es del 10%.

Diagrama causal

En este diagrama vemos las distintas etapas de vida de los seres humanos. Los nacimientos aumentan el número de niños (entre más nacimientos haya, más niños habrá), que crecen para convertirse en jóvenes, luego en adultos y finalmente en jubilados. Las muertes eliminan individuos de la población de jubilados (en este caso sólo los jubilados pueden morir, esto con el fin de simplificar el modelo). Las variables “average time as…” controlan el ritmo de transición entre estas etapas. Los nacimientos también son afcetados de manera positiva por la tasa de fertilidad anual de los jóvenes y de los adultos.

Cada grupo de edad tiene un percentage of… with criminal behavior” (porcentaje de… con comportamiento delictivo), que determina el tamaño de la subpoblación (cada grupo de la etapa de vida e un humano) ”criminal” dentro de ese grupo de edad. El número total de delitos (crimes) se incrementa por los “crimes by others” (delitos cometidos por otros) y por los actos delictivos cometidos por cada subpoblación criminal (criminal acts per criminal…)

El diagrama muestra varios ciclos:

Diagrama de flujo

Aquí vemos las mismas relaciones que tenemos en el diagrama anterior, sólo que en presentación de diagrama de flujo, donde estamos considerando como variables de estado a kids, youngsters, adults y retirees. Tenemos como varaibles de flujo births, from kids to youngsters, from youngsters to adults, from adults to retirees and deaths.

Código del modelo a 50 años

library(deSolve)

#exógenas
parameters <- c(
  annual_fertility_rate_adults = 0.03,
  annual_fertility_rate_youngsters = 0.003,
  average_time_as_kid = 12,
  average_time_as_youngster = 12,
  average_time_as_adult = 40,
  average_time_as_retiree = 15,
  criminal_acts_per_criminal_kid = 2,
  criminal_acts_per_criminal_youngster = 4,
  criminal_acts_per_criminal_adult = 12,
  criminal_acts_per_criminal_retiree = 4,
  percentage_kids_criminal = 0.05,
  percentage_youngsters_criminal = 0.50,
  percentage_adults_criminal = 0.60,
  percentage_retirees_criminal = 0.10,
  crimes_by_others_annual = 6000000
)

#condiciones iniciales
initial_conditions <- c(
  kids = 1000000,
  youngsters = 1000000,
  adults = 3000000,
  retirees = 75000,
  crimes = 0
)

#tiempo
times <- seq(0, 
             50, 
             1)

family_dynamics <- function(t, state, parameters) {
  with(as.list(c(state, parameters)), {
    
    # Variables de flujos (cambio de edad y nacimientos)
    from_kids_to_youngsters = kids / average_time_as_kid
    from_youngsters_to_adults = youngsters / average_time_as_youngster
    from_adults_to_retirees = adults / average_time_as_adult
    deaths = retirees / average_time_as_retiree
    births = (adults * annual_fertility_rate_adults) + (youngsters * annual_fertility_rate_youngsters)
    
    # Endógenas
    criminal_kids = kids * percentage_kids_criminal
    criminal_youngsters = youngsters * percentage_youngsters_criminal
    criminal_adults = adults * percentage_adults_criminal
    criminal_retirees = retirees * percentage_retirees_criminal
    
    # Crímenes
    crimes = (criminal_kids * criminal_acts_per_criminal_kid) + 
             (criminal_youngsters * criminal_acts_per_criminal_youngster) + 
             (criminal_adults * criminal_acts_per_criminal_adult) + 
             (criminal_retirees * criminal_acts_per_criminal_retiree) + 
             crimes_by_others_annual
    
    #stock
    d_kids = births -  from_kids_to_youngsters
    d_youngsters =  from_kids_to_youngsters - from_youngsters_to_adults
    d_adults = from_youngsters_to_adults - from_adults_to_retirees
    d_retirees = from_adults_to_retirees - deaths
    d_crimes = crimes
    

    list(c(d_kids, d_youngsters, d_adults, d_retirees, d_crimes))
  })
}

out <- ode(
  y = initial_conditions,
  times = times,
  func = family_dynamics,
  parms = parameters,
  method = "rk4"
)

plot(out,
     col=c("blue"))

Aquí se está ejecutando el modelo a 50 años y vemos que todos los grupos de edad tienen un crecimiento, lo que nos dice que hay mpas nacimientos que muertes. Por lo anterior, el número de delitos también muestra un incremento, tomando como base los crímenes externos.