Skip to content
Draft
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
9c199ae
Add GP() and RW() time-varying parameter constructors
sbfnk-bot Jun 16, 2026
c0989ab
Extract reusable update_process() from update_Rt
sbfnk-bot Jun 16, 2026
b78de9d
Add time-varying ascertainment via random walk
sbfnk-bot Jun 16, 2026
975210e
Add Gaussian process variant for time-varying parameters
sbfnk-bot Jun 16, 2026
f1760ab
Generalise time-varying states and add time-varying overdispersion
sbfnk-bot Jun 16, 2026
886862a
Add init anchor for random-walk time-varying states
sbfnk-bot Jun 17, 2026
52425ac
Make report observation functions take vector overdispersion
sbfnk-bot Jun 17, 2026
fdf034b
Support init anchor for Gaussian process states
sbfnk-bot Jun 17, 2026
4b9b006
Release 1.9.0 (#1438)
sbfnk-bot Jun 17, 2026
e1bd810
Increment version number to 1.9.0.9000
sbfnk Jun 17, 2026
f14c27d
Hold time-varying parameters fixed through the forecast horizon
sbfnk-bot Jun 17, 2026
19f9f69
Add param_spec superclass shared by dist_spec and state_spec
sbfnk-bot Jun 17, 2026
e7e3abe
Accept a param_spec Rt prior in rt_opts
sbfnk-bot Jun 17, 2026
73c8ad4
Express Rt as a state on R0, retiring update_Rt
sbfnk-bot Jun 17, 2026
50f1877
Merge remote-tracking branch 'origin/main' into worktree-time-varying…
sbfnk-bot Jun 17, 2026
377081e
Deprecate Rt breakpoints in favour of a random-walk prior
sbfnk-bot Jun 17, 2026
209160a
Limit time-varying parameters to Rt for now
sbfnk-bot Jun 17, 2026
2bea13f
Rename the Rt state parameter from R0 to R
sbfnk-bot Jun 17, 2026
b301156
Regenerate documentation for time-varying parameter framework
sbfnk-bot Jun 17, 2026
45dd24e
Express back-calculation infections as a latent infections state
sbfnk-bot Jun 17, 2026
ad45d2d
Consolidate Gaussian process options into GP() and retire the gp argu…
sbfnk-bot Jun 17, 2026
91a091b
Align simulation, forecasting and extraction with the state parameters
sbfnk-bot Jun 17, 2026
442791f
Update vignettes for the GP()/RW() time-varying parameter interface
sbfnk-bot Jun 17, 2026
50cb289
Add a plot method for GP() and RW() prior-predictive trajectories
sbfnk-bot Jun 17, 2026
90009a0
Add a period argument to RW() for out-of-step random walks
sbfnk-bot Jun 17, 2026
7e5948e
Re-render vignettes for the time-varying parameter interface
sbfnk-bot Jun 18, 2026
2a9940b
Deprecate the gp_on argument of rt_opts()
sbfnk-bot Jun 18, 2026
51b10fd
Re-render prior choice vignette after gp_on deprecation
sbfnk-bot Jun 18, 2026
14cbe91
Reuse computed state trajectories for init-anchor priors
sbfnk-bot Jun 18, 2026
170facb
fix ci: add state topic to pkgdown reference index
sbfnk-bot Jun 18, 2026
ff514d7
fix ci: lint changed files (line length, object names, commented code)
sbfnk-bot Jun 18, 2026
1968e3f
Update documentation
epiforecasts-workflows[bot] Jun 18, 2026
337abe8
Merge remote-tracking branch 'origin/main' into HEAD
sbfnk-bot Jun 26, 2026
d86144f
Add future option to GP()/RW() and streamline state trajectory functions
sbfnk-bot Jun 30, 2026
ce2d6ec
Merge remote-tracking branch 'origin/worktree-time-varying-params' in…
sbfnk-bot Jun 30, 2026
ab99196
Update documentation
epiforecasts-workflows[bot] Jun 30, 2026
c2ff0b1
Add tests for time-varying state trajectory functions
sbfnk-bot Jun 30, 2026
a64690a
Name time-varying parameter trajectories without a _traj suffix
sbfnk-bot Jun 30, 2026
de39e95
Merge remote-tracking branch 'origin/worktree-time-varying-params' in…
sbfnk-bot Jun 30, 2026
f46fa12
Support future = estimate for time-varying states
sbfnk-bot Jun 30, 2026
d459df5
Update documentation
epiforecasts-workflows[bot] Jun 30, 2026
5b1d8d2
Give each time-varying state its own GP basis and forecast window
sbfnk-bot Jun 30, 2026
a4c7010
Merge remote-tracking branch 'origin/worktree-time-varying-params' in…
sbfnk-bot Jun 30, 2026
c32b9c7
Remove dormant init-prior scaffolding superseded by the state framewo…
sbfnk-bot Jul 20, 2026
4bc10d9
Merge remote-tracking branch 'origin/main' into worktree-time-varying…
sbfnk-bot Jul 22, 2026
05371ed
Merge remote-tracking branch 'origin/main' into worktree-time-varying…
sbfnk-bot Aug 25, 2026
0501229
Update documentation
epiforecasts-workflows[bot] Aug 25, 2026
b35ec20
fix ci: remove redundant namespace qualification
sbfnk-bot Aug 25, 2026
4379681
Update documentation
epiforecasts-workflows[bot] Aug 25, 2026
0012ef0
fix ci: qualify rbindlist in opts_list example
sbfnk-bot Aug 25, 2026
9416634
address review: drop time-varying scale mention from obs_opts
sbfnk-bot Aug 25, 2026
ed19587
Merge remote-tracking branch 'origin/main' into worktree-time-varying…
sbfnk Sep 2, 2026
a022bc1
Recognise distspec dist_spec objects as parameter specs
sbfnk Sep 2, 2026
d0c1df3
Update documentation
epiforecasts-workflows[bot] Sep 2, 2026
b7d0d5b
Guard zero-length draw when all parameters are fixed
sbfnk Sep 2, 2026
760caa8
Remove unused make_init_priors helper
sbfnk Sep 2, 2026
3300f16
Honour prior truncation bounds for time-varying state hyperparameters
sbfnk Sep 2, 2026
27bd7dc
Bound state hyperparameter inits by their prior truncation
sbfnk Sep 3, 2026
7e47dfd
Guard growth-rate functions against insufficient data explicitly
sbfnk Sep 3, 2026
08f278f
Correct off-by-one in growth infectiousness guard
sbfnk Sep 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ S3method(plot,estimate_secondary)
S3method(plot,estimate_truncation)
S3method(plot,forecast_infections)
S3method(plot,forecast_secondary)
S3method(plot,state_spec)
S3method(print,epinowfit)
S3method(print,state_spec)
S3method(print,summary.estimate_dist)
S3method(print,summary.estimate_truncation)
S3method(scoringutils::as_forecast_sample,epinow)
Expand All @@ -40,10 +42,12 @@ S3method(summary,forecast_infections)
export(Dirichlet)
export(Exp)
export(Fixed)
export(GP)
export(Gamma)
export(LogNormal)
export(NonParametric)
export(Normal)
export(RW)
export(R_to_growth)
export(Weibull)
export(add_breakpoints)
Expand Down Expand Up @@ -164,7 +168,6 @@ importFrom(data.table,
dcast,
fcase,
fifelse,
frollmean,
frollsum,
fwrite,
getDTthreads,
Expand Down Expand Up @@ -266,7 +269,6 @@ importFrom(rstan,
summary,
vb
)
importFrom(runner,mean_run)
importFrom(scales,comma)
importFrom(stats,
aggregate,
Expand Down
21 changes: 21 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,27 @@

## New features

- Added an experimental interface for declaring time-varying model parameters: the `GP()` (approximate Gaussian process) and `RW()` (random walk) constructors. Each takes a prior on either the value the parameter reverts to (`mean`, a mean-reverting state) or its initial value (`init`, a state on first differences), the relevant Gaussian process settings (`ls`, `alpha`, `kernel`, `basis_prop`, and so on), and a `future` argument that sets what the parameter does over the forecast horizon: `"latest"` holds the last estimated value flat, `"project"` keeps it varying, `"estimate"` holds it from a seeding time before the end of the data, or an integer fixes it from a chosen point. `estimate_infections()` uses this interface for the reproduction number, so `rt_opts(prior = ...)` takes a constant value or a `GP()`/`RW()` state.
- The back-calculation (non-mechanistic) model represents latent infections through the same interface, as a Gaussian process on the log scale anchored at an initial value, set with `backcalc_opts(prior = GP(...))`. This replaces the earlier deconvolution of smoothed, shifted reported cases.
- Added a `plot()` method for `GP()`/`RW()` specifications that draws prior-predictive trajectories, so you can see what a prior implies before fitting.

## Deprecations

- The `rw` argument and breakpoints (`use_breakpoints` / the data `breakpoint` column) of `rt_opts()` are deprecated; specify a random-walk Rt with `rt_opts(prior = RW(...))`. A step interval is set with `RW(period = ...)`, so the previous `rw = 7` is now `RW(period = 7)`.
- `gp_opts()` is deprecated; supply Gaussian process settings directly to `GP()`.
- The `gp_on` argument of `rt_opts()` is deprecated; choose a mean-reverting (stationary) or first-difference Gaussian process with `rt_opts(prior = GP(mean = ...))` or `rt_opts(prior = GP(init = ...))`.
- The `future` argument of `rt_opts()` is deprecated; set the forecast-horizon behaviour on the Rt prior, e.g. `rt_opts(prior = GP(..., future = "project"))`.
- The `gp` argument of `estimate_infections()`, `epinow()`, and `regional_epinow()` is deprecated; configure the Gaussian process through the model prior (`rt_opts(prior = GP(...))` or `backcalc_opts(prior = GP(...))`).
- The `prior_window` argument of `backcalc_opts()` is deprecated, and its `prior` argument now takes a `GP()` specification rather than a character string.

## Model changes

- Retired the shared "main" Gaussian process used by the back-calculation model along with its supporting machinery (the deconvolution step and the smoothed shifted-case prior). Both the renewal and back-calculation models now build their Gaussian processes through the single time-varying state implementation.

# EpiNow2 1.9.0

## New features

- Added support for all `dist_spec` delay families and `obs_opts()` observation model selection (Poisson or negative binomial) to `estimate_truncation()`. The existing observation model functions (`report_lp`, `report_rng`) are now reused internally.
- Wired the `likelihood` and `return_likelihood` settings of `obs_opts()` through `estimate_truncation()` so that prior-only fits and `loo`-compatible log-likelihood output are available, matching `estimate_infections()` and `estimate_secondary()`.
- Added a `noise` argument to `estimate_truncation()` that takes a `dist_spec` controlling the additive noise term, replacing the previously hardcoded `sigma ~ normal(0, 1) T[0,]`.
Expand Down
Loading
Loading