We recall and describe the implementation of methods to estimate the serial interval distribution and reproduction numbers in epidemics. We also propose tools to explore the sensitivity of estimates to required assumptions.
Defining a generation time distribution
The generation time is the time lag between infection in a primary case and a secondary case. The generation time distribution should be obtained from the time lag between all infectee/infector pairs. As it cannot be observed directly, it is often substituted with the serial interval distribution that measures time between symptoms onset. In our software package, the ‘generation.time’ function is used to represent a discretized generation time distribution. Discretization is carried out on the grid [0,0.5), [0.5, 1.5), [1.5, 2.5), etc.… where the unit is a user chosen time interval (hour, day, week…). Several descriptions are supported: “empirical” requiring the full specification of the distribution, or parametric distributions taken among “gamma”, “lognormal” or “weibull”. In the latter case, the mean and standard deviation must be provided in the desired time units.
A function (‘est.GT’) is also provided to estimate the serial interval distribution from a sample of observed time intervals between symptom onsets in primary cases and secondary cases by maximum likelihood.
Estimation of initial reproduction numbers
Reproduction numbers may be estimated at different times during an epidemic. In the following, we recall methods for estimating the “initial” reproduction number, i.e. at the beginning of an outbreak, and for estimating the “time-dependent” reproduction number at any time during an outbreak, as well as the required hypotheses for the methods. Proposed extensions and options implemented in the software are also presented.
Attack rate (AR)
In the classical SIR model of disease transmission, the attack rate (AR : the percentage of the population eventually infected) is linked to the basic reproduction number, by R0=−log1−ARS0AR−1−S0 where S0 is the initial percentage of susceptible population. The required assumptions are homogeneous mixing, closed population, and no intervention during the outbreak.
Exponential growth (EG)
As summarized by Wallinga & Lipsitch, the exponential growth rate during the early phase of an outbreak can be linked to the initial reproduction ratio. The exponential growth rate, denoted by r, is defined by the per capita change in number of new cases per unit of time. As incidence data are integer valued, Poisson regression is indicated to estimate this parameter, rather than linear regression of the logged incidence. The reproduction number is computed as R=1M−r where M is the moment generating function of the (discretized) generation time distribution. It is necessary to choose a period in the epidemic curve over which growth is exponential. We propose to use the deviance based R-squared statistic to guide this choice. No assumption is made on mixing in the population.
Maximum likelihood estimation (ML)
This model, proposed by White & Pagano, relies on the assumption that the number of secondary cases caused by an index case is Poisson distributed with expected value R. Given observation of (N0,N1, …, NT) incident cases over consecutive time units, and a generation time distribution w, R is estimated by maximizing the log-likelihood LLR=∑t=1Tloge−μtμtNtNt! where μt = R ∑ i = 1tNt − iwi. Here again, the likelihood must be calculated on a period of exponential growth, and the deviance R-squared measure may be used to select the best period. No assumption is made on mixing in the population.
The approach assumes that the epidemic curve is analysed from the first case on. If this is not the case, the initial reproduction number will be overestimated, as secondary cases will be assigned to too few index cases: we implemented a correction as described in Additional file 1: Supplementary material S1. It is also possible to account for importation of cases during the course of the epidemic.
Sequential bayesian method (SB)
This method, although introduced as “real-time bayesian” by its authors, more exactly allows sequential estimation of the initial reproduction number. It relies on an approximation to the SIR model, whereby incidence at time t + 1, N(t + 1) is approximately Poisson distributed with mean N(t)e(γ(R − 1)), where 1γ the average duration of the infectious period. The proposed algorithm, described in a Bayesian framework, starts with a non-informative prior on the distribution of the reproduction number R. The distribution is updated as new data is observed, using PR|N0,…,Nt+1=PNt+1|R,N0,…,NtPR|N0,…,NtPN0,…,Nt+1. In other words, the prior distribution for R used on each new day is the posterior distribution from the previous day. At each time, the mode of the posterior may be computed along with the highest probability density interval. As before, the method requires that the epidemic is in a period of exponential growth, i.e. it does not account for susceptible depletion; it implicitly uses an exponential distribution for the generation time; and assumes random mixing in the population.
Estimation of time dependent reproduction numbers (TD)
The time-dependant method, proposed by Wallinga & Teunis, computes reproduction numbers by averaging over all transmission networks compatible with observations. The probability pij that case i with onset at time ti was infected by case j with onset at time tj is calculated as pij=Niwti−tj∑i≠kNiwti−tk. The effective reproduction number for case j is therefore Rj = ∑ipij, and is averaged as Rt=1Nt∑tj=tRj over all cases with the same date of onset. The confidence interval for Rt can be obtained by simulation. Correction for real time estimation, where not yet observed secondary cases are taken into account is possible. It is possible to account for importation cases during the course of the epidemic.
Estimating reproduction numbers
The ‘estimate.R’ function applies the methods described above to a given epidemic curve. Several methods may be used at the same time by listing them in the “methods” argument. In the session code presented in the appendix, a generation time distribution typical of influenza is defined, using a Gamma distribution with mean 2.6 days and standard deviation 1 day. An example dataset (Germany.1918) is loaded from the package.
Initial inspection of the incidence data shows that the exponential growth period takes place during the first 30 days of the epidemic curve. Sensitivity analyses may help refine the choice of an optimal time window for exponential growth (see below). Here, we applied all methods (except the attack rate) on the first 32 days (epidemic peak) of the epidemic curve and reported estimates in Table 1. Surprisingly, although the analysis uses the same data, the estimates range in a relatively large interval, with up to 15% variation (from 1.2 to 1.4). Moreover, confidence or credible intervals do not always overlap (Figure 1A). The fit of each model to the data is however quite similar in all cases, except for the SB method which fits very poorly (Figure 1B).
The EG and ML methods require the user to select the time period over which growth is exponential. By default this is taken as the time period from first case to the date of maximum incidence. However, a better choice is possible using the deviance R-squared statistic over a range of possible time periods. The largest R-squared value corresponds to the period over which the model of analysis fitted the data best: we select this period to provide estimates. To look for this time period, the function ‘sensitivity.analysis’ systematically computes the deviance R-squared statistic over a range of time periods chosen by the user. A plot can be obtained that displays the largest R-squared value over time periods of increasing length (see Figure 2A), and the corresponding estimates can be displayed according to the chosen time window (Figure 2B). Here, this analysis shows that the portion of the epidemic curve that best fitted exponential growth in the EG method was of length 15, and more precisely in this case between time units 7 and 22. The estimate of the reproduction number was 1.56 [ 1.50 ; 1.62 ]. For a large choice of time windows, the estimates of the reproduction number remained within the 95%CI of the best fit, suggesting that the estimate was robust to change in the period of exponential growth. The estimates obtained using the best fitting time window for methods are reported in Table 1. Interestingly, when the “best fitting” time period was used for the EG and ML method, the variability between estimates was reduced.
A second issue worth considering is how estimates change according to the choice of the generation time distribution. A function was developed that systematically computes the reproduction ratio over a range of user chosen generation time distribution. In our example, we varied the generation time distribution for the EG method (see Figure 3): as expected, the estimates increased with the mean generation time. Using the same epidemic curve, the reported reproduction ratio ranged between 1.3 and 2 when the mean generation time goes between 1.5 and 5 days.
Comparison of methods
We conducted a simulation study to investigate how estimates of the reproduction number changed with the method of estimation, the role of over-dispersion in the secondary cases distribution and of epidemic curve aggregation at increasingly large time steps. Epidemics were simulated using a branching process, with no restriction on the number of susceptibles to allow exponential growth. For each case, the latent and infectious period were sampled in distributions typical of influenza (gamma distributions with mean+/−sd 1.6+/−0.3 days for latency and 1+/−1 days for infectious period) yielding a generation time interval with mean 2.6 days. The epidemic was started with one incident case at time t=0, then for each incident case, the number of secondary cases was sampled from a negative binomial distribution with mean β I and variance k β I, where I was the individual’s duration of infectious period, β the effective contact rate, and k the overdispersion parameter. The actual time of infection of secondary cases was sampled uniformly during the infectious period of the index case. In this model, the reproduction number is R = β E(I), so that it was possible to calibrate β to obtain the desired value of R. We ran simulations with 3 values for R (1.5, 2 and 3) and overdispersion parameter k to 1 (no overdispersion) and 4 (large overdispersion).
All epidemics were simulated over a period corresponding to approximately the 6 first generations of cases (24 days). For each combination of R and k, 4000 epidemics with more than 20 cases were simulated. Epidemic data were then aggregated daily, by 3 days periods and by 6 days periods. Estimation of the reproduction ratio was made, and the bias and mean squared error were calculated.
The comparison of methods is presented in Table 2. In all cases, when the data were available as daily counts, all methods had approximately the same characteristics. The ML and TD methods were the least biased. Bias increased with larger aggregation periods, especially for the ML and TD methods. For these two methods, the reproduction ratio was increasingly underestimated as data were aggregated on longer periods. Overall, over-dispersion did not significantly affect the estimated value of R. In all cases, the exponential growth method performance was the least affected by either aggregation or over dispersion.
We have described a package implementing several methods for estimating the reproduction number from epidemic curves, along with diagnostic tools and provided a comparison of the accuracy of these methods.
The reproduction number in an epidemic is of interest when the disease is actually transmitted between subjects, either directly or indirectly. This is for example the case for influenza, childhood diseases, vector borne diseases, but not in food-borne epidemics caused by environmental exposure to a pathogen. The methods implemented in the package will best be used for acute diseases with short serial intervals. The analysis of diseases with very long incubation times (e.g. HIV or HBV infection) requires more specialized methods, especially to account for censoring.
While several methods for estimating reproduction numbers exist, sometimes with code provided by their authors, no common framework was available to allow easy and direct comparison of the results. Developing an R package provide this framework and allow widespread distribution. It will complement package developed for epidemiological surveillance and cost-effectiveness analyses. Furthermore, R packages are easily extensible, so that additional methods can be easily included in future releases.
Regarding the methods described here, we found that when the data was available on a time scale smaller than the mean generation time, all methods tended to be unbiased. Very small aggregation windows may lead to gaps, i.e. time periods with 0 observations. In this case, the SB method fails after the first gap (data not shown). Other methods are not affected, provided the maximum generation time is longer than the gap. When the data was aggregated in time periods up to twice the mean generation time, only the exponential growth method remained unbiased. Indeed, it has previously been reported that aggregation in time periods of 1 mean generation time width was ideal for estimation, and corrections proposed for larger time intervals. The results obtained from the methods described here when data are aggregated in time periods larger than the mean generation time should therefore be interpreted with caution, all the more than the exponential growth assumption is unlikely to be met on long time periods.
In a real situation, and especially for an emerging disease, several practical problems must be taken into account in the application of these methods. The attack rate method requires the least information, but is only usable when the epidemic is over, and furthermore requires that no intervention was set up during the whole course of an outbreak. Therefore its use is generally limited to particular settings like schools or army platoons, for example. All other methods require the epidemic curve and the generation time distribution, with the ‘initial’ reproduction ratio as an output. If one assumes that the population was totally susceptible at first, it may also be interpreted as the basic reproduction ratio (R0); a correction will be necessary in the case of a initial partial immunity.
With a truly emerging outbreak, prior knowledge on the generation time distribution may be unavailable. Allowing sensitivity analyses according to the mean generation time, as we described, is therefore important to help quantify uncertainty in this respect. In other cases, estimation of the generation time distribution is relatively straightforward from pairs of infectors/infectees if there is a marked separation between generations; it is more complicated when generations quickly overlap as with influenza. An additional issue is that symptom onset dates may be known only to an interval, requiring specialized methods for estimation. Joint-estimation of the generation time distribution and reproduction number is another possibility.
A second step is to choose a time period that displays exponential growth. Too long a time period may depart from true exponential growth and bias estimation downwards, while too short a period may lead to large variance in the estimates. We implemented a method to select the optimal period displaying exponential growth based on the deviance R-squared, a commonly used method to measure goodness of fit of model to data. As shown in Figure 2A, the typical profile of the R-squared deviance presents a maximum that allows selecting the best period.
An implicit assumption in all methods is that all cases are recorded and are linked by a chain of transmission. However, the following issues will arise: missing first cases; under-reporting; unreported cases; reporting delays; importation cases.
If the epidemic is not observed from the first case on, overestimation of the initial reproduction number is likely since some initial cases are absent from the epidemic curve, and secondary cases will be imputed to too few index cases. A correction was implemented for missing generations at the beginning of the epidemic curve for the ML method, similar to that proposed by McBryde in a Bayesian setting using the assumption of constant reproduction number. No obvious way exists to correct the TD method, as the reproduction ratio is allowed to change with time. The EG and SB methods are, by construction, not dependent on this issue.
No method explicitly accounts for under-reporting during the course of the epidemic. If the under-reporting rate is constant in time, no bias is expected. However, if it is known that under-reporting changed with time, this could be corrected before estimation proceeds, as was done in the US.
Non-reported cases during an outbreak the epidemic are neither accounted for. Treating missing cases as latent observations has been proposed, but requires the grouping of cases in successive generations rather than on a temporal basis.
Importation of cases during the course of the epidemic generally leads to overestimation of the reproduction ratio, since these cases are considered as “offspring” of cases present earlier in the outbreak. In all the methods presented here, only the TD and ML methods can satisfactorily correct for importation cases. The other methods are less easily modified in this respect, and this should be the object of further research.
A final issue is reporting delays, especially when analysis is done in real time. Reporting delays cause a downward bias in incidence in the last few days of observation. This will impact the most the ML and TD estimates, as these rely more heavily on the fit of the model to the observed incidence. In practice, one may wait for data consolidation before applying any method, but it would also be possible to correct for this bias before estimating the reproduction number if the reporting delay is known.
In the simulation study, we identified that all methods would generally be biased downwards for a disease like flu, with bias increasing both with larger aggregation windows and increasing reproduction number. An exception was the EG method, with upward bias for small R values (R<2) and downwards bias for larger values. When incidence data was available on a daily basis, i.e. smaller than the generation time distribution, the characteristics of the four methods compared. The EG method was the least sensitive to changes in aggregation window, while the ML and TD methods were rapidly inconsistent. The SB method was generally not better than the EG method. Best practice in case of an emerging epidemic will likely depend on a combination of reproduction ratio magnitude, mean generation time duration and aggregation detail. We have provided the framework that would allow comparison and critic of these estimates.
Finally, we highlighted that the estimated reproduction ratio may depend on the method for estimation. This should be taken into account in comparisons, and also when calibrating predictive models as small differences can lead to large variation in attack rates and assessment of required efficacy in interventions.
Although many mathematical models have been developed to estimate several types of reproduction numbers during epidemic outbreaks, no unique workframe existed. We here provide a user-friendly R package that supports five of the most commonly used methods, and extend some approaches with sensitivity analysis or imputing censored data. This will allow for fast assessment of the transmissibility parameters in new outbreaks, as well as critical assessment of the reported values. The package is currently available from the CRAN repository.
Availability and requirements
Project name: R0 Package
Project home page: CRAN repository (http://cran.r-project.org/web/packages/R0/)
Operating system(s): Platform independent
Programming language: R
Other requirements: R v2.13 or higher
License: GPL (>= 2)Any restrictions to use by non-academics: None
Typical session code> library(R0) # loads library> # epidemic curve can be input as a list of dates> epid = c("2012-01-01", "2012-01-02", "2012-01-02", "2012-01-03")> # or as incidence counts> epid.count = c(1,2,4,8)> # create generation time : gamma distribution, with mean 2.6 time units and standard deviation 1 time unit> GT.flu <− generation.time("gamma", c(2.6,1))> # loads example dataset> data(Germany.1918)> res.R <− estimate.R(Germany.1918, GT=GT.flu, methods=c("EG","ML","SB","TD"))# applies methods EG, ML, SB, TD to the dataset> plot(res.R) # diplays results> plotfit(res.R) # displays fit to the epidemic curve# sensitivity analysis according to choice of time window for exponential growth> sensitivity.analysis(Germany.1918, GT.flu, begin=1:15, end=16:30, est.method="EG", sa.type="time")> # sensitivity analysis according to generation time> sensitivity.analysis(Germany.1918, GT.type="gamma", GT.mean=seq(1,5,1), GT.sd.range=1, begin=1, end=27, est.method="EG", sa.type="GT")
AR: Attack rate; EG: Exponential growth; ML: Maximum likelihood; TD: Time dependent; SB: Sequential bayesian.
The authors declare that they have no competing interests.
TO coded the software, wrote the manuscript. RH researched bibliography. PYB conceived the study, wrote the manuscript. All authors read and approved the final manuscript.
The pre-publication history for this paper can be accessed here: