MultiBD is anR package for directlikelihood-based inference of multivariate birth-death processes.
CRAN release version:install.packages("MultiBD")MultiBD fromgithub:devtools::install_github("msuchard/MultiBD")library(MultiBD)data(Eyam)loglik_sir <- function(param, data) { alpha <- exp(param[1]) # Rates must be non-negative beta <- exp(param[2]) # Set-up SIR model drates1 <- function(a, b) { 0 } brates2 <- function(a, b) { 0 } drates2 <- function(a, b) { alpha * b } trans12 <- function(a, b) { beta * a * b } sum(sapply(1:(nrow(data) - 1), # Sum across all time steps k function(k) { log( dbd_prob( # Compute the transition probability matrix t = data$time[k + 1] - data$time[k], # Time increment a0 = data$S[k], b0 = data$I[k], # From: S(t_k), I(t_k) drates1, brates2, drates2, trans12, a = data$S[k + 1], B = data$S[k] + data$I[k] - data$S[k + 1], computeMode = 4, nblocks = 80 # Compute using 4 threads )[1, data$I[k + 1] + 1] # To: S(t_(k+1)), I(t_(k+1)) ) }))}loglik_sir(log(c(3.204, 0.019)), Eyam) # Evaluate at modeMultiBD is licensed under Apache License 2.0
Beta