Caso 6.7 del libro de Pruyt (traducido al español)

Para fines prácticos solo el caso será traducido al español, los diagramas y el modelo será representado en inglés

Levitt y Dubner (2006, capítulo 4) argumentan en Freakonomics que la disminución de las tasas de criminalidad (por ejemplo, en Nueva York) es, de hecho, un “beneficio no intencionado” del aborto legalizado. En este ejercicio, construiremos un modelo de simulación simplista y puramente hipotético para simular los efectos de primer orden en las estadísticas de criminalidad de una caída repentina en la tasa de natalidad de familias con múltiples problemas –ya sea por aborto voluntario o por medidas exitosas de planificación familiar.

Concentrémonos únicamente en familias con múltiples problemas y supongamos que los individuos nacidos en estas familias están, en efecto, atrapados, aunque no necesariamente recurren al crimen. Se modela una cadena generacional compuesta por niños, jóvenes, adultos y jubilados. Inicialmente, existen 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, para simplificar, que solo mueren los jubilados, en promedio después de un tiempo (promedio) como jubilado de 15 años, es decir, las muertes equivalen al número de jubilados dividido por el tiempo promedio como jubilado. De manera similar, los adultos pasan a la categoría de jubilados después de un tiempo promedio como adultos de 40 años; los jóvenes, a adultos después de un tiempo promedio como jóven de 12 años; y los niños, a jóvenes después de un tiempo promedio como niño de 12 años. Tanto los adultos como los jóvenes tienen hijos: el flujo de nacimientos es, por lo tanto, la suma de los adultos multiplicados por la tasa anual de fertilidad de adultos (3% por adulto por año) y de los jóvenes multiplicados por la tasa anual de fertilidad de jóvenes (0.3% por joven por año).

Supongamos que, anualmente, se cometen 6 millones de delitos por parte de otros, es decir, por criminales que no pertenecen a familias con múltiples problemas. Aparte de estos delitos cometidos por otros, se cometen crímenes por parte de niños criminales a una tasa de (2) actos delictivos por niño criminal por año, por jóvenes criminales a una tasa de (4) actos delictivos por joven criminal por año, por adultos criminales a una tasa de (12) actos delictivos por adulto criminal por año y por jubilados criminales a una tasa de (4) actos delictivos por jubilado criminal por año. Supongamos que, en estas familias con múltiples problemas, el porcentaje de niños con comportamiento delictivo es del 5%, el porcentaje de jóvenes con comportamiento delictivo es del 50%, el porcentaje de adultos con comportamiento delictivo es del 60% y el porcentaje de jubilados con comportamiento delictivo es del 10%.

Diagrama Causal

Este diagrama causal ilustra cómo una población se distribuye por etapas de vida (niños, jóvenes, adultos y jubilados), con tasas de fertilidad que generan nacimientos y tiempos promedios que determinan la transición de un grupo al siguiente. Además, cada grupo tiene un porcentaje de individuos con comportamiento delictivo y una tasa de delitos por criminal, lo cual, junto con los delitos cometidos por otros actores externos, da lugar al total de crímenes. El flujo principal es la dinámica demográfica (nacimientos, envejecimiento, muertes), mientras que la criminalidad surge en paralelo en cada grupo, reflejando cómo cambia la contribución a los delitos a medida que las personas avanzan en su ciclo de vida.

Diagrama de Flujo

Este diagrama de flujo modela tanto la evolución de la población como la generación de delitos en familias con múltiples problemas. En él, la población se divide en cuatro grupos: niños, jóvenes, adultos y jubilados. Los nacimientos se generan a partir de las tasas de fertilidad de adultos y jóvenes, alimentando el stock de niños. Con el paso del tiempo, cada grupo transita al siguiente—los niños se convierten en jóvenes, los jóvenes en adultos y los adultos en jubilados—según un tiempo promedio establecido para cada etapa, y los jubilados salen del sistema a través de la muerte. Paralelamente, se asigna a cada grupo un porcentaje específico de individuos con comportamiento delictivo, y estos generan delitos a una tasa particular. Finalmente, se suman los delitos cometidos por cada grupo junto con los delitos fijos de actores externos para obtener el total de crímenes.

