Modelo de causalidad:

knitr::include_graphics("6.7causal.png")

Modelo de flujo:

knitr::include_graphics("6.7flujo.png")

Variables de Estado (Stock variables) Kids Youngsters Adults Retirees Crimes

Variables de flujo (flow variables) Births from kids to youngsters from youngsters to adults from adults to retirees deaths

Variables auxiliares endĂ³genas (endogenous auxiliary variables) criminal youngsters criminal kids criminal adults criminal retirees crimes by criminal kids crimes by criminal adults crimes by criminal youngsters crimes by criminal retiree

ParĂ¡metros de simulaciĂ³n (variables en la frontera del sistema o exogenous auxiliary variables) annual fertility rates of adults annual fertility rates of youngsters average time as kids average time as youngster average time as adults average time as retirees percentage of kids with criminal behavior percentage of adults with criminal behavior percentage of youngsters with criminal behavior percentage of retirees with criminal behavior criminal acts per criminal kid criminal acts per criminal adult criminal acts per criminal youngster criminal acts per criminal retiree crimes by others

library(deSolve)
## Warning: package 'deSolve' was built under R version 4.2.3
InitialConditions <- c(kids= 1000000,
                       youngsters= 1000000,
                       adults= 3000000,
                       retirees= 750000
  )

times <- seq(0,#Inicio
             50,#Tiempofinal
             1) #Cadencia

model <- function(t, state, parameters) {
  with(as.list(c(state,parameters)), {
    
    #Variables endogenas
    criminalkids= criminal_kids_percentage*kids
    criminalyoungsters= criminal_youngsters_percentage*youngsters
    criminaladults= criminal_adults_percentage*adults
    criminalretirees= criminal_retirees_percentage*retirees
    crimes = otherscrimes + (crimes_per_kids*criminalkids) + (crimes_per_youngsters*criminalyoungsters) + (crimes_per_adults*criminaladults) + (crimes_per_retirees*criminalretirees)
      
    #Variables de flujo
    birth= (fertility_youngsters*youngsters) + (fertility_adults*adults)
    kids2youngsters= kids/time_kids
    youngsters2adults= youngsters/time_youngsters
    adults2retirees= adults/time_adults
    death= retirees/time_retirees
    
      
    #Variables de estado (d)
    d.kids= birth - kids2youngsters
    d.youngs= kids2youngsters - youngsters2adults
    d.adults= youngsters2adults - adults2retirees
    d.retirees= adults2retirees - death
    
    list(c(d.kids,d.youngs,d.adults,d.retirees))
  })
}

###Variables exĂ³genas
parameters<-c(time_kids= 12,
              time_youngsters= 12,
              time_adults= 40,
              time_retirees= 15,
              fertility_youngsters= 0.3/100,
              fertility_adults= 3/100,
              criminal_kids_percentage= 5/100,
              criminal_youngsters_percentage= 50/100,
              criminal_adults_percentage= 60/100,
              criminal_retirees_percentage= 10/100,
              crimes_per_kids= 2,
              crimes_per_youngsters= 4,
              crimes_per_adults= 12,
              crimes_per_retirees= 4,
              otherscrimes= 6000000
  )


intg.method<-c("rk4")

out <- ode(y = InitialConditions,
           times = times,
           func = model,
           parms = parameters,
           method =intg.method )

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