summaryrefslogtreecommitdiff
path: root/man/seq_bayes.Rd
diff options
context:
space:
mode:
Diffstat (limited to 'man/seq_bayes.Rd')
-rw-r--r--man/seq_bayes.Rd91
1 files changed, 91 insertions, 0 deletions
diff --git a/man/seq_bayes.Rd b/man/seq_bayes.Rd
new file mode 100644
index 0000000..0864294
--- /dev/null
+++ b/man/seq_bayes.Rd
@@ -0,0 +1,91 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/seqB.R
+\name{seqB}
+\alias{seqB}
+\title{seqB method}
+\usage{
+seqB(NT, mu, kappa = 20)
+}
+\arguments{
+\item{NT}{Vector of case counts.}
+
+\item{mu}{Mean of the serial distribution. This needs to match case counts in
+time units. For example, if case counts are weekly and the serial
+distribution has a mean of seven days, then \code{mu} should be set
+to one. If case counts are daily and the serial distribution has a
+mean of seven days, then \code{mu} should be set to seven.}
+
+\item{kappa}{Largest possible value of uniform prior (defaults to 20). This
+describes the prior belief on ranges of R0, and should be set to
+a higher value if R0 is believed to be larger.}
+}
+\value{
+\code{seqB} returns a list containing the following components:
+ \code{Rhat} is the estimate of R0 (the posterior mean),
+ \code{posterior} is the posterior distribution of R0 from which
+ alternate estimates can be obtained (see examples), and \code{group}
+ is an indicator variable (if \code{group == TRUE}, zero values of NT
+ were input and grouping was done to obtain \code{Rhat}). The variable
+ \code{posterior} is returned as a list made up of \code{supp} (the
+ support of the distribution) and \code{pmf} (the probability mass
+ function).
+}
+\description{
+This function implements a sequential Bayesian estimation method of R0 due to
+Bettencourt and Riberio (PloS One, 2008). See details for important
+implementation notes.
+}
+\details{
+The method sets a uniform prior distribution on R0 with possible values
+between zero and \code{kappa}, discretized to a fine grid. The distribution
+of R0 is then updated sequentially, with one update for each new case count
+observation. The final estimate of R0 is \code{Rhat}, the mean of the (last)
+posterior distribution. The prior distribution is the initial belief of the
+distribution of R0, which is the uninformative uniform distribution with
+values between zero and \code{kappa}. Users can change the value of
+\code{kappa} only (i.e., the prior distribution cannot be changed from the
+uniform). As more case counts are observed, the influence of the prior
+distribution should lessen on the final estimate \code{Rhat}.
+
+This method is based on an approximation of the SIR model, which is most
+valid at the beginning of an epidemic. The method assumes that the mean of
+the serial distribution (sometimes called the serial interval) is known. The
+final estimate can be quite sensitive to this value, so sensitivity testing
+is strongly recommended. Users should be careful about units of time (e.g.,
+are counts observed daily or weekly?) when implementing.
+
+Our code has been modified to provide an estimate even if case counts equal
+to zero are present in some time intervals. This is done by grouping the
+counts over such periods of time. Without grouping, and in the presence of
+zero counts, no estimate can be provided.
+}
+\examples{
+# Weekly data.
+NT <- c(1, 4, 10, 5, 3, 4, 19, 3, 3, 14, 4)
+
+## Obtain R0 when the serial distribution has a mean of five days.
+res1 <- seqB(NT, mu = 5 / 7)
+res1$Rhat
+
+## Obtain R0 when the serial distribution has a mean of three days.
+res2 <- seqB(NT, mu = 3 / 7)
+res2$Rhat
+
+# Compute posterior mode instead of posterior mean and plot.
+
+Rpost <- res1$posterior
+loc <- which(Rpost$pmf == max(Rpost$pmf))
+Rpost$supp[loc] # Posterior mode.
+res1$Rhat # Compare with the posterior mean.
+
+par(mfrow = c(2, 1), mar = c(2, 2, 1, 1))
+
+plot(Rpost$supp, Rpost$pmf, col = "black", type = "l", xlab = "", ylab = "")
+abline(h = 1 / (20 / 0.01 + 1), col = "red")
+abline(v = res1$Rhat, col = "blue")
+abline(v = Rpost$supp[loc], col = "purple")
+legend("topright",
+ legend = c("Prior", "Posterior", "Posterior mean", "Posterior mode"),
+ col = c("red", "black", "blue", "purple"), lty = 1)
+
+}