Modelo de comportamiento

library(deSolve)
## Warning: package 'deSolve' was built under R version 4.4.1
# Initial conditions
InitialConditions <- c(
  kids = 1e6,
  youngsters = 1e6,
  adults = 3e6,
  retirees = 750000
)

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

crimes.model <- function(t, state, parameters) {
  with(as.list(c(state, parameters)), {
    # Endogenous auxiliary variables:
    # Transition rates (per year)
    rate.kids.to.youngsters   <- 1 / time.as.kid      # kids leave after 12 years
    rate.youngsters.to.adults <- 1 / time.as.youngster  # youngsters leave after 12 years
    rate.adults.to.retirees   <- 1 / time.as.adult      # adults leave after 40 years
    rate.retiree.death        <- 1 / time.as.retiree    # retirees die after 15 years

    births <- adults * fertility.adult + youngsters * fertility.youngster

    # flow variables: 
    # kids aging into youngsters, etc.
    flow.kids.to.youngsters   <- kids * rate.kids.to.youngsters
    flow.youngsters.to.adults <- youngsters * rate.youngsters.to.adults
    flow.adults.to.retirees   <- adults * rate.adults.to.retirees
    deaths.retirees           <- retirees * rate.retiree.death

    # auxiliary
    criminal.kids        <- kids * criminal.pct.kids
    criminal.youngsters  <- youngsters * criminal.pct.youngsters
    criminal.adults      <- adults * criminal.pct.adults
    criminal.retirees    <- retirees * criminal.pct.retirees

    # stocks
    crimes.kids        <- criminal.kids       * crime.rate.kid
    crimes.youngsters  <- criminal.youngsters * crime.rate.youngster
    crimes.adults      <- criminal.adults     * crime.rate.adult
    crimes.retirees    <- criminal.retirees   * crime.rate.retiree

    #big stock
    crimes <- crimes.kids + crimes.youngsters + crimes.adults + crimes.retirees + crimes.others

    # Differential equations for the stocks:
    dkids       <- births - flow.kids.to.youngsters
    dyoungsters <- flow.kids.to.youngsters - flow.youngsters.to.adults
    dadults     <- flow.youngsters.to.adults - flow.adults.to.retirees
    dretirees   <- flow.adults.to.retirees - deaths.retirees

    # Return the derivatives and also output the auxiliary variables as "additional" outputs.
    list(c(dkids, dyoungsters, dadults, dretirees),
         births = births,
         deaths.retirees = deaths.retirees,
         crimes = crimes)
  })
}

# Define parameters
parameters <- c(
  # years
  time.as.kid = 12,
  time.as.youngster = 12,
  time.as.adult = 40,
  time.as.retiree = 15,
  
  # rate
  fertility.adult = 0.03,
  fertility.youngster = 0.003,

  # events
  crimes.others = 6e6,

  # rate
  crime.rate.kid = 2,
  crime.rate.youngster = 4,
  crime.rate.adult = 12,
  crime.rate.retiree = 4,
  # Percentage of criminal behavior (as fraction)
  criminal.pct.kids = 0.05,
  criminal.pct.youngsters = 0.50,
  criminal.pct.adults = 0.60,
  criminal.pct.retirees = 0.10
)

# Integration method (Runge-Kutta 4th order)
intg.method <- "rk4"

# Run the simulation using the ode solver
out <- ode(y = InitialConditions,
           times = times,
           func = crimes.model,
           parms = parameters,
           method = intg.method)

# Plot the results
plot(out, col = c("blue"), lwd = 2,
     xlab = "Time (years)")