Adapting `{epinowcast}` to have a fixed reporting schedule

The problem: I have data that has a fixed reporting schedule (for example it is reported weekly on a Thursday). I want to use {#epinowcast} to nowcast the data and estimate the effective reproduction number.

The solution: {epinowcast} doesn’t yet support this functionality, but it is possible to adapt the package to do this.

Before doing this note that we also have the option of pretending we do not know the fixed reporting schedule and so need to learn it from the data. This should work but it will likely not be very efficient. If you want to try this load the default {epinowcast} model in main.R rather than the adapted one.

We can do this by hardcoding the reporting day effects (rep_beta) to be 0 (or a very small number in fact as on the logit scale). When combined with a reporting model that identifies days that aren’t the reporting day this will have the effect of encoding the reporting schedule in the model.

We could do better than this by modifying the likelihood to skip days with zero reports as these actually contain no information once the above change is in place. For this example we will not do this but this will be the approach taken once this feature is implemented in {epinowcast}.

Walkthrough of this here: GitHub - seabbs/epinowcast-fixed-reporting-example: An example of how to modify epinowcast to work with fixed reporting schedules.

You can get approximately this without adapting the package but performance won’t be as good. This will also soon be implemented in a flexible way that is more robust in the package (as this currently still fits to zeros we know are zero) in but I thought an example of how to modify would be nice.