epiverse-trace / cfr

R package to estimate disease severity and under-reporting in real-time, accounting for reporting delays in epidemic time-series
https://epiverse-trace.github.io/cfr/
Other
13 stars 3 forks source link

Statistically consistent way to handle E(known outcomes) < deaths #154

Open adamkucharski opened 4 months ago

adamkucharski commented 4 months ago

The current implementation in CFR is based on calculating E(known outcomes) to compare to totals deaths. However, in extreme examples, such as small outbreaks with a very high CFR (like Ebola in Yambuku in 1976), there can be occasionally situations where E(known outcomes) < deaths and hence the binomial likelihood calculation is not valid. In this situation the code currently returns NA to make the problem clear to the user.

In the longer-term, a more statistically consistent approach would be to integrate over the possible known outcomes, rather than just using the expectation. This would allow calculation on the plausible known outcomes < deaths and automatic omission of known outcomes > deaths. Something like the following: $E(CFR) = \sum_i P(\text{i known outcomes so far | cases, deaths}) E(\text{CFR | i known outcomes so far}) $