# Simple epidemic with constant R = 1.5
constant_r <- rep(1.5, 30)
epidemic1 <- generate_synthetic_epidemic(
true_r = constant_r,
si_mean = 7,
si_sd = 3,
si_dist = "gamma"
)
head(epidemic1)
# Epidemic with declining R (e.g., intervention effect)
declining_r <- seq(2.0, 0.5, length.out = 50)
epidemic2 <- generate_synthetic_epidemic(
true_r = declining_r,
si_mean = 5,
si_sd = 2,
si_dist = "gamma",
initial_cases = 5
)
# Epidemic with seasonal pattern
days <- 100
seasonal_r <- 1.2 + 0.5 * sin(2 * pi * (1:days) / 365 * 7) # Weekly seasonality
epidemic3 <- generate_synthetic_epidemic(
true_r = seasonal_r,
si_mean = 6,
si_sd = 2.5,
si_dist = "normal"
)
# Plot the results
if (require(ggplot2)) {
library(ggplot2)
ggplot(epidemic1, aes(x = date)) +
geom_col(aes(y = incidence), alpha = 0.7) +
geom_line(aes(y = true_r * 10), color = "red") +
labs(title = "Synthetic Epidemic",
y = "Daily Incidence",
subtitle = "Red line: True R × 10")
}
Run the code above in your browser using DataLab