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

Bounded population size as default #244

Closed
SamuelBrand1 opened this issue May 30, 2024 · 4 comments · Fixed by #245
Closed

Bounded population size as default #244

SamuelBrand1 opened this issue May 30, 2024 · 4 comments · Fixed by #245
Labels
enhancement New feature or request EpiAware

Comments

@SamuelBrand1
Copy link
Collaborator

          Another more radical possibility is that we accept that having models that _can_ sample > `1e17` infections (which is easier to do in unbounded pops than one might expect due to RW $\log R_t$ and the magic of exponential growth) are bad and enforce a max population size. Then these warm up phase problems should disappear in a more principled way.

Originally posted by @SamuelBrand1 in #237 (comment)

We haven't done this because we are much more focused on other factors in the analysis, but it would help the sampling during edge cases in warm up.

@seabbs
Copy link
Collaborator

seabbs commented May 30, 2024

I don't think we should have this as a default but I do think we should have a clear path to making this a composable feature and other similar ideas like feedbacking Rt based on incidence etc that proxy this.

In my head this would either be a generalisation of the current Renewal infection model to multiple more complex types or it would be making this somehow specifiable in the way we are handling latent models and observation models. The tricky bit here is that you need to loop over infections to do this in most (nearly all?) cases and so nesting models based on vector passing is tricky

@seabbs seabbs added enhancement New feature or request EpiAware labels May 30, 2024
@SamuelBrand1
Copy link
Collaborator Author

I don't think we should have this as a default but I do think we should have a clear path to making this a composable feature and other similar ideas like feedbacking Rt based on incidence etc that proxy this.

In my head this would either be a generalisation of the current Renewal infection model to multiple more complex types or it would be making this somehow specifiable in the way we are handling latent models and observation models. The tricky bit here is that you need to loop over infections to do this in most (nearly all?) cases and so nesting models based on vector passing is tricky

My vote is for generalisation of the infection generating process (igp) model. I think we set the behaviour of the igp by the type, then it has its own callable for generating the infections. The trick here is to create an abstract Renewal type for generate_latent_infs to dispatch on with the specific renewal models (e.g. no population, infection reduced by fraction of remaining pop, recent feedback) behaviour in the callable.

@seabbs
Copy link
Collaborator

seabbs commented May 30, 2024

My concern here is what happens when we have lots of features we might want to stack. Do we right special cases for all of them or do we have some notation of another internal submodel where we can stack these things?

@seabbs
Copy link
Collaborator

seabbs commented May 31, 2024

After this PR my concerns remain about stacking multiple processes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request EpiAware
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants