Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic updating of vaccination rate #198

Closed
pratikunterwegs opened this issue Mar 18, 2024 · 0 comments · Fixed by #202
Closed

Dynamic updating of vaccination rate #198

pratikunterwegs opened this issue Mar 18, 2024 · 0 comments · Fixed by #202
Assignees
Labels
Bug Something isn't working ODE model Related to the ODE models in epidemics Vaccination Related to implementing vaccination

Comments

@pratikunterwegs
Copy link
Member

pratikunterwegs commented Mar 18, 2024

This issue is to request that vaccination rates should be dynamically updated over the course of an epidemic in all models that support <vaccination>. The general method is $\nu_{it} = \nu_i N_i/(N_i - V_{it})$ for each timestep $t$, where $\nu_{it}$ is the vaccination rate for group $i$ at time $t$.

This is because the vaccination rate nu ($\nu$) in a <vaccination> is defined as a fraction of the total number of individuals in each age group, $N_i$. This may be interpreted as the number of doses available for each age group on each day.

Models currently remove a fraction of all susceptibles as vaccinated, which results in fewer and fewer susceptibles being vaccinated in each timestep, which is not the expected behaviour.

In {epidemics}, we only allow susceptibles in the default model, and susceptibles and $V_1$ in the Vacamole model, to be vaccinated, allowing $N_i - V_{it}$ to be replaced by $S_{it}$ and $V_{1_{it}}$ for:

  • $S \rightarrow V$ in the default model; making $\delta S_V = - \nu_iN_i$
  • $S \rightarrow V_1$ and $V_1 \rightarrow V_2$ in the Vacamole model; making $\delta S_V1 = - \nu_{1}N$, and $\delta V_{1_{V2}} = - \nu_{2}N$ respectively. Note that second doses in the Vacamole model are also defined as a fraction of the full population.

Consequently, dynamic updating can be replaced by passing vaccination numbers ($\nu_iN_i$) rather than rates ($\nu_i$) to the C++ model code. This issue can thus be resolved by editing the appropriate .checK_prepare_args_*() functions for current and future models.

This issue might need to be revisited if the definition of a <vaccination> object changes.


See also this feedback from @BlackEdder in comments on #125:

... vaccination calendars are defined as the fraction of individuals in the full cohort vaccinated. That would lead to a rescaling to the effective vaccination rate: $\hat{\nu} = \nu (S_i +E_i + I_i + R_i + V_i) / (S_i + E_i + I_i + R_I)$ * interval, where $i$ represents the cohort in the population. $\hat{\nu}$ is then the rate of vaccinating $S_i$, while $\nu$ is the rate of vaccinating cohort $i$. Note that the above can be rewritten to the slightly simpler to understand form: $\nu N_i/(N_i - V_i)$

@pratikunterwegs pratikunterwegs added Bug Something isn't working ODE model Related to the ODE models in epidemics Vaccination Related to implementing vaccination labels Mar 18, 2024
@pratikunterwegs pratikunterwegs self-assigned this Mar 18, 2024
This was referenced Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working ODE model Related to the ODE models in epidemics Vaccination Related to implementing vaccination
Development

Successfully merging a pull request may close this issue.

1 participant