stewid / SimInf

A framework for data-driven stochastic disease spread simulations
GNU General Public License v3.0
32 stars 14 forks source link

how to specify a SEIR model with a seasonal beta (i.e., the infectious rate) #18

Closed stevenhuyi closed 6 years ago

stevenhuyi commented 6 years ago

Hi, everyone! I would like to inquire how to specify a SEIR, in which the infectious rate is seasonal, using mparse(). that is,

transitions <- c("S -> betaSI/(S+E+I+R) -> E", "E -> alphaE -> I","I -> gammaI -> R") compartments <- c("S", "E","I", "R")

I want the "beta" to be four values corresponding to each season within a year. Thanks.

Now, I'm dealing with hand-foot-mouth disease (HFMD) data in one province (which contains 46 counties) in the northwestern China, which has long time series (418 weeks). I also have information about population and annual birth population in each county but have no information about travelings, therefore, it is difficult to specify the "events". A way to get around this problem I think would be assuming a proportion of individuals travelling between counties. However, that would be too many choices (a lot of assumptions) to find the best assumption that fit my data best. My ultimate goal is to explore optimal control through simulation. I would like to know if there is way to resolve my problem. Any comments would be appreciated.

Steven

stewid commented 6 years ago

Hi Steven,

I think it's difficult to do that with mparse only. I suggest that you first use mparse to create a SEIR model and then use package_skeleton to generate the model files. You can then tweak the code to fit your needs. Maybe it's easiest to have the seasonal beta in the v vector and update the value in the post time step function when time t enters a new season.

I'm not sure what would be the best strategy to connect the counties. You can generate synthetic travelling events, but I agree with your conclusion that there are many assumptions.

Stefan

robineriksson commented 6 years ago

Hey,

As Stefan said: doing this through mparse would be difficult. There are other models (pre-built into the package) which already have seasonality in them. You could look into how these models' code and create your own.

About the traveling-events, in forecasting, you will always have to make assumptions. But, the certainties in these assumptions can differ. I would start with a naive approach and creating synthetic events resembling the traveling pattern you mention. Have a look at this student project for inspiration: http://www.it.uu.se/edu/course/homepage/projektTDB/ht17/project03/Project03_report.pdf.

/R