a product message image
{' '} {' '}
Limited time offer
SAVE % on your upgrade

Page 1

COVID-19 Pierre Ramos 23/3/2020 Epidemia COVID-19 El presente modelo especifica la transmision de enfermedades infecciones (COVID) entre sujetos susceptibles (S), infecciosos (I) y recuperados (R). La estructura contempla el ritmo al que los individuos se exponen y se recuperan de la enfermedad. La suposicion considera que cada individuo infeccioso tiene contacto con otro susceptible, escogido aleatoriamente a una tasa (r) por unidad de tiempo, con una probabilidad (B) de transmitir la enfermedad por contacto. De esta forma, la variable aleatoria (t) (tiempo transcurrido entre la infeccion del individuo k-1 y el individuo k-n) tiene una distribucion exponencial que no cambia en el tiempo. Esto ultimo significa que el numero de sujetos susceptibles e infectados en el tiempo t es un proceso de Poisson homogeneo. Por otra parte, dado que el modelo contempla homogenidad para los sujetos (S) e (I), ya que cada uno tiene el mismo numero esperado de contactos, su grafica describe una trayectoria en forma de S (S-shaped growth), debido a que el numero de individuos infectados es bajo en las primeras etapas del proceso, mientras que el numero de individuos susceptibles es bajo en las ultimas etapas. Como resultado, el numero de infectados experimenta el mayor crecimiento durante la etapa intermedia del proceso. 1. Variables Variables de Estado (Stock variables): Population susceptible to COVID (S) Population infected with COVID (I) Population recoverd (R) Variables de flujo (flow variables) Infection Rate Recovery Rate Variables auxiliares endogenas (endogenous auxiliary variables) Susceptible contacts Probability of contact with infected person Contacts between infected and uninfected people Parametros de simulacion (exogenous auxiliary variables) Contact frequency Total population Infectivity Avarage duraction of infection 2. Definir Modelo dinamico library("deSolve")

## Warning: package 'deSolve' was built under R version 3.6.3


