1. 01 Oct, 2020 2 commits
2. 27 Sep, 2020 1 commit
3. 25 Sep, 2020 2 commits
• Code tidy. · d247c771
Chris Jewell authored
• Refactored model specification · e52283b6
Chris Jewell authored
Changes:

1. Created a TFP JointDistribution to represent full probability model;
2. Renamed CovidUKStochastic --> DiscreteTimeStateTransitionModel;
3. DiscreteTimeStateTransitionModel now inherits from tfp.Distribution.
4. 23 Sep, 2020 1 commit
5. 11 Sep, 2020 1 commit
6. 05 Sep, 2020 1 commit
7. 04 Sep, 2020 1 commit
• Pulled dates out of CovidUKStochastic class · 588d479e
Chris Jewell authored
Changes:

1. Dates are pulled out of CovidUKStochastic
2. CovidUKStochastic now behaves more like a tfd.Distribution
* CovidUKStochastic is now instantiated with an initial time, number of time steps and
time step size
* CovidUKStochastic is now instantiated with the initial state.
8. 30 Aug, 2020 1 commit
• Corrected Add/Delete move bounds. · 71205807
Chris Jewell authored
Consider an SEIR model.  For adding $x \geq 0$ S->E event times we have:
$$S(t+1) &=& S(0) - (N_{se}(t) + x) \geq 0 \\ E(t+1) &=& E(0) + (N_{se}(t) + x) \geq 0$$
such that $x$ is bounded by
$$x \leq S(0) - N_{se}(t).$$

Similarly for adding $x \geq 0$ E->I event times we have:
$$x \leq E(0) + N_{se}(t) - N_{ei}(t).$$

For deleting $x \geq 0$ S->E event times we have:
$$x \leq E(0) + N_{se}(t) - N_{ei}(t)$$
and for E->I event times we have;
$$x \leq I(0) + N_{ei}(t) - N_{ir}(t).$$
9. 28 Aug, 2020 1 commit
10. 26 Aug, 2020 2 commits
• New initialisation method · 0c2498bd
Chris Jewell authored
Changes:

1. Previously, we initialised from the first imputed event at T-s, where s was random due
to the initialisation process;

2. We now calculate the state at time T given s (and the event imputation).
• New initialisation strategy · fe6bf084
Chris Jewell authored
11. 23 Aug, 2020 1 commit
• Corrected data misalignment · 2d0e3f80
Chris Jewell authored
Changes:

1. We adopt the convention [start, end) for *all* date ranges.
2. Modified PHE case ingestor to reflect this
3. Modified CovidUK to reflect this
4. Corrected a bug in the use of time in simulation.
12. 20 Aug, 2020 1 commit
13. 17 Aug, 2020 1 commit
14. 16 Aug, 2020 2 commits
• Modified logp to combine POEs and occults · 2bb80563
Chris Jewell authored
Introduced counting process respecting AddOccultsProposal.  This now check to make sure
we don't invalidate the epidemic by adding too many events.  To achieve this, we combine
occults and POEs into 1 structure.  This has the advantage of requiring less storage, but
is less easy to monitor occults separately from POEs.
• Corrected bug in commute volume handling · b4787e9b
Chris Jewell authored
15. 08 Aug, 2020 1 commit
16. 07 Aug, 2020 2 commits
• Implemented nested Gibbs sampling · b8a89f41
Chris Jewell authored
• Implemented kernel-ised Gibbs sampler · 7adf0699
Chris Jewell authored
Changes:

1. Implemented GibbsStep and GibbsKernel classes
2. Modified mcmc.sample function to use Gibbs sampler
3. Amended bugs in event_time_mh.py and occult_proposal.py (edge cases where tf.gathers
were overshooting the bounds of the data stuctures, not apparent on a GPU but raised on
CPU).
17. 01 Aug, 2020 2 commits
18. 30 Jul, 2020 1 commit
19. 24 Jul, 2020 1 commit
20. 22 Jul, 2020 1 commit
• Implemented LTLA-level COVID-19 model · 68b27bba
Chris Jewell authored
Changes:

1. Replaced 149 UTLAs with 315 LTLAs mixing matrix;
2. Wrote geometric initialisation for censored event times;
3. Modified data ingester to take PHE Anonymised Line Listing data.
21. 09 Jul, 2020 1 commit
22. 08 Jul, 2020 1 commit
Chris Jewell authored
Changes:

1. Added occult Metropolis Hastings update.
2. Factored out Categorical2 distribution for use by both event time move and occults.
3. Refactored mcmc.py script for HDF5 output purposes
4. Apply compression to HDF5 output file.
23. 05 Jul, 2020 3 commits
24. 04 Jul, 2020 2 commits
25. 29 Jun, 2020 1 commit
26. 28 Jun, 2020 3 commits
27. 27 Jun, 2020 2 commits
28. 26 Jun, 2020 1 commit
• Changed storage order of events matrix. · 0291aa34
Chris Jewell authored
Previously, the Events matrix expected by model.log_prob was ordered
[T, M, X] where T is the number of timpoints, M is the number of
meta-populations and X is the number of transitions.  However, it was
found more convenient to work with [M, T, X] for the purposes of data
augmentation.  This meant extra tf.transpose calls.

model.log_prob now expects [M, T, X], with any further batch
dimensions added as outer dimensions.