tapios / risk-networks

Code for risk networks: a blend of compartmental models, graphs, data assimilation and semi-supervised learning
Other
2 stars 2 forks source link

Remove age group assignment from ContactNetwork #147

Open dburov190 opened 4 years ago

dburov190 commented 4 years ago

Currently, age groups are assigned to nodes in ContactNetwork, and then read off via get_age_groups. However, this seems redundant since age groups are never used except for distributions of clinical parameters, and those should be moved outside ContactNetwork and even TransitionRates anyway (see #144, #145).

glwagner commented 4 years ago

When we decided to store age as a "node attribute", it was envisioned that this is a simple, yet scalable approach for storing all person-specific data. This approach works when nodes correspond uniquely to individuals. For example, a model one might entertain is to calculate the transmission rate between two nodes as a function of the "amount of PPE" a particular node wears. For this, the amount of PPE is a node attribute that may be initialized and changed as needed.

Another application is under a more general model for hospitalization that is useful when not all severely infectious people are hospitalized. In this model, being "severely infectious" is associated with a higher mortality rate. One can then model the effect of hospitalization as reducing the mortality rate by some fraction. This model would allow an investigation of the effect of finite health system capacity on the evolution of an epidemic. For this purpose, person-specific mortality rates could be naturally stored as node attributes alongside age, and changes to the mortality rate could be managed by the HealthService.

We should consider these kinds of extensions --- as well as other future developments that we can't envision right now --- when considering where to put age information.

lubo93 commented 4 years ago

When we decided to store age as a "node attribute", it was envisioned that this is a simple, yet scalable approach for storing all person-specific data. This approach works when nodes correspond uniquely to individuals. For example, a model one might entertain is to calculate the transmission rate between two nodes as a function of the "amount of PPE" a particular node wears. For this, the amount of PPE is a node attribute that may be initialized and changed as needed.

Another application is under a more general model for hospitalization that is useful when not all severely infectious people are hospitalized. In this model, being "severely infectious" is associated with a higher mortality rate. One can then model the effect of hospitalization as reducing the mortality rate by some fraction. This model would allow an investigation of the effect of finite health system capacity on the evolution of an epidemic. For this purpose, person-specific mortality rates could be naturally stored as node attributes alongside age, and changes to the mortality rate could be managed by the HealthService.

We should consider these kinds of extensions --- as well as other future developments that we can't envision right now --- when considering where to put age information.

Yes, I agree. Storing certain "personal" information in node/edge attributes can be useful for future extensions.