From 8ead934620f20605c24a46dcb3a8e3f978a59b7f Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Thu, 30 May 2024 15:36:09 -0600 Subject: [PATCH] All processes return tuple(array) with array length equal to . --- model/docs/example-with-datasets.qmd | 9 ++---- model/docs/getting-started.qmd | 5 ++- model/docs/pyrenew_demo.qmd | 1 - model/src/pyrenew/deterministic/process.py | 6 ++-- model/src/pyrenew/model/admissionsmodel.py | 23 ++++++++++++-- .../pyrenew/model/rtinfectionsrenewalmodel.py | 29 ++++++++++++++++-- model/src/pyrenew/process/ar.py | 4 ++- .../src/pyrenew/process/firstdifferencear.py | 1 + model/src/pyrenew/process/rtrandomwalk.py | 1 + model/src/pyrenew/process/simplerandomwalk.py | 3 +- .../baseline/test_model_basicrenewal_plot.png | Bin 55531 -> 40579 bytes model/src/test/test_deterministic.py | 4 +-- model/src/test/test_first_difference_ar.py | 8 +++-- model/src/test/test_model_hospitalizations.py | 10 +++--- model/src/test/test_random_walk.py | 11 +++++-- 15 files changed, 83 insertions(+), 32 deletions(-) diff --git a/model/docs/example-with-datasets.qmd b/model/docs/example-with-datasets.qmd index e8706469..6815ebf8 100644 --- a/model/docs/example-with-datasets.qmd +++ b/model/docs/example-with-datasets.qmd @@ -198,11 +198,11 @@ import matplotlib.pyplot as plt fig, axs = plt.subplots(1, 2) # Rt plot -axs[0].plot(range(0, timeframe + 1), sim_data.Rt) +axs[0].plot(range(0, timeframe), sim_data.Rt) axs[0].set_ylabel('Rt') # Infections plot -axs[1].plot(range(0, timeframe + 1), sim_data.sampled_admissions) +axs[1].plot(range(0, timeframe), sim_data.sampled_admissions) axs[1].set_ylabel('Infections') axs[1].set_yscale('log') @@ -214,7 +214,7 @@ plt.show() ## Fitting the model -We can fit the model to the data. We will use the `run` method of the model object. The two inputs this model requires are `n_timepoints` and `observed_admissions` +We can fit the model to the data. We will use the `run` method of the model object: ```{python} @@ -224,7 +224,6 @@ import jax hosp_model.run( num_samples=2000, num_warmup=2000, - n_timepoints=dat.shape[0] - 1, observed_admissions=dat["daily_hosp_admits"].to_numpy(), rng_key=jax.random.PRNGKey(54), mcmc_args=dict(progress_bar=False), @@ -263,7 +262,6 @@ dat_w_padding = np.hstack((np.repeat(np.nan, days_to_impute), dat_w_padding)) hosp_model.run( num_samples=2000, num_warmup=2000, - n_timepoints=dat_w_padding.shape[0] - 1, observed_admissions=dat_w_padding, rng_key=jax.random.PRNGKey(54), mcmc_args=dict(progress_bar=False), @@ -361,7 +359,6 @@ Running the model (with the same padding as before): hosp_model_weekday.run( num_samples=2000, num_warmup=2000, - n_timepoints=dat_w_padding.shape[0] - 1, observed_admissions=dat_w_padding, rng_key=jax.random.PRNGKey(54), mcmc_args=dict(progress_bar=False), diff --git a/model/docs/getting-started.qmd b/model/docs/getting-started.qmd index ece4ee8a..1f280545 100644 --- a/model/docs/getting-started.qmd +++ b/model/docs/getting-started.qmd @@ -154,11 +154,11 @@ import matplotlib.pyplot as plt fig, axs = plt.subplots(1, 2) # Rt plot -axs[0].plot(range(0, 31), sim_data.Rt) +axs[0].plot(range(0, len(sim_data.Rt)), sim_data.Rt) axs[0].set_ylabel('Rt') # Infections plot -axs[1].plot(range(0, 31), sim_data.sampled_infections) +axs[1].plot(range(0, len(sim_data.Rt)), sim_data.sampled_infections) axs[1].set_ylabel('Infections') fig.suptitle('Basic renewal model') @@ -177,7 +177,6 @@ model1.run( num_warmup=2000, num_samples=1000, observed_infections=sim_data.sampled_infections, - n_timepoints = len(sim_data[1])-1, rng_key=jax.random.PRNGKey(54), mcmc_args=dict(progress_bar=False), ) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index a64c5fcb..4dffed2b 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -161,7 +161,6 @@ hospmodel.run( num_warmup=1000, num_samples=1000, observed_admissions=x.sampled_admissions, - n_timepoints = len(x.sampled_admissions)-1, rng_key=jax.random.PRNGKey(54), mcmc_args=dict(progress_bar=False), ) diff --git a/model/src/pyrenew/deterministic/process.py b/model/src/pyrenew/deterministic/process.py index 495830ef..ded8cea6 100644 --- a/model/src/pyrenew/deterministic/process.py +++ b/model/src/pyrenew/deterministic/process.py @@ -13,7 +13,7 @@ class DeterministicProcess(DeterministicVariable): def sample( self, - n_timepoints: int, + duration: int, **kwargs, ) -> tuple: """ @@ -34,9 +34,9 @@ def sample( res, *_ = super().sample(**kwargs) - dif = n_timepoints - res.shape[0] + dif = duration - res.shape[0] if dif > 0: return (jnp.hstack([res, jnp.repeat(res[-1], dif)]),) - return (res[:n_timepoints],) + return (res[:duration],) diff --git a/model/src/pyrenew/model/admissionsmodel.py b/model/src/pyrenew/model/admissionsmodel.py index 55cdd58c..01bf4660 100644 --- a/model/src/pyrenew/model/admissionsmodel.py +++ b/model/src/pyrenew/model/admissionsmodel.py @@ -184,7 +184,7 @@ def sample_admissions_process( def sample( self, - n_timepoints: int, + n_timepoints: int | None = None, observed_admissions: ArrayLike | None = None, padding: int = 0, **kwargs, @@ -194,7 +194,7 @@ def sample( Parameters ---------- - n_timepoints : int + n_timepoints : int, optional Number of timepoints to sample (passed to the basic renewal model). observed_admissions : ArrayLike, optional The observed hospitalization data (passed to the basic renewal @@ -206,6 +206,12 @@ def sample( Additional keyword arguments passed through to internal sample() calls, should there be any. + Notes + ----- + When `observed_admissions` is None, `n_timepoints` must be specified. + If both are specified, they must have the same length, otherwise an + exception is raised. + Returns ------- HospModelSample @@ -217,6 +223,19 @@ def sample( sample_observed_admissions : For sampling observed hospital admissions """ + if n_timepoints is None: + if observed_admissions is not None: + n_timepoints = len(observed_admissions) + else: + raise ValueError( + "n_timepoints must be specified if observed_admissions is None" + ) + elif observed_admissions is not None: + if n_timepoints != len(observed_admissions): + raise ValueError( + "n_timepoints must match length of observed_admissions" + ) + # Getting the initial quantities from the basic model basic_model = self.basic_renewal.sample( n_timepoints=n_timepoints, diff --git a/model/src/pyrenew/model/rtinfectionsrenewalmodel.py b/model/src/pyrenew/model/rtinfectionsrenewalmodel.py index 4d161d42..cc1722b4 100644 --- a/model/src/pyrenew/model/rtinfectionsrenewalmodel.py +++ b/model/src/pyrenew/model/rtinfectionsrenewalmodel.py @@ -32,7 +32,11 @@ class RtInfectionsRenewalSample(NamedTuple): sampled_infections: ArrayLike | None = None def __repr__(self): - return f"RtInfectionsRenewalSample(Rt={self.Rt}, latent_infections={self.latent_infections}, sampled_infections={self.sampled_infections})" + return ( + f"RtInfectionsRenewalSample(Rt={self.Rt}, " + f"latent_infections={self.latent_infections}, " + f"sampled_infections={self.sampled_infections})" + ) class RtInfectionsRenewalModel(Model): @@ -246,7 +250,7 @@ def sample_infections_obs( def sample( self, - n_timepoints: int, + n_timepoints: int | None = None, observed_infections: ArrayLike | None = None, padding: int = 0, **kwargs, @@ -256,7 +260,7 @@ def sample( Parameters ---------- - n_timepoints : int + n_timepoints : int, optional Number of timepoints to sample. observed_infections : ArrayLike | None, optional Observed infections. Defaults to None. @@ -267,11 +271,30 @@ def sample( Additional keyword arguments passed through to internal sample() calls, if any + Notes + ----- + When `observed_admissions` is None, `n_timepoints` must be specified. + If both are specified, they must have the same length, otherwise an + exception is raised. + Returns ------- RtInfectionsRenewalSample """ + if n_timepoints is None: + if observed_infections is not None: + n_timepoints = len(observed_infections) + else: + raise ValueError( + "n_timepoints or observed_infections must be provided." + ) + elif observed_infections is not None: + if n_timepoints != len(observed_infections): + raise ValueError( + "n_timepoints and observed_infections must have the same length." + ) + # Sampling from Rt (possibly with a given Rt, depending on # the Rt_process (RandomVariable) object.) Rt, *_ = self.sample_rt( diff --git a/model/src/pyrenew/process/ar.py b/model/src/pyrenew/process/ar.py index 13dd1351..9b7e7e31 100644 --- a/model/src/pyrenew/process/ar.py +++ b/model/src/pyrenew/process/ar.py @@ -71,6 +71,7 @@ def sample( Returns ------- tuple + With a single array of shape (duration,). """ order = self.autoreg.shape[0] if inits is None: @@ -85,7 +86,8 @@ def _ar_scanner(carry, next): # numpydoc ignore=GL08 return new_carry, new_term noise = numpyro.sample( - name + "_noise", dist.Normal(0, self.noise_sd).expand((duration,)) + name + "_noise", + dist.Normal(0, self.noise_sd).expand((duration - inits.size,)), ) last, ts = lax.scan(_ar_scanner, inits - self.mean, noise) diff --git a/model/src/pyrenew/process/firstdifferencear.py b/model/src/pyrenew/process/firstdifferencear.py index b4eab4c0..988cb4d1 100644 --- a/model/src/pyrenew/process/firstdifferencear.py +++ b/model/src/pyrenew/process/firstdifferencear.py @@ -65,6 +65,7 @@ def sample( Returns ------- tuple + With a single array of shape (duration,). """ rocs, *_ = self.rate_of_change_proc.sample( duration, inits=init_rate_of_change, name=name + "_rate_of_change" diff --git a/model/src/pyrenew/process/rtrandomwalk.py b/model/src/pyrenew/process/rtrandomwalk.py index 3b61d9e6..08a2d23f 100644 --- a/model/src/pyrenew/process/rtrandomwalk.py +++ b/model/src/pyrenew/process/rtrandomwalk.py @@ -108,6 +108,7 @@ def sample( Returns ------- tuple + With a single array of shape (duration,). """ Rt0 = npro.sample("Rt0", self.Rt0_dist) diff --git a/model/src/pyrenew/process/simplerandomwalk.py b/model/src/pyrenew/process/simplerandomwalk.py index 4c0ba773..ef506237 100644 --- a/model/src/pyrenew/process/simplerandomwalk.py +++ b/model/src/pyrenew/process/simplerandomwalk.py @@ -57,12 +57,13 @@ def sample( Returns ------- tuple + With a single array of shape (duration,). """ if init is None: init = npro.sample(name + "_init", self.error_distribution) diffs = npro.sample( - name + "_diffs", self.error_distribution.expand((duration,)) + name + "_diffs", self.error_distribution.expand((duration - 1,)) ) return (init + jnp.cumsum(jnp.pad(diffs, [1, 0], constant_values=0)),) diff --git a/model/src/test/baseline/test_model_basicrenewal_plot.png b/model/src/test/baseline/test_model_basicrenewal_plot.png index c1ddb461dcabc0a33e7b0903aec4e4d674442533..cf20bd42f612da3600c42347db91164ea46be25e 100644 GIT binary patch literal 40579 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 literal 55531 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 diff --git a/model/src/test/test_deterministic.py b/model/src/test/test_deterministic.py index b59dfdd1..22f84b22 100644 --- a/model/src/test/test_deterministic.py +++ b/model/src/test/test_deterministic.py @@ -42,12 +42,12 @@ def test_deterministic(): jnp.array([0.25, 0.25, 0.2, 0.3]), ) testing.assert_array_equal( - var3.sample(n_timepoints=5)[0], + var3.sample(duration=5)[0], jnp.array([1, 2, 3, 4, 4]), ) testing.assert_array_equal( - var3.sample(n_timepoints=3)[0], + var3.sample(duration=3)[0], jnp.array( [ 1, diff --git a/model/src/test/test_first_difference_ar.py b/model/src/test/test_first_difference_ar.py index 09e18bc2..b6378f87 100755 --- a/model/src/test/test_first_difference_ar.py +++ b/model/src/test/test_first_difference_ar.py @@ -18,9 +18,13 @@ def test_fd_ar_can_be_sampled(): with numpyro.handlers.seed(rng_seed=62): # can sample with and without inits # for the rate of change - ar_fd.sample(3532, init_val=jnp.array([50.0])) - ar_fd.sample( + ans0 = ar_fd.sample(3532, init_val=jnp.array([50.0])) + ans1 = ar_fd.sample( 3532, init_val=jnp.array([50.0]), init_rate_of_change=jnp.array([0.25]), ) + + # Checking proper shape + assert ans0[0].shape == (3532,) + assert ans1[0].shape == (3532,) diff --git a/model/src/test/test_model_hospitalizations.py b/model/src/test/test_model_hospitalizations.py index e0314639..9ce0d38c 100644 --- a/model/src/test/test_model_hospitalizations.py +++ b/model/src/test/test_model_hospitalizations.py @@ -196,7 +196,6 @@ def test_model_hosp_with_obs_model(): num_samples=500, rng_key=jax.random.PRNGKey(272), observed_admissions=model1_samp.sampled_admissions, - n_timepoints=30, ) inf = model1.spread_draws(["predicted_admissions"]) @@ -286,7 +285,6 @@ def test_model_hosp_with_obs_model_weekday_phosp_2(): num_samples=500, rng_key=jax.random.PRNGKey(272), observed_admissions=model1_samp.sampled_admissions, - n_timepoints=30, ) inf = model1.spread_draws(["predicted_admissions"]) @@ -307,6 +305,7 @@ def test_model_hosp_with_obs_model_weekday_phosp(): """ gen_int = DeterministicPMF(jnp.array([0.25, 0.25, 0.25, 0.25])) + n_obs_to_generate = 30 I0 = DistributionalRV(dist=dist.LogNormal(0, 1), name="I0") @@ -343,7 +342,7 @@ def test_model_hosp_with_obs_model_weekday_phosp(): weekday = jnp.array([1, 1, 1, 1, 2, 2]) weekday = jnp.tile(weekday, 10) weekday = weekday / weekday.sum() - weekday = weekday[:31] + weekday = weekday[:n_obs_to_generate] weekday = DeterministicVariable(weekday) @@ -351,7 +350,7 @@ def test_model_hosp_with_obs_model_weekday_phosp(): hosp_report_prob_dist = jnp.tile(hosp_report_prob_dist, 10) hosp_report_prob_dist = hosp_report_prob_dist / hosp_report_prob_dist.sum() - hosp_report_prob_dist = hosp_report_prob_dist[:31] + hosp_report_prob_dist = hosp_report_prob_dist[:n_obs_to_generate] hosp_report_prob_dist = DeterministicVariable(vars=hosp_report_prob_dist) @@ -376,7 +375,7 @@ def test_model_hosp_with_obs_model_weekday_phosp(): # Sampling and fitting model 0 (with no obs for infections) np.random.seed(223) with npro.handlers.seed(rng_seed=np.random.randint(1, 600)): - model1_samp = model1.sample(n_timepoints=30) + model1_samp = model1.sample(n_timepoints=n_obs_to_generate) obs = jnp.hstack( [jnp.repeat(jnp.nan, 5), model1_samp.sampled_admissions[5:]] @@ -388,7 +387,6 @@ def test_model_hosp_with_obs_model_weekday_phosp(): num_samples=500, rng_key=jax.random.PRNGKey(272), observed_admissions=obs, - n_timepoints=30, padding=5, ) diff --git a/model/src/test/test_random_walk.py b/model/src/test/test_random_walk.py index 14ffe623..8be3c35e 100755 --- a/model/src/test/test_random_walk.py +++ b/model/src/test/test_random_walk.py @@ -16,8 +16,12 @@ def test_rw_can_be_sampled(): with numpyro.handlers.seed(rng_seed=62): # can sample with and without inits - rw_normal.sample(3532, init=jnp.array([50.0])) - rw_normal.sample(5023) + ans0 = rw_normal.sample(3532, init=jnp.array([50.0])) + ans1 = rw_normal.sample(5023) + + # check that the samples are of the right shape + assert ans0[0].shape == (3532,) + assert ans1[0].shape == (5023,) def test_rw_samples_correctly_distributed(): @@ -35,6 +39,9 @@ def test_rw_samples_correctly_distributed(): with numpyro.handlers.seed(rng_seed=62): samples, *_ = rw_normal.sample(n_samples, init=init_arr) + # Checking the shape + assert samples.shape == (n_samples,) + # diffs should not be greater than # 4 sigma diffs = jnp.diff(samples)