Skip to content

Commit

Permalink
Corrected vignettes to reflect changes in n_detect_lm outputs.
Browse files Browse the repository at this point in the history
  • Loading branch information
RJSheppard committed May 20, 2024
1 parent 1a70ff2 commit c62decc
Show file tree
Hide file tree
Showing 13 changed files with 52 additions and 52 deletions.
20 changes: 10 additions & 10 deletions vignettes/Antimalarial_Resistance.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ With the outputs from the `run_simulation()` function, we can visualise the effe
```{r, fig.align = 'center', eval = TRUE}
# In each timestep, calculate PfPR_2-10 and add it to as a new column for each simulation output:
sim_out_baseline$pfpr210 = sim_out_baseline$n_detect_730_3650/sim_out_baseline$n_730_3650
sim_out_clin_treatment$pfpr210 = sim_out_clin_treatment$n_detect_730_3650/sim_out_clin_treatment$n_730_3650
sim_out_resistance$pfpr210 = sim_out_resistance$n_detect_730_3650/sim_out_resistance$n_730_3650
sim_out_baseline$pfpr210 = sim_out_baseline$n_detect_lm_730_3650/sim_out_baseline$n_730_3650
sim_out_clin_treatment$pfpr210 = sim_out_clin_treatment$n_detect_lm_730_3650/sim_out_clin_treatment$n_730_3650
sim_out_resistance$pfpr210 = sim_out_resistance$n_detect_lm_730_3650/sim_out_resistance$n_730_3650
# Plot the prevalence through time in each of the three simulated scenarios:
plot.new(); par(mar = c(4, 4, 1, 1), new = TRUE)
Expand Down Expand Up @@ -225,7 +225,7 @@ We can visualise the effect of increasing resistance through time by plotting th
```{r, fig.align = 'center', eval = TRUE}
# Calculate the prevalence (PfPR210) through time:
dynamic_resistance_output$pfpr210 <- dynamic_resistance_output$n_detect_730_3650/dynamic_resistance_output$n_730_3650
dynamic_resistance_output$pfpr210 <- dynamic_resistance_output$n_detect_lm_730_3650/dynamic_resistance_output$n_730_3650
# Open a new plotting window and add a grid:
plot.new(); par(mar = c(4, 4, 1, 1), new = TRUE)
Expand Down Expand Up @@ -365,27 +365,27 @@ plot.new(); par(mar = c(4, 4, 1, 1), new = TRUE)
# Plot malaria prevalence in 2-10 years through time:
plot(x = simulation_outputs$base$timestep,
y = simulation_outputs$base$n_detect_730_3650/simulation_outputs$base$n_730_3650,
y = simulation_outputs$base$n_detect_lm_730_3650/simulation_outputs$base$n_730_3650,
xlab = "Time (days)",
ylab = expression(paste(italic(Pf),"PR"[2-10])), cex = 0.8,
ylim = c(0, 1), type = "l", lwd = 2, xaxs = "i", yaxs = "i",
col = cols[3])
# Add the dynamics for no-intervention simulation
lines(x = simulation_outputs$treatment$timestep,
y = simulation_outputs$treatment$n_detect_730_3650/simulation_outputs$treatment$n_730_3650,
y = simulation_outputs$treatment$n_detect_lm_730_3650/simulation_outputs$treatment$n_730_3650,
col = cols[4])
lines(x = simulation_outputs$etf$timestep,
y = simulation_outputs$etf$n_detect_730_3650/simulation_outputs$etf$n_730_3650,
y = simulation_outputs$etf$n_detect_lm_730_3650/simulation_outputs$etf$n_730_3650,
col = cols[5])
lines(x = simulation_outputs$spc$timestep,
y = simulation_outputs$spc$n_detect_730_3650/simulation_outputs$spc$n_730_3650,
y = simulation_outputs$spc$n_detect_lm_730_3650/simulation_outputs$spc$n_730_3650,
col = cols[6])
lines(x = simulation_outputs$etf_spc$timestep,
y = simulation_outputs$etf_spc$n_detect_730_3650/simulation_outputs$etf_spc$n_730_3650,
y = simulation_outputs$etf_spc$n_detect_lm_730_3650/simulation_outputs$etf_spc$n_730_3650,
col = cols[7])
# Add vlines to indicate when SP-AQ were administered:
Expand All @@ -407,4 +407,4 @@ legend(x = 3000, y = 0.99, legend = c("Baseline", "Treatment", "ETF-only", "SPC-
```

## References
Slater, H.C., Griffin, J.T., Ghani, A.C. and Okell, L.C., 2016. Assessing the potential impact of artemisinin and partner drug resistance in sub-Saharan Africa. Malaria journal, 15(1), pp.1-11.
Slater, H.C., Griffin, J.T., Ghani, A.C. and Okell, L.C., 2016. Assessing the potential impact of artemisinin and partner drug resistance in sub-Saharan Africa. Malaria journal, 15(1), pp.1-11.
10 changes: 5 additions & 5 deletions vignettes/Carrying-capacity.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ and can run the simulations and compare the outputs
```{r, fig.width = 7, fig.height = 4, out.width='100%'}
set.seed(123)
s <- run_simulation(timesteps = timesteps, parameters = p)
s$pfpr <- s$n_detect_730_3650 / s$n_730_3650
s$pfpr <- s$n_detect_lm_730_3650 / s$n_730_3650
set.seed(123)
s_seasonal <- run_simulation(timesteps = timesteps, parameters = p_seasonal)
s_seasonal$pfpr <- s_seasonal$n_detect_730_3650 / s_seasonal$n_730_3650
s_seasonal$pfpr <- s_seasonal$n_detect_lm_730_3650 / s_seasonal$n_730_3650
par(mfrow = c(1, 2))
plot(s$EIR_gamb ~ s$timestep, t = "l", ylim = c(0, 200), xlab = "Time", ylab = "EIR")
Expand Down Expand Up @@ -106,7 +106,7 @@ p_lsm <- p |>
)
set.seed(123)
s_lsm <- run_simulation(timesteps = timesteps, parameters = p_lsm)
s_lsm$pfpr <- s_lsm$n_detect_730_3650 / s_lsm$n_730_3650
s_lsm$pfpr <- s_lsm$n_detect_lm_730_3650 / s_lsm$n_730_3650
par(mfrow = c(1, 2))
plot(s$EIR_gamb ~ s$timestep, t = "l", ylim = c(0, 150), xlab = "Time", ylab = "EIR")
Expand Down Expand Up @@ -144,7 +144,7 @@ p_stephensi <- p_stephensi |>
set.seed(123)
s_stephensi <- run_simulation(timesteps = timesteps, parameters = p_stephensi)
s_stephensi$pfpr <- s_stephensi$n_detect_730_3650 / s_stephensi$n_730_3650
s_stephensi$pfpr <- s_stephensi$n_detect_lm_730_3650 / s_stephensi$n_730_3650
par(mfrow = c(1, 2))
plot(s_stephensi$EIR_gamb ~ s_stephensi$timestep,
Expand All @@ -171,7 +171,7 @@ p_flexible <- p |>
set.seed(123)
s_flexible <- run_simulation(timesteps = timesteps, parameters = p_flexible)
s_flexible$pfpr <- s_flexible$n_detect_730_3650 / s_flexible$n_730_3650
s_flexible$pfpr <- s_flexible$n_detect_lm_730_3650 / s_flexible$n_730_3650
par(mfrow = c(1, 2))
plot(s$EIR_gamb ~ s$timestep, t = "l", ylim = c(0, 150), xlab = "Time", ylab = "EIR")
Expand Down
10 changes: 5 additions & 5 deletions vignettes/EIRprevmatch.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ simparams <- set_clinical_treatment(parameters = simparams,

Having established a set of `malariasimulation` parameters, we are now ready to run simulations. In the following code chunk, we'll run the `run_simulation()` function across a range of initial EIR values to generate sufficient points to fit a curve matching *Pf*PR~2-10~ to the initial EIR. For each initial EIR, we first use the `set_equilibrium()` to update the model parameter list with the human and vector population parameter values required to achieve the specified EIR at equilibrium. This updated parameter list is then used to run the simulation.

The `run_simulation()` outputs an EIR per time step, per species, across the entire human population. We first convert these to get the number of infectious bites experienced, on average, by each individual across the final year across all vector species. Next, the average *Pf*PR~2-10~ across the final year of the simulation is calculated by dividing the total number of individuals aged 2-10 by the number (`n_730_3650`) of detectable cases of malaria in individuals aged 2-10 (`n_detect_730_3650`) on each day and calculating the mean of these values. Finally, initial EIR, output EIR, and *Pf*PR~2-10~ are stored in a data frame.
The `run_simulation()` outputs an EIR per time step, per species, across the entire human population. We first convert these to get the number of infectious bites experienced, on average, by each individual across the final year across all vector species. Next, the average *Pf*PR~2-10~ across the final year of the simulation is calculated by dividing the total number of individuals aged 2-10 by the number (`n_730_3650`) of detectable cases of malaria in individuals aged 2-10 (`n_detect_lm_730_3650`) on each day and calculating the mean of these values. Finally, initial EIR, output EIR, and *Pf*PR~2-10~ are stored in a data frame.

```{r}
# Establish a vector of initial EIR values to simulate over and generate matching
Expand Down Expand Up @@ -158,7 +158,7 @@ malSim_prev <- lapply(
mean(
output[
output$timestep %in% seq(4 * 365, 5 * 365),
'n_detect_730_3650'
'n_detect_lm_730_3650'
] / output[
output$timestep %in% seq(4 * 365, 5 * 365),
'n_730_3650'
Expand Down Expand Up @@ -276,7 +276,7 @@ library(cali)
summary_mean_pfpr_2_10 <- function (x) {
# Calculate the PfPR2-10:
prev_2_10 <- mean(x$n_detect_730_3650/x$n_730_3650)
prev_2_10 <- mean(x$n_detect_lm_730_3650/x$n_730_3650)
# Return the calculated PfPR2-10:
return(prev_2_10)
Expand Down Expand Up @@ -325,8 +325,8 @@ malsim_sim <- run_simulation(timesteps = (simparams_malsim$timesteps),
parameters = simparams_malsim)
# Extract the PfPR2-10 values for the cali and malsim simulation outputs:
cali_pfpr2_10 <- cali_sim$n_detect_730_3650 / cali_sim$n_730_3650
malsim_pfpr2_10 <- malsim_sim$n_detect_730_3650 / malsim_sim$n_730_3650
cali_pfpr2_10 <- cali_sim$n_detect_lm_730_3650 / cali_sim$n_730_3650
malsim_pfpr2_10 <- malsim_sim$n_detect_lm_730_3650 / malsim_sim$n_730_3650
# Store the PfPR2-10 in each time step for the two methods:
df <- data.frame(timestep = seq(1, length(cali_pfpr2_10)),
Expand Down
10 changes: 5 additions & 5 deletions vignettes/MDA.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -143,15 +143,15 @@ plot.new(); par(mar = c(4, 4, 1, 1), new = TRUE)
# Plot malaria prevalence in 2-10 years through time:
plot(x = mda_output$timestep,
y = mda_output$n_detect_730_3650/mda_output$n_730_3650,
y = mda_output$n_detect_lm_730_3650/mda_output$n_730_3650,
xlab = "Time (days)",
ylab = expression(paste(italic(Pf),"PR"[2-10])), cex = 0.8,
ylim = c(0, 1), type = "l", lwd = 2, xaxs = "i", yaxs = "i",
col = cols[3])
# Add the dynamics for no-intervention simulation
lines(x = noint_output$timestep,
y = noint_output$n_detect_730_3650/noint_output$n_730_3650,
y = noint_output$n_detect_lm_730_3650/noint_output$n_730_3650,
col = cols[4])
# Add vlines to indicate when SP-AQ were administered:
Expand Down Expand Up @@ -282,15 +282,15 @@ legend("topleft",
plot.new(); par(new = TRUE, mar = c(4, 4, 1, 1))
# Plot malaria prevalence in 2-10 years through time:
plot(x = smc_output$timestep, y = smc_output$n_detect_730_3650/smc_output$n_730_3650,
plot(x = smc_output$timestep, y = smc_output$n_detect_lm_730_3650/smc_output$n_730_3650,
xlab = "Time (days)",
ylab = expression(paste(italic(Pf),"PR"[2-10])), cex = 0.8,
ylim = c(0, 1), type = "l", lwd = 2, xaxs = "i", yaxs = "i",
col = cols[3])
# Add the dynamics for no-intervention simulation
lines(x = noint_output$timestep,
y = noint_output$n_detect_730_3650/noint_output$n_730_3650,
y = noint_output$n_detect_lm_730_3650/noint_output$n_730_3650,
col = cols[4])
# Add lines to indicate SMC events:
Expand All @@ -305,4 +305,4 @@ legend("topleft",
legend = c("SMC", "No-Int"),
col= c(cols[3:4]), box.col = "white",
lwd = 1, lty = c(1, 1), cex = 0.8)
```
```
2 changes: 1 addition & 1 deletion vignettes/Metapopulation.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ output3$mix <- 'perfectly-mixed'
output <- rbind(output1, output2, output3)
# get mean PfPR 2-10 by year
output$prev2to10 = output$p_detect_730_3650 / output$n_730_3650
output$prev2to10 = output$p_detect_lm_730_3650 / output$n_730_3650
output$year = ceiling(output$timestep / 365)
output$mix = factor(output$mix, levels = c('isolated', 'semi-mixed', 'perfectly-mixed'))
output <- aggregate(prev2to10 ~ mix + EIR + year, data = output, FUN = mean)
Expand Down
10 changes: 5 additions & 5 deletions vignettes/Model.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,8 @@ The `run_simulation()` function then simulates malaria transmission dynamics and
- `iva_mean`: mean acquired immunity to severe infection
- `ivm_mean`: mean maternal immunity to severe infection
- `n_730_3650`: population size of an age group of interest (where the default is set to 730-3650 days old, or 2-10 years, but which may be adjusted (see [Demography](https://mrc-ide.github.io/malariasimulation/articles/Demography.html) vignette for more details)
- `n_detect_730_3650`: number with possible detection through microscopy of a given age group
- `p_detect_730_3650`: the sum of probabilities of detection through microscopy of a given age group
- `n_detect_lm_730_3650`: number with possible detection through microscopy of a given age group
- `p_detect_lm_730_3650`: the sum of probabilities of detection through microscopy of a given age group
- `E_gamb_count`, `L_gamb_count`, `P_gamb_count`, `Sm_gamb_count`, `Pm_gamb_count`, `Im_gamb_count`: species-specific mosquito population sizes in each state (default set to *An. gambiae*)
- `total_M_gamb`: species-specific number of adult mosquitoes (default set to *An. gambiae*)

Expand All @@ -173,7 +173,7 @@ Where **treatments** are specified, `n_treated` will report the number that have

### Output visualisation

These outputs can then be visualised, such as the population changes in states. Another key output is the prevalence of detectable infections between the ages of 2-10 (*Pf*PR~2-10~), which can be obtained by dividing `n_detect_730_3650` by `n_730_3650`.
These outputs can then be visualised, such as the population changes in states. Another key output is the prevalence of detectable infections between the ages of 2-10 (*Pf*PR~2-10~), which can be obtained by dividing `n_detect_lm_730_3650` by `n_730_3650`.

```{r, fig.align = 'center', out.width='100%', fig.asp=0.55, }
# Define vector of column names to plot
Expand Down Expand Up @@ -202,7 +202,7 @@ par(mfrow = c(1,2))
states_plot(test_sim)
# Calculate Pf PR 2-10
test_sim$PfPR2_10 <- test_sim$n_detect_730_3650/test_sim$n_730_3650
test_sim$PfPR2_10 <- test_sim$n_detect_lm_730_3650/test_sim$n_730_3650
# Plot Pf PR 2-10
plot(x = test_sim$timestep, y = test_sim$PfPR2_10, type = "l",
Expand All @@ -226,7 +226,7 @@ par(mfrow = c(1,2))
states_plot(test_sim_eq)
# Calculate Pf PR 2-10
test_sim_eq$PfPR2_10 <- test_sim_eq$n_detect_730_3650/test_sim_eq$n_730_3650
test_sim_eq$PfPR2_10 <- test_sim_eq$n_detect_lm_730_3650/test_sim_eq$n_730_3650
# Plot Pf PR 2-10
plot(x = test_sim_eq$timestep, y = test_sim_eq$PfPR2_10, type = "l",
Expand Down
8 changes: 4 additions & 4 deletions vignettes/Parameter_variation.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ sim <- run_simulation(timesteps = 1000, simparams)
# plot the default median parameter
plot(
sim$timestep,
sim$n_detect_730_3650 / sim$n_730_3650,
sim$n_detect_lm_730_3650 / sim$n_730_3650,
t = "l",
ylim = c(0, 1),
ylab = "PfPr",
Expand All @@ -60,7 +60,7 @@ Keep in mind that `set_parameter_draw` must be called prior to `set_equilibrium`
# plot the default median parameter
plot(
sim$timestep[1:500],
sim$n_detect_730_3650[1:500] / sim$n_730_3650[1:500],
sim$n_detect_lm_730_3650[1:500] / sim$n_730_3650[1:500],
t = "l",
ylim = c(0, 1),
ylab = "PfPr",
Expand All @@ -78,9 +78,9 @@ for (i in 1:7) {
sim <- run_simulation(timesteps = 500, param_draw)
lines(sim$timestep, sim$n_detect_730_3650 / sim$n_730_3650, col = cols[i])
lines(sim$timestep, sim$n_detect_lm_730_3650 / sim$n_730_3650, col = cols[i])
}
```


For more information on uncertainty in parameters, please refer to [The US President's Malaria Initiative, Plasmodium falciparum transmission and mortality: A modelling study](https://journals.plos.org/plosmedicine/article?id=10.1371/journal.pmed.1002448), Supplemental material, Section 4.
For more information on uncertainty in parameters, please refer to [The US President's Malaria Initiative, Plasmodium falciparum transmission and mortality: A modelling study](https://journals.plos.org/plosmedicine/article?id=10.1371/journal.pmed.1002448), Supplemental material, Section 4.
4 changes: 2 additions & 2 deletions vignettes/SetSpecies.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ We will create a plotting function to visualise the output.
```{r}
# Plotting functions
plot_prev <- function() {
plot(x = output_endophilic$timestep, y = output_endophilic$n_detect_730_3650 / output_endophilic$n_730_3650,
plot(x = output_endophilic$timestep, y = output_endophilic$n_detect_lm_730_3650 / output_endophilic$n_730_3650,
type = "l", col = cols[3], lwd = 1,
xlab = "Time (days)", ylab = expression(paste(italic(Pf),"PR"[2-10])),
xaxs = "i", yaxs = "i", ylim = c(0,1))
lines(x = output_exophilic$timestep, y = output_exophilic$n_detect_730_3650 / output_exophilic$n_730_3650,
lines(x = output_exophilic$timestep, y = output_exophilic$n_detect_lm_730_3650 / output_exophilic$n_730_3650,
col = cols[5], lwd = 1)
abline(v = sprayingtimesteps, lty = 2, lwd = 2.5, col = "black")
text(x = sprayingtimesteps + 10, y = 0.9, labels = "Spraying\nint.", adj = 0, cex = 0.8)
Expand Down
10 changes: 5 additions & 5 deletions vignettes/Treatment.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -124,20 +124,20 @@ output <- run_simulation(sim_length, treatment_params)

### Visualisation

Following simulation of malaria transmission under this treatment regimen, we can now visualise the effect of the regimen on the number of detectable cases through time using the `n_detect_730_3650`.
Following simulation of malaria transmission under this treatment regimen, we can now visualise the effect of the regimen on the number of detectable cases through time using the `n_detect_lm_730_3650`.

```{r, fig.align = 'center', out.width='100%'}
# Plot results
plot(x = output$timestep, y = output$n_detect_730_3650, type = "l",
plot(x = output$timestep, y = output$n_detect_lm_730_3650, type = "l",
xlab = "Days", ylab = "Detectable cases", col = cols[1],
ylim = c(min(output$n_detect_730_3650)-1, max(output$n_detect_730_3650)+7),
ylim = c(min(output$n_detect_lm_730_3650)-1, max(output$n_detect_lm_730_3650)+7),
xaxs = "i", yaxs = "i")
# Show treatment times
abline(v = 300, lty = 2)
text(x = 310, y = max(output$n_detect_730_3650), labels = "Treatment\nbegins", adj = 0, cex = 0.8)
text(x = 310, y = max(output$n_detect_lm_730_3650), labels = "Treatment\nbegins", adj = 0, cex = 0.8)
abline(v = 600, lty = 2)
text(x = 610, y = max(output$n_detect_730_3650), labels = "Treatment\nends", adj = 0, cex = 0.8)
text(x = 610, y = max(output$n_detect_lm_730_3650), labels = "Treatment\nends", adj = 0, cex = 0.8)
# Add grid lines
grid(lty = 2, col = "grey80", nx = 11, ny = 10, lwd = 0.5)
Expand Down
6 changes: 3 additions & 3 deletions vignettes/Vaccines.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,12 @@ plot_prev <- function(type = "not seasonal"){
output$time_year <- output$timestep / year
comparison$time_year <- comparison$timestep / year
plot(x = output$time_year, y = output$n_detect_730_3650/output$n_730_3650,
plot(x = output$time_year, y = output$n_detect_lm_730_3650/output$n_730_3650,
type = "l", col = cols[3], ylim=c(0,1), lwd = 3,
xlab = "Time (years)", ylab = expression(paste(italic(Pf),"PR"[2-10])),
xaxs = "i", yaxs = "i")
grid(lty = 2, col = "grey80", lwd = 0.5)
lines(x = comparison$time_year, y = comparison$n_detect_730_3650/comparison$n_730_3650,
lines(x = comparison$time_year, y = comparison$n_detect_lm_730_3650/comparison$n_730_3650,
col = cols[6], lwd = 3)
abline(v = vaccinetime, col = "black", lty = 2, lwd = 2.5)
text(x = vaccinetime + 0.05, y = 0.9, labels = "Start of\nvaccination", adj = 0, cex = 0.8)
Expand Down Expand Up @@ -388,7 +388,7 @@ plot_prev()
```{r, fig.align = 'center', out.width='100%', message=FALSE}
# Plot doses
output$month <- ceiling(output$timestep / month)
doses <- output[, c(2:6, 38)]
doses <- output[, c(grep(pattern = "n_pev", x = names(output), value = T), "month")]
doses <- aggregate(cbind(doses[1:5]),
by = list(doses$month),
FUN = sum)
Expand Down
6 changes: 3 additions & 3 deletions vignettes/Variation.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ plot_prev <- function(output, ylab = TRUE, ylim = c(0,1)){
if (ylab == TRUE) {
ylab = "Prevalence in children aged 2-10 years"
} else {ylab = ""}
plot(x = output$timestep, y = output$n_detect_730_3650 / output$n_730_3650,
plot(x = output$timestep, y = output$n_detect_lm_730_3650 / output$n_730_3650,
type = "l", col = cols[3], ylim = ylim,
xlab = "Time (days)", ylab = ylab, lwd = 1,
xaxs = "i", yaxs = "i")
Expand All @@ -49,7 +49,7 @@ plot_inci <- function(output, ylab = TRUE, ylim){
aggregate_function <- function(df){
tmp <- aggregate(
df$n_detect_730_3650,
df$n_detect_lm_730_3650,
by=list(df$timestep),
FUN = function(x) {
c(median = median(x),
Expand Down Expand Up @@ -108,7 +108,7 @@ simparams_big <- set_equilibrium(parameters = simparams_big, init_EIR = 50)

### Simulations

The `n_detect_730_3650` output below shows the total number of individuals in the age group rendered (here, 730-3650 timesteps or 2-10 years) who have microscopy-detectable malaria. Notice that the output is smoother at a higher population.
The `n_detect_lm_730_3650` output below shows the total number of individuals in the age group rendered (here, 730-3650 timesteps or 2-10 years) who have microscopy-detectable malaria. Notice that the output is smoother at a higher population.

Some outcomes will be more sensitive than others to stochastic variation even with the same population size. In the plots below, prevalence is smoother than incidence even at the same population. This is because prevalence is a measure of existing infection, while incidence is recording new cases per timestep.

Expand Down
Loading

0 comments on commit c62decc

Please sign in to comment.