Skip to contents
library(epidp)
library(ggplot2)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(magrittr)
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names
library(tidyr)
#> 
#> Attaching package: 'tidyr'
#> The following object is masked from 'package:magrittr':
#> 
#>     extract
options(mc.cores = 4)

In this document, we explore how the incorporation of covariate information affects estimation of RtR_t.

Added Gaussian noise around a sinusoidal covariate-driven mean RtR_t

# define sinusoidal Rt with noise
rt_fun <- function(t, x) {
  x[1] * exp(x[2])
}
nt <- 200
t <- 1:nt
f <- 1.3 + 1.2 * sin(4 * (pi / 180) * t)
g <- vector(length = nt)
g[1] <- rnorm(1, 0, 1)
rho <- 0.8
for (i in 2:length(g)) {
  g[i] <- rho * g[i - 1] + rnorm(1, 0, 0.1)
}
X <- matrix(c(f, g), nrow = length(f), ncol = 2)

# simulation parameters
mean_si <- 6.5
sd_si <- 4.03
i_0 <- 10

# data frame of outputs
epidemic_df <- simulate_renewal_epidemic(rt_fun, nt, mean_si, sd_si, i_0, X)

# plot
epidemic_df %>%
  mutate(f = f) %>%
  select(-c(w_dist, lambda_t)) %>%
  pivot_longer(c(R_t, f)) %>%
  ggplot(aes(x = t, y = value, colour = name)) +
  geom_line() +
  scale_y_continuous(
    name = "Incidence (i_t)",
    sec.axis = sec_axis(~ . / 1000, name = "Reproduction Number (R_t)")
  ) +
  labs(x = "Time", colour = "Variable") +
  theme_minimal()

We first try to estimate RtR_t without covariate information. We now use a Stan version of EpiFilter to estimate the RtR_t profile.

# fit model
fit <- fit_epifilter(
  N = length(epidemic_df$i_t),
  C = epidemic_df$i_t,
  w = epidemic_df$w_dist,
  iter = 200,
  chains = 1 # to pass CRAN
)
#> 
#> SAMPLING FOR MODEL 'epifilter' NOW (CHAIN 1).
#> Chain 1: 
#> Chain 1: Gradient evaluation took 0.004281 seconds
#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 42.81 seconds.
#> Chain 1: Adjust your expectations accordingly!
#> Chain 1: 
#> Chain 1: 
#> Chain 1: WARNING: There aren't enough warmup iterations to fit the
#> Chain 1:          three stages of adaptation as currently configured.
#> Chain 1:          Reducing each adaptation stage to 15%/75%/10% of
#> Chain 1:          the given number of warmup iterations:
#> Chain 1:            init_buffer = 15
#> Chain 1:            adapt_window = 75
#> Chain 1:            term_buffer = 10
#> Chain 1: 
#> Chain 1: Iteration:   1 / 200 [  0%]  (Warmup)
#> Chain 1: Iteration:  20 / 200 [ 10%]  (Warmup)
#> Chain 1: Iteration:  40 / 200 [ 20%]  (Warmup)
#> Chain 1: Iteration:  60 / 200 [ 30%]  (Warmup)
#> Chain 1: Iteration:  80 / 200 [ 40%]  (Warmup)
#> Chain 1: Iteration: 100 / 200 [ 50%]  (Warmup)
#> Chain 1: Iteration: 101 / 200 [ 50%]  (Sampling)
#> Chain 1: Iteration: 120 / 200 [ 60%]  (Sampling)
#> Chain 1: Iteration: 140 / 200 [ 70%]  (Sampling)
#> Chain 1: Iteration: 160 / 200 [ 80%]  (Sampling)
#> Chain 1: Iteration: 180 / 200 [ 90%]  (Sampling)
#> Chain 1: Iteration: 200 / 200 [100%]  (Sampling)
#> Chain 1: 
#> Chain 1:  Elapsed Time: 14.703 seconds (Warm-up)
#> Chain 1:                13.381 seconds (Sampling)
#> Chain 1:                28.084 seconds (Total)
#> Chain 1:
#> Warning in validityMethod(object): The following variables have undefined
#> values: log_likelihood[1]. Many subsequent functions will not work correctly.
#> Warning: The largest R-hat is NA, indicating chains have not mixed.
#> Running the chains for more iterations may help. See
#> https://mc-stan.org/misc/warnings.html#r-hat
#> Warning: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable.
#> Running the chains for more iterations may help. See
#> https://mc-stan.org/misc/warnings.html#bulk-ess
#> Warning: Tail Effective Samples Size (ESS) is too low, indicating posterior variances and tail quantiles may be unreliable.
#> Running the chains for more iterations may help. See
#> https://mc-stan.org/misc/warnings.html#tail-ess