covid.epidemic.sir <- function(t, state, parameters) { with(as.list(c(state,parameters)), { #Endogenous auxiliary variables Probability.of.Contact.with.Infected.Person <- population.infected.with.COVID/Total.Population Susceptible.Contacts <- population.susceptible.to.COVID*Contacts.frequency Contact.between.Infected.and.Uninfected.People <- Susceptible.Contacts*Probability.of.Contact.with.Infected.Person #Flow variable #The infection rate is determined by the total number of contacts #between infected and uninfected people each day and #the propability to uninfeted person (denoted infectivity) Infection.Rate <- Contact.between.Infected.and.Uninfected.People*Infectivity #people/day #The recovery rate is determined by the total number of population #infected with COVID each day / the Avarage Duraction of Infection (from 21 to 90 days) Recovery.Rate <- population.infected.with.COVID/Average.Duration.of.Infection #people/day #State (Stock) variables #the population susceptible to COVID is the equal to the population susceptible #prior to the onset of the disease less all of those that have contracted it. dpopulation.susceptible.to.COVID <- (-1)*Infection.Rate #stock unit: people #New variable: The population infected with COVID is equal to the Infection Rate-Recovery Rate dpopulation.infected.with.COVID <- Infection.Rate-Recovery.Rate #stock unit: people #New variable: The population recovered from COVID is equal to the Recovery Rate dpopulation.recoverd.from.COVID <- Recovery.Rate

#Integration. list(c(dpopulation.susceptible.to.COVID, dpopulation.infected.with.COVID, dpopulation.recoverd.from.COVID)) }) }

3. Especificacion de parametros, condiciones iniciales,periodo de analisis y metodo de integracion parameters <- c(Infectivity= 0.01, #(simulation rate) #dimmensionless Contacts.frequency = 5, #people/Day Total.Population = 120e6, #people Average.Duration.of.Infection = max(90, min(13))) InitialConditions <- c(population.susceptible.to.COVID = 120e6, population.infected.with.COVID = 400, #actual population.recoverd.from.COVID = 0 ) #actual times <- seq(0, #initial time, #days 500, #end time, #days 1) #time.step, #days intg.method <- c("rk4") #exiten muchos metodos disponibles, en este ejemplo # el metodo elegido es Runge-Kutta de orden 4

4. Resolver numericamente el Modelo out <- ode(y = InitialConditions, times = times, func = covid.epidemic.sir, parms = parameters, method = intg.method )

5. Analiza graficamente los resultados plot(out, col = c("blue"), main = c("population susceptible", "population infected", "population recoverd"), mfrow = c(1, 3 ))


Nota: El modelo SIR expone una dinamica de crecimiento y colapso. En este caso por cada sujeto susceptible existe un sujeto infectado con el virus COVID y otro sujeto que se recupera (entre 21 y 90 dias) 6. Simulando tasa actual de infectividad y frecuencia actual de contacto parameters <- c(Infectivity= 0.12, #(Actual rate) Contacts.frequency = 5, #(Actual rate) Total.Population = 120e6, #people Average.Duration.of.Infection = max(90, min(21))) #days #rango: min = 21, max = 90 dias InitialConditions <- c(population.susceptible.to.COVID = 120e6, population.infected.with.COVID = 400, population.recoverd.from.COVID = 0) times <- seq(0, 500, 1) intg.method <- c("rk4") out <- ode(y = InitialConditions, times = times, func = covid.epidemic.sir, parms = parameters, method = intg.method) plot(out, col = c("blue"), main = c("population susceptible", "population infected", "population recoverd"), mfrow = c(1, 3 ))


Nota. Con la tasa actual de infectividad y “frequencia de contacto” se tienen efectos negativos. La población se infecta muy rápido por COVID y colapsa el sistema de salud pública. 7. Simulando disminución en un 70 por ciento en la “frecuencia de contacto” y manteniendo la tasa actual de infectividad


covid.epidemic.sir.2 <- function(t, state, parameters) { with(as.list(c(state,parameters)), { #Endogenous auxiliary variables Probability.of.Contact.with.Infected.Person <- population.infected.with.COVID/ (Total.Population/(final.Contacts.frequency-start.Contacts.frequency/start.Contacts.frequency)*100) Susceptible.Contacts <- population.susceptible.to.COVID*((final.Contacts.frequency-start.Contacts.frequency/start.Contac ts.frequency)*100) Contact.between.Infected.and.Uninfected.People <- Susceptible.Contacts*Probability.of.Contact.with.Infected.Person #Flow variable #The infection rate is determined by the total number of contacts #between infected and uninfected people each day and #the propability to uninfeted person (denoted infectivity) Infection.Rate <- Contact.between.Infected.and.Uninfected.People*Infectivity #people/day #The recovery rate is determined by the total number of population #infected with COVID each day / the Avarage Duraction of Infection (from 21 to 90 days) Recovery.Rate <- population.infected.with.COVID/Average.Duration.of.Infection #people/day #State (Stock) variables #the population susceptible to COVID is the equal to the population susceptible #prior to the onset of the disease less all of those that have contracted it. dpopulation.susceptible.to.COVID <- (-1)*Infection.Rate #stock unit: people #New variable: The population infected with COVID is equal to the Infection Rate-Recovery Rate dpopulation.infected.with.COVID <- Infection.Rate-Recovery.Rate #stock unit: people #New variable: The population recovered from COVID is equal to the Recovery Rate dpopulation.recoverd.from.COVID <- Recovery.Rate #people/Day #Integration. list(c(dpopulation.susceptible.to.COVID, dpopulation.infected.with.COVID, dpopulation.recoverd.from.COVID )) }) } parameters <- c(Infectivity= 0.12, #(simulation rate) #dimmensionless start.Contacts.frequency = 5, final.Contacts.frequency = 1.5, Total.Population = 120e6, #people Average.Duration.of.Infection = max(90, min(21))) InitialConditions <- c(population.susceptible.to.COVID = 120e6, population.infected.with.COVID = 400, #actual population.recoverd.from.COVID = 0 ) #actual times <- seq(0, 500, 1) #time.step, #days intg.method <- c("rk4") #exiten muchos metodos disponibles, en este ejemplo # el metodo elegido es Runge-Kutta de orden 4 out.2 <- ode(y = InitialConditions, times = times, func = covid.epidemic.sir.2, parms = parameters, method = intg.method) plot(out.2, col = c("blue"), main = c("population susceptible", "population infected", "population recoverd"), mfrow = c(1, 3))


Nota. Al disminuir en un 70 por ciento la “frequencia de contacto” y manteniendo la “infectividad” de 1.2, se tienen efectos positivos: la población se infecta a un menor ritmo. En este modelo se gana tiempo para atender a la poblacion infectada, permite que el sistema de salud no colapse y que se valoren otras opciones de politica de salud. Conclusion: se trata de un modelo de simulación que permite diagnósticar el perfil inicial del problema, los planteamientos no son concluyentes. Se observa que al disminuir el contacto entre las personas disminuye la velocidad de contagio, se gana tiempo valioso para fortalecer el sistema de salud pública y (re)plantear escenarios para la toma de decisiones. No obstante, restringir el contacto es una medida temporal dado los efectos negativos que puede generan en los sectores de la economía

Profile for Pierre Ramos

COVID-19  

Simulación COVID-19

COVID-19  

Simulación COVID-19

Advertisement