Implement code for final_size with susceptibility groups. This is the R-only equivalent of the Rcpp code in #39.
The idea here is to provide finalsize with a function exported to users, and with other internal functions and documentation, that allow the calculation of the final size of an epidemic in a population with heterogeneous mixing and also heterogeneous susceptibility to infection.
It would be very useful to test that errors / warnings / messages (currently, I think only errors) do happen when they are supposed to, with the correct message. See this for an example.
The initial proportions of each age group infected in final_size are hard coded to a numeric. Suggest instead a function argument that allows this proportion to be specified by the user. Could be a single value for all age groups or one per age group.
This issue addresses @thibautjombart in #19 (comment)
Not really an issue - should we start a discussion board?
Just to mention that some related (probably simpler) functionality to what I think is being implemented here is available at https://github.com/sbfnk/epimixr/blob/master/R/epidemic_age_dist.r - haven't looked yet in detail how the different methods are related but either way there might be useful code/inspiration there.
There are related functions there for estimating reproduction numbers and projecting immunity from seroprevalence/vaccination data. These could one day be brought under the same hat and/or linked up.
Final size is currently noted as pi in the code, which conflicts with R native pi value.
Mostly likely fine as I doubt you need $\pi$ the mathematical constant, but by calling this object pi you're overwriting the default constant loaded by R
Adding functionality to handle populations with non uniform distribution of susceptibilities in current finalsize function final_size in R.
This will add a p_susceptibility (or similar) argument to final_size.
End point is a function whose functionality is in line with the proposed final_size_cpp function whose underlying Cpp code already implements heterogenous susceptibility distributions across age groups.
Designing an output format for finalsize that is shared by outputs from the ODE-based simulations in the upcoming epidemics package. Implementation likely to be as S3 and may be moved to another package.
final_size returns final epidemic sizes of 0.0 for any prop_initial_infected (> 0.0) when r0 < 1.0. This is implausible as some individuals are already initially infected. The algorithm implemented here (most likely) does not work for r0 < 1.0, and final_size should stop when r0 < 1.0 is provided.
Structure the finalsize Cpp Newton solver code as a header in an include directory so that it can be called from other Rcpp projects similar to the BH (Boost Headers) package (which provides the Boost libraries as headers).