# look at MCMC summaries
print(fit, c("sigma", "R"))
#> Inference for Stan model: epifilter.
#> 1 chains, each with iter=200; warmup=100; thin=1; 
#> post-warmup draws per chain=100, total post-warmup draws=100.
#> 
#>        mean se_mean   sd 2.5%  25%  50%  75% 97.5% n_eff Rhat
#> sigma  0.18    0.00 0.02 0.15 0.17 0.18 0.19  0.22    18 1.02
#> R[1]   1.09    0.06 0.43 0.44 0.77 1.05 1.35  1.99    56 1.00
#> R[2]   1.11    0.04 0.40 0.48 0.81 1.08 1.34  1.94    88 1.00
#> R[3]   1.11    0.04 0.36 0.51 0.85 1.06 1.36  1.90    83 0.99
#> R[4]   1.07    0.04 0.34 0.54 0.81 1.06 1.27  1.96    85 1.00
#> R[5]   1.04    0.03 0.29 0.62 0.81 1.04 1.22  1.75    77 1.03
#> R[6]   1.06    0.03 0.29 0.62 0.83 1.02 1.26  1.71    69 1.03
#> R[7]   1.06    0.03 0.28 0.62 0.87 1.03 1.25  1.62    83 1.04
#> R[8]   1.07    0.03 0.28 0.56 0.89 1.05 1.27  1.62    91 1.05
#> R[9]   1.10    0.03 0.27 0.62 0.89 1.11 1.28  1.64    74 1.03
#> R[10]  1.16    0.03 0.28 0.72 0.94 1.11 1.37  1.67    62 1.02
#> R[11]  1.26    0.03 0.29 0.77 1.06 1.20 1.45  1.91    93 0.99
#> R[12]  1.36    0.03 0.30 0.75 1.14 1.38 1.59  1.87    83 0.99
#> R[13]  1.49    0.03 0.33 1.00 1.23 1.50 1.69  2.16   101 1.01
#> R[14]  1.50    0.04 0.34 0.98 1.25 1.47 1.71  2.23    69 1.01
#> R[15]  1.53    0.04 0.35 0.93 1.28 1.50 1.79  2.22    66 1.00
#> R[16]  1.58    0.03 0.37 0.94 1.34 1.58 1.78  2.44   121 0.99
#> R[17]  1.62    0.03 0.34 1.01 1.40 1.65 1.80  2.37   104 1.00
#> R[18]  1.74    0.03 0.37 1.06 1.51 1.66 1.99  2.47   182 0.99
#> R[19]  1.82    0.03 0.38 1.19 1.56 1.76 2.04  2.66   160 0.99
#> R[20]  2.03    0.03 0.37 1.32 1.79 2.04 2.28  2.74   189 1.00
#> R[21]  2.07    0.04 0.38 1.35 1.81 2.09 2.33  2.79   120 1.00
#> R[22]  2.01    0.03 0.38 1.28 1.78 1.99 2.25  2.73   128 1.00
#> R[23]  1.98    0.03 0.31 1.43 1.77 1.96 2.15  2.70   153 0.99
#> R[24]  2.04    0.03 0.32 1.53 1.83 1.96 2.19  2.78   150 1.00
#> R[25]  2.18    0.03 0.36 1.68 1.91 2.13 2.40  3.01   163 0.99
#> R[26]  2.18    0.03 0.36 1.60 1.88 2.19 2.42  2.84   139 1.00
#> R[27]  2.06    0.03 0.33 1.47 1.80 2.04 2.32  2.68   138 1.00
#> R[28]  2.05    0.03 0.31 1.40 1.86 2.03 2.26  2.59   150 0.99
#> R[29]  1.98    0.02 0.30 1.48 1.76 1.96 2.17  2.59   200 0.99
#> R[30]  1.98    0.03 0.29 1.39 1.79 1.96 2.18  2.54   124 0.99
#> R[31]  1.96    0.03 0.25 1.55 1.78 1.96 2.07  2.52    81 1.02
#> R[32]  2.02    0.02 0.24 1.56 1.83 2.04 2.16  2.54   121 1.00
#> R[33]  2.00    0.03 0.24 1.63 1.84 1.95 2.16  2.54    90 1.01
#> R[34]  1.97    0.02 0.23 1.62 1.81 1.95 2.11  2.45    91 0.99
#> R[35]  1.97    0.02 0.24 1.60 1.81 1.93 2.12  2.47   103 0.99
#> R[36]  1.78    0.02 0.23 1.45 1.61 1.79 1.91  2.37   137 0.99
#> R[37]  1.72    0.02 0.20 1.42 1.55 1.69 1.84  2.10    94 0.99
#> R[38]  1.57    0.01 0.17 1.28 1.44 1.57 1.69  1.90   184 0.99
#> R[39]  1.58    0.02 0.17 1.30 1.48 1.57 1.69  1.94   116 0.99
#> R[40]  1.46    0.01 0.16 1.12 1.36 1.46 1.56  1.74   112 0.99
#> R[41]  1.45    0.01 0.16 1.13 1.37 1.47 1.56  1.74   133 0.99
#> R[42]  1.39    0.01 0.15 1.12 1.28 1.38 1.50  1.67   117 0.99
#> R[43]  1.21    0.01 0.15 0.95 1.11 1.21 1.31  1.49   117 0.99
#> R[44]  1.22    0.01 0.15 0.95 1.11 1.20 1.30  1.52   181 0.99
#> R[45]  1.19    0.01 0.11 1.01 1.11 1.18 1.25  1.43   117 0.99
#> R[46]  1.25    0.01 0.14 1.00 1.13 1.24 1.34  1.54   149 1.00
#> R[47]  1.23    0.01 0.14 0.98 1.14 1.23 1.32  1.50   101 1.00
#> R[48]  1.37    0.02 0.16 1.10 1.26 1.37 1.46  1.75    70 0.99
#> R[49]  1.33    0.02 0.15 1.10 1.23 1.31 1.43  1.62    77 0.99
#> R[50]  1.08    0.01 0.12 0.89 0.99 1.07 1.16  1.34   112 0.99
#> R[51]  0.92    0.01 0.12 0.66 0.85 0.92 1.00  1.13   129 0.99
#> R[52]  0.79    0.01 0.11 0.61 0.72 0.80 0.84  1.04    82 0.99
#> R[53]  0.69    0.01 0.10 0.52 0.62 0.68 0.75  0.86    92 0.99
#> R[54]  0.59    0.01 0.09 0.45 0.54 0.58 0.64  0.76   139 0.99
#> R[55]  0.53    0.01 0.08 0.38 0.47 0.52 0.58  0.70    82 1.06
#> R[56]  0.58    0.01 0.09 0.39 0.53 0.58 0.63  0.77   200 0.99
#> R[57]  0.45    0.01 0.07 0.31 0.41 0.46 0.50  0.59   110 0.99
#> R[58]  0.36    0.01 0.08 0.23 0.30 0.35 0.42  0.52    99 0.99
#> R[59]  0.32    0.01 0.08 0.19 0.25 0.31 0.37  0.47   187 0.99
#> R[60]  0.34    0.01 0.08 0.18 0.29 0.33 0.39  0.52   199 0.99
#> R[61]  0.28    0.01 0.07 0.17 0.23 0.28 0.32  0.44   127 1.01
#> R[62]  0.20    0.01 0.06 0.11 0.16 0.20 0.24  0.34   119 0.99
#> R[63]  0.15    0.01 0.05 0.07 0.11 0.14 0.18  0.27    97 1.00
#> R[64]  0.13    0.01 0.06 0.05 0.10 0.12 0.17  0.25   103 1.00
#> R[65]  0.11    0.01 0.06 0.04 0.06 0.10 0.14  0.23    17 1.14
#> R[66]  0.09    0.01 0.06 0.02 0.05 0.08 0.12  0.22    30 1.09
#> R[67]  0.09    0.01 0.05 0.02 0.06 0.09 0.12  0.21    59 1.00
#> R[68]  0.12    0.01 0.06 0.03 0.07 0.12 0.15  0.26    67 1.01
#> R[69]  0.16    0.01 0.08 0.04 0.11 0.15 0.21  0.32    76 1.01
#> R[70]  0.17    0.02 0.10 0.04 0.10 0.16 0.22  0.39    36 1.01
#> R[71]  0.17    0.02 0.10 0.03 0.10 0.14 0.22  0.45    35 0.99
#> R[72]  0.19    0.02 0.12 0.02 0.10 0.17 0.27  0.48    31 0.99
#> R[73]  0.24    0.02 0.12 0.09 0.15 0.23 0.30  0.54    30 0.99
#> R[74]  0.26    0.02 0.13 0.06 0.16 0.24 0.31  0.57    29 0.99
#> R[75]  0.29    0.02 0.13 0.09 0.18 0.29 0.38  0.56    30 1.00
#> R[76]  0.32    0.02 0.14 0.14 0.22 0.29 0.40  0.65    39 0.99
#> R[77]  0.36    0.02 0.15 0.14 0.24 0.35 0.43  0.67    56 1.00
#> R[78]  0.42    0.03 0.20 0.15 0.28 0.40 0.50  0.87    58 1.00
#> R[79]  0.48    0.03 0.23 0.19 0.31 0.43 0.60  0.98    64 1.01
#> R[80]  0.53    0.04 0.26 0.18 0.34 0.48 0.67  1.05    45 1.05
#> R[81]  0.56    0.04 0.27 0.20 0.36 0.51 0.73  1.10    39 1.09
#> R[82]  0.64    0.05 0.31 0.22 0.44 0.58 0.81  1.29    40 1.14
#> R[83]  0.70    0.06 0.34 0.25 0.45 0.63 0.88  1.53    33 1.17
#> R[84]  0.78    0.07 0.36 0.33 0.51 0.68 0.99  1.65    27 1.22
#> R[85]  0.81    0.08 0.38 0.31 0.53 0.75 1.02  1.70    24 1.25
#> R[86]  0.87    0.08 0.41 0.25 0.51 0.83 1.12  1.79    24 1.20
#> R[87]  0.94    0.08 0.46 0.33 0.58 0.85 1.22  2.10    30 1.14
#> R[88]  1.01    0.09 0.48 0.33 0.66 0.90 1.29  2.25    29 1.12
#> R[89]  1.09    0.09 0.47 0.34 0.73 1.04 1.37  2.15    28 1.11
#> R[90]  1.16    0.08 0.46 0.42 0.80 1.14 1.45  2.09    30 1.12
#> R[91]  1.28    0.09 0.47 0.41 0.95 1.25 1.59  2.27    25 1.12
#> R[92]  1.39    0.10 0.49 0.48 1.03 1.30 1.72  2.45    27 1.15
#> R[93]  1.48    0.08 0.48 0.62 1.14 1.41 1.81  2.54    33 1.11
#> R[94]  1.63    0.09 0.55 0.70 1.18 1.59 1.94  2.82    41 1.07
#> R[95]  1.77    0.08 0.52 0.91 1.38 1.75 2.04  2.93    46 1.07
#> R[96]  1.85    0.09 0.55 0.89 1.45 1.82 2.20  2.99    35 1.11
#> R[97]  1.93    0.09 0.54 1.05 1.52 1.90 2.22  2.95    34 1.10
#> R[98]  2.01    0.08 0.54 1.19 1.59 1.93 2.40  3.16    49 1.04
#> R[99]  2.12    0.08 0.56 1.22 1.76 2.02 2.49  3.34    51 1.05
#> R[100] 2.20    0.07 0.56 1.31 1.83 2.12 2.46  3.55    60 1.05
#> R[101] 2.28    0.07 0.55 1.42 1.87 2.20 2.68  3.42    62 1.05
#> R[102] 2.38    0.07 0.54 1.53 1.98 2.35 2.67  3.71    56 1.02
#> R[103] 2.42    0.06 0.50 1.58 2.07 2.42 2.77  3.66    70 1.02
#> R[104] 2.52    0.06 0.49 1.67 2.17 2.50 2.82  3.67    65 1.01
#> R[105] 2.48    0.05 0.46 1.65 2.15 2.46 2.75  3.55    81 0.99
#> R[106] 2.49    0.05 0.46 1.68 2.16 2.44 2.78  3.44    83 0.99
#> R[107] 2.45    0.04 0.44 1.73 2.14 2.40 2.70  3.33   115 1.01
#> R[108] 2.45    0.04 0.38 1.71 2.23 2.46 2.64  3.31    77 1.02
#> R[109] 2.41    0.04 0.37 1.85 2.14 2.34 2.64  3.23    71 1.01
#> R[110] 2.42    0.03 0.32 1.86 2.22 2.41 2.63  3.06    94 1.00
#> R[111] 2.44    0.03 0.32 1.75 2.26 2.47 2.62  2.99   110 0.99
#> R[112] 2.47    0.03 0.38 1.68 2.24 2.47 2.72  3.15   155 0.99
#> R[113] 2.51    0.03 0.35 1.96 2.26 2.48 2.75  3.27   127 1.00
#> R[114] 2.55    0.03 0.32 2.04 2.32 2.52 2.76  3.20   124 0.99
#> R[115] 2.73    0.03 0.37 2.06 2.46 2.70 2.96  3.45   115 0.99
#> R[116] 2.77    0.04 0.39 2.08 2.46 2.77 3.02  3.60   114 1.01
#> R[117] 2.75    0.03 0.39 2.15 2.42 2.72 3.05  3.40   148 0.99
#> R[118] 2.73    0.03 0.35 2.12 2.43 2.75 2.98  3.40    99 0.99
#> R[119] 2.69    0.03 0.32 2.10 2.45 2.71 2.90  3.33   111 0.99
#> R[120] 2.68    0.03 0.32 2.11 2.43 2.71 2.86  3.28    90 1.02
#> R[121] 2.85    0.03 0.27 2.37 2.63 2.82 3.04  3.40   101 0.99
#> R[122] 2.75    0.03 0.26 2.19 2.55 2.75 2.93  3.21   109 0.99
#> R[123] 2.54    0.02 0.23 2.18 2.35 2.54 2.67  3.03   111 1.00
#> R[124] 2.56    0.03 0.25 2.13 2.39 2.54 2.69  3.07    79 0.99
#> R[125] 2.44    0.02 0.19 2.12 2.31 2.44 2.60  2.81    98 0.99
#> R[126] 2.43    0.02 0.23 2.03 2.26 2.41 2.61  2.85   113 1.01
#> R[127] 2.45    0.02 0.20 2.09 2.33 2.42 2.60  2.78   120 1.00
#> R[128] 2.24    0.02 0.17 1.89 2.12 2.24 2.36  2.54    75 1.00
#> R[129] 1.94    0.02 0.18 1.56 1.83 1.95 2.06  2.31    90 1.00
#> R[130] 1.93    0.02 0.19 1.60 1.79 1.91 2.06  2.30    68 1.00
#> R[131] 1.80    0.02 0.15 1.53 1.72 1.79 1.88  2.10    72 1.01
#> R[132] 1.62    0.02 0.14 1.39 1.53 1.61 1.70  1.88    52 1.03
#> R[133] 1.54    0.01 0.11 1.31 1.47 1.54 1.61  1.75   129 1.01
#> R[134] 1.35    0.01 0.12 1.16 1.28 1.35 1.43  1.57    94 0.99
#> R[135] 1.12    0.01 0.10 0.93 1.04 1.11 1.19  1.33   106 0.99
#> R[136] 1.05    0.01 0.09 0.90 0.99 1.04 1.11  1.26   137 0.99
#> R[137] 1.00    0.01 0.08 0.84 0.95 0.99 1.05  1.16   159 1.00
#> R[138] 0.83    0.01 0.08 0.65 0.77 0.82 0.89  0.98    89 0.99
#> R[139] 0.79    0.01 0.07 0.67 0.75 0.79 0.82  0.92    87 0.99
#> R[140] 0.86    0.01 0.08 0.70 0.80 0.85 0.92  1.02    94 1.00
#> R[141] 0.81    0.01 0.07 0.69 0.76 0.80 0.85  0.93   133 0.99
#> R[142] 0.73    0.01 0.08 0.59 0.67 0.73 0.79  0.86    90 1.03
#> R[143] 0.73    0.01 0.07 0.62 0.68 0.73 0.78  0.86   116 0.99
#> R[144] 0.71    0.01 0.08 0.56 0.65 0.70 0.75  0.87    74 1.03
#> R[145] 0.67    0.01 0.08 0.56 0.62 0.67 0.73  0.84    48 1.03
#> R[146] 0.64    0.01 0.07 0.52 0.59 0.63 0.67  0.77   102 0.99
#> R[147] 0.48    0.01 0.05 0.37 0.45 0.48 0.51  0.58    97 0.99
#> R[148] 0.38    0.01 0.06 0.26 0.35 0.38 0.41  0.48   104 1.00
#> R[149] 0.27    0.01 0.05 0.17 0.24 0.27 0.30  0.37    96 1.01
#> R[150] 0.29    0.00 0.05 0.20 0.26 0.29 0.33  0.40   142 0.99
#> R[151] 0.29    0.00 0.06 0.20 0.25 0.28 0.33  0.41   142 0.99
#> R[152] 0.23    0.01 0.05 0.14 0.19 0.23 0.26  0.32    82 0.99
#> R[153] 0.17    0.00 0.04 0.10 0.14 0.17 0.20  0.25   123 0.99
#> R[154] 0.19    0.00 0.05 0.11 0.16 0.18 0.20  0.33   117 0.99
#> R[155] 0.13    0.00 0.05 0.05 0.09 0.12 0.16  0.24   176 1.01
#> R[156] 0.11    0.00 0.05 0.04 0.08 0.10 0.13  0.23   142 1.00
#> R[157] 0.14    0.00 0.05 0.05 0.10 0.14 0.16  0.23   105 1.01
#> R[158] 0.14    0.01 0.05 0.06 0.10 0.13 0.16  0.24   107 1.07
#> R[159] 0.15    0.01 0.06 0.04 0.11 0.13 0.18  0.26    84 1.03
#> R[160] 0.17    0.01 0.06 0.08 0.13 0.17 0.22  0.30   113 1.04
#> R[161] 0.16    0.01 0.07 0.05 0.12 0.16 0.21  0.31    77 0.99
#> R[162] 0.19    0.01 0.07 0.07 0.13 0.18 0.24  0.33    60 1.02
#> R[163] 0.23    0.01 0.09 0.09 0.16 0.23 0.29  0.42    79 0.99
#> R[164] 0.34    0.01 0.11 0.14 0.24 0.34 0.41  0.59    78 1.01
#> R[165] 0.42    0.01 0.13 0.22 0.33 0.42 0.49  0.71    80 0.99
#> R[166] 0.48    0.02 0.16 0.22 0.37 0.47 0.57  0.81    80 0.99
#> R[167] 0.52    0.02 0.17 0.26 0.39 0.48 0.63  0.84   113 0.99
#> R[168] 0.55    0.03 0.20 0.23 0.41 0.52 0.64  0.97    56 1.00
#> R[169] 0.64    0.02 0.21 0.30 0.49 0.62 0.79  1.09    92 1.01
#> R[170] 0.73    0.02 0.22 0.34 0.59 0.71 0.87  1.18    83 1.00
#> R[171] 0.84    0.03 0.26 0.34 0.67 0.78 1.05  1.32    81 0.99
#> R[172] 0.92    0.04 0.28 0.49 0.68 0.90 1.12  1.51    61 0.99
#> R[173] 1.01    0.03 0.26 0.54 0.85 1.03 1.16  1.52    72 1.00
#> R[174] 1.05    0.04 0.30 0.52 0.86 1.06 1.23  1.67    69 0.99
#> R[175] 1.13    0.04 0.33 0.59 0.88 1.13 1.36  1.85    67 0.99
#> R[176] 1.21    0.04 0.33 0.67 0.96 1.18 1.44  1.88    74 0.99
#> R[177] 1.27    0.03 0.32 0.75 1.08 1.26 1.45  2.02    90 0.99
#> R[178] 1.26    0.03 0.33 0.76 1.05 1.22 1.46  2.06    95 1.00
#> R[179] 1.33    0.04 0.34 0.70 1.13 1.31 1.50  2.05    93 1.01
#> R[180] 1.42    0.04 0.36 0.89 1.13 1.38 1.66  2.13    97 1.01
#> R[181] 1.51    0.04 0.37 0.96 1.24 1.48 1.72  2.36   108 1.03
#> R[182] 1.62    0.03 0.36 1.05 1.37 1.60 1.83  2.40   114 1.01
#> R[183] 1.78    0.03 0.40 1.14 1.49 1.70 2.01  2.67   160 1.02
#> R[184] 2.03    0.03 0.37 1.38 1.79 1.99 2.26  3.00   123 1.02
#> R[185] 2.20    0.03 0.34 1.53 2.01 2.19 2.40  2.95   111 1.05
#> R[186] 2.32    0.03 0.38 1.67 2.09 2.29 2.55  3.12   179 1.03
#> R[187] 2.54    0.03 0.37 1.94 2.29 2.49 2.76  3.24   181 0.99
#> R[188] 2.74    0.03 0.33 2.17 2.51 2.70 2.96  3.50   157 0.99
#> R[189] 2.82    0.04 0.35 2.28 2.53 2.79 3.09  3.55    89 1.00
#> R[190] 2.83    0.04 0.40 2.13 2.53 2.78 3.19  3.51    99 0.99
#> R[191] 2.84    0.04 0.37 2.17 2.53 2.80 3.14  3.49   109 0.99
#> R[192] 2.90    0.03 0.32 2.34 2.68 2.84 3.15  3.49   106 0.99
#> R[193] 2.93    0.02 0.31 2.38 2.71 2.93 3.16  3.50   167 0.99
#> R[194] 2.90    0.02 0.29 2.21 2.72 2.95 3.06  3.44   153 0.99
#> R[195] 3.05    0.04 0.29 2.47 2.87 3.04 3.25  3.71    68 1.00
#> R[196] 3.11    0.02 0.25 2.61 2.98 3.10 3.28  3.63   106 1.00
#> R[197] 3.00    0.03 0.27 2.56 2.82 2.98 3.19  3.50   112 1.00
#> R[198] 3.23    0.02 0.27 2.69 3.05 3.23 3.47  3.64   153 1.01
#> R[199] 3.57    0.03 0.29 2.97 3.35 3.57 3.79  4.09   103 0.99
#> R[200] 3.81    0.04 0.31 3.21 3.59 3.85 4.03  4.37    79 0.99
#> 
#> Samples were drawn using NUTS(diag_e) at Thu Nov 14 19:49:45 2024.
#> For each parameter, n_eff is a crude measure of effective sample size,
#> and Rhat is the potential scale reduction factor on split chains (at 
#> convergence, Rhat=1).

We now overlay the estimated RtR_t versus the actual values. The estimated RtR_t values coincide reasonably with the true values.

# extract posterior quantiles
R_draws <- rstan::extract(fit, "R")[[1]]
lower <- apply(R_draws, 2, function(x) quantile(x, 0.025))
middle <- apply(R_draws, 2, function(x) quantile(x, 0.5))
upper <- apply(R_draws, 2, function(x) quantile(x, 0.975))

# plot
epidemic_df %>%
  mutate(
    lower = lower,
    middle = middle,
    upper = upper
  ) %>%
  select(t, R_t, lower, middle, upper) %>%
  ggplot(aes(x = t, y = R_t)) +
  geom_line(colour = "red") +
  geom_ribbon(aes(ymin = lower, ymax = upper), fill = "blue", alpha = 0.4) +
  geom_line(aes(y = middle))