-
Notifications
You must be signed in to change notification settings - Fork 7
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
final_size()
should accept a vector of R0
#196
Comments
I'm not a fan of (1) as it's lossy. For simplicity, I would likely go with (2) but there could also be ...
I'd still lean toward (2) for the simplicity but could be nudged towards (3) and (4) if you thought this was something users would want. If you went with confidence intervals I'd consider adding upper/lower CI argument to function signature (with defaults). Tagging @Bisaloo / @chartgerink for whole system overview as would be good to land on a consistent approach (where possible) across whole ecosystem of packages. |
Thanks @TimTaylor - I think (2) is then the best option. (3) would make filtering and summarising (a bit) more tedious, while (4) would add a hard dependency. I think (2) works well for {finalsize} as the data.frame size is restricted to |
IMO if we move towards passing a list of susceptibility, p_susceptibility, or contact matrices similar to 'scenarios' in {epidemics}, a nested |
Thanks @TimTaylor for the tag. My main question is: What need does this solve for whom? I know there is an implicit need you know of. If we are doing agile development, a clearly articulated underlying user story makes it easier to meaningfully contribute. I have to fill in a lot of gaps now. In case the user story is more along the lines of "As a researcher, I want to provide multiple values of $R_0$, so that I can generate data in one function run that I can process further" I would opt for option 2. If the user story is more along the lines of "As a researcher, I want to model average estimates of final size given a set of $R_0$, so that I can use these estimates in policy papers directly" I would opt for option 1. If the need and benefit is completely different, I dunno what I'd prefer. PS: "Lossy" here means loss of information, like in compression algorithms @TimTaylor? |
In effect yep. Going from N outputs to 3 (lower, mean, upper) and then not being able to go the other way. |
@chartgerink the user requirement is laid out in this Discussion. This is updated in the issue text. Since the included code snippet also tends towards option (2), we'll provisionally go with that one. More generally, since our packages are relatively new and have few users (that I know of), we try to anticipate user requirements within dedicated discussion groups, and raise relevant issues. |
There is no urgency to implement it in a very short time frame. Please let's use a couple of days to let this important design decision simmer. This will allow us to calmly think about all the implications of all solutions and avoid potential implement/revert cycles in the future. |
That's fine by me - am I correct in understanding that this is mostly to do with the return type, or does this also relate to the inputs? If only the return, I can get working on the internal changes for now. No rush either way. |
Thanks for these suggestions. I agree that we should avoid (1) – in general, I don't think we should provide summary statistics as an output of a modular simulation model – if the user puts a vector of 10 In case useful, some common use cases I'd anticipate for this vector functionality in finalsize (and other packages):
Some of these are no doubt relevant to other packages too, so would be nice to have consistency for users across packages (e.g. if they've got some pipelines set up for {epidemics}, can just drop the |
Thanks, just to clarify (for myself mostly), in {finalsize}:
|
Personally, for above bullet point, as a user of a vectorised |
Thanks - there will be some differences with {epidemics} in terms of how vectors of parameters are passed then, as {finalsize} really focuses on |
This issue requests that$R_0$ in the argument
final_size()
should accept a vector ofr0
. This stems from this Discussion and parallels similar changes coming to {epidemics}.Two return type options I can think of:
I think option 1 is neat and compact, but happy to implement (2) or something else. Thoughts @adamkucharski, @TimTaylor?
The text was updated successfully, but these errors were encountered: