##diagrama causal
knitr::include_graphics("C:/Users/lalov/OneDrive/Documents/causal1.png")
##diagrama de flujo
knitr::include_graphics("C:/Users/lalov/OneDrive/Documents/flujo1.png")
library("deSolve")
## Warning: package 'deSolve' was built under R version 4.2.3
#Variables exógenas o parámetros
parameters<-c(Tasa_Fertilidad_Adulto = 7/100, #x%
Tasa_Fertilidad_Joven = 7*0.2/100, #x*.2%
Tiempo_Nino = 13, #años
Tiempo_Joven = 8, #años
Tiempo_Adulto = 7+34, #años
Tiempo_Jubilado = 7+14, #años
Prop_ninos_crim = (7+2)/100, #x+2%
Prop_jovenes_crim = (7+3)/100, #x+3%
Prop_adultos_crim = (7+5)/100, #x+5%
Prop_jubilados_crim = (7+1)/100, #x+1%
Tasa_crimen_otros = 7+1, #millones
Tasa_crimen_ninos = 7+1, #millones
Tasa_crimen_jovenes = 7+2, #millones
Tasa_crimen_adultos = 7+4, #millones
Tasa_crimen_jubilados = 7-1 #millones
)
#Condiciones iniciales de las variables de estado (aquí se escriben sin d)
InitialConditions <- c(ninos = 7*1000000,
jovenes = (7+1)*1000000,
adultos = (7+2)*1000000,
jubilados = (7+3)*100000
)
#Tiempo de modelación
times <- seq(0, #initial time
50, #end of simulation
1)#time step
#Método de integración
intg.method<-c("rk4")
#Función del caso
crime <- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Variables endógenas
ninos_criminales <- ninos*Prop_ninos_crim
jovenes_criminales <- jovenes*Prop_jovenes_crim
adultos_criminales <- adultos*Prop_adultos_crim
jubilados_criminales <- jubilados*Prop_jubilados_crim
crimenes <-Tasa_crimen_otros + Tasa_crimen_ninos*ninos_criminales + Tasa_crimen_jovenes*jovenes_criminales + Tasa_crimen_adultos*adultos_criminales + Tasa_crimen_jubilados*jubilados_criminales
#Variables de flujo
nacimiento <- Tasa_Fertilidad_Adulto*adultos + Tasa_Fertilidad_Joven*jovenes
pubertad <- ninos/Tiempo_Nino
madurez <- jovenes/Tiempo_Joven
jubilacion <- adultos/Tiempo_Adulto
muerte <- jubilados/Tiempo_Jubilado
#Variables de estado (siempre inician con un d)
dninos <- nacimiento-pubertad
djovenes <- pubertad-madurez
dadultos <- madurez-jubilacion
djubilados <- jubilacion-muerte
list(c(dninos, djovenes, dadultos, djubilados),crimenes = crimenes, nacimiento = nacimiento, pubertad = pubertad, madurez = madurez, jubilacion = jubilacion, muerte = muerte) #En la lista deben ir las variables que quieres plotear, dentro de la c() las variables de estado (las que inician con d) y fuera de la c(), pero dentro del paréntesis de la lista, las demás variables que se deseen plotear.
})
}
#Simulación del model
out <- ode(y = InitialConditions,
times = times,
func = crime, #recuerda actualizar el nombre de tu función para cada caso que resulevas
parms = parameters,
method =intg.method )
#Gráficos de resultados del modelo
plot(out)