LFMCMC | R Documentation |
Likelihood-Free Markhov Chain Monte Carlo (LFMCMC)
LFMCMC(model = NULL)
run_lfmcmc(lfmcmc, params_init, n_samples, epsilon, seed = NULL)
set_observed_data(lfmcmc, observed_data)
set_proposal_fun(lfmcmc, fun)
use_proposal_norm_reflective(lfmcmc)
set_simulation_fun(lfmcmc, fun)
set_summary_fun(lfmcmc, fun)
set_kernel_fun(lfmcmc, fun)
use_kernel_fun_gaussian(lfmcmc)
get_mean_params(lfmcmc)
get_mean_stats(lfmcmc)
get_initial_params(lfmcmc)
get_current_proposed_params(lfmcmc)
get_current_accepted_params(lfmcmc)
get_current_proposed_stats(lfmcmc)
get_current_accepted_stats(lfmcmc)
get_observed_stats(lfmcmc)
get_all_sample_params(lfmcmc)
get_all_sample_stats(lfmcmc)
get_all_sample_acceptance(lfmcmc)
get_all_sample_drawn_prob(lfmcmc)
get_all_sample_kernel_scores(lfmcmc)
get_all_accepted_params(lfmcmc)
get_all_accepted_stats(lfmcmc)
get_all_accepted_kernel_scores(lfmcmc)
get_n_samples(lfmcmc)
get_n_stats(lfmcmc)
get_n_params(lfmcmc)
## S3 method for class 'epiworld_lfmcmc'
verbose_off(x)
set_params_names(lfmcmc, names)
set_stats_names(lfmcmc, names)
## S3 method for class 'epiworld_lfmcmc'
print(x, burnin = 0, ...)
model |
A model of class epiworld_model or |
lfmcmc |
LFMCMC model |
params_init |
Initial model parameters, treated as double |
n_samples |
Number of samples, treated as integer |
epsilon |
Epsilon parameter, treated as double |
seed |
Random engine seed |
observed_data |
Observed data, treated as double. |
fun |
A function (see details). |
x |
LFMCMC model to print |
names |
Character vector of names. |
burnin |
Integer. Number of samples to discard as burnin before computing the summary. |
... |
Ignored |
Performs a Likelihood-Free Markhov Chain Monte Carlo simulation. When
model
is not NULL
, the model uses the same random-number generator
engine as the model. Otherwise, when model
is NULL
, a new random-number
generator engine is created.
The functions passed to the LFMCMC object have different arguments depending on the object:
set_proposal_fun
: A vector of parameters and the model.
set_simulation_fun
: A vector of parameters and the model.
set_summary_fun
: A vector of simulated data and the model.
set_kernel_fun
: A vector of simulated statistics, observed statistics,
epsilon, and the model.
The verbose_on
and verbose_off
functions activate and deactivate printing
progress on screen, respectively. Both functions return the model (x
) invisibly.
The LFMCMC
function returns a model of class epiworld_lfmcmc.
The simulated model of class epiworld_lfmcmc.
use_kernel_fun_gaussian
: The LFMCMC model with kernel function set to
gaussian.
get_mean_params
: The param means for the given lfmcmc model.
get_mean_stats
: The stats means for the given lfmcmc model.
The function get_initial_params
returns the initial parameters
for the given LFMCMC model.
The function get_current_proposed_params
returns the proposed parameters
for the next LFMCMC sample.
The function get_current_accepted_params
returns the most recently accepted
parameters (the current state of the LFMCMC)
The function get_current_proposed_stats
returns the statistics
from the simulation run with the proposed parameters
The function get_current_accepted_stats
returns the statistics
from the most recently accepted parameters
The function get_observed_stats
returns the statistics
for the observed data
The function get_all_sample_params
returns a matrix of sample
parameters for the given LFMCMC model. with the number of rows equal to the
number of samples and the number of columns equal to the number of
parameters.
The function get_all_sample_stats
returns a matrix of statistics
for the given LFMCMC model. with the number of rows equal to the number of
samples and the number of columns equal to the number of statistics.
The function get_all_sample_acceptance
returns a vector of boolean flags
which indicate whether a given sample was accepted
The function get_all_sample_drawn_prob
returns a vector of drawn probabilities
for each sample
The function get_all_sample_kernel_scores
returns a vector of kernel scores for
each sample
The function get_all_accepted_params
returns a matrix of accepted
parameters for the given LFMCMC model. with the number of rows equal to the
number of samples and the number of columns equal to the number of
parameters.
The function get_all_accepted_stats
returns a matrix of accepted statistics
for the given LFMCMC model. with the number of rows equal to the number of
samples and the number of columns equal to the number of statistics.
The function get_all_accepted_kernel_scores
returns a vector of kernel scores for
each accepted sample
The functions get_n_samples
, get_n_stats
, and get_n_params
return the number of samples, statistics, and parameters for the given
LFMCMC model, respectively.
The verbose_on
and verbose_off
functions return the same model, however
verbose_off
returns the model with no progress bar.
set_params_names
: The lfmcmc model with the parameter names added.
set_stats_names
: The lfmcmc model with the stats names added.
## Setup an SIR model to use in the simulation
model_seed <- 122
model_sir <- ModelSIR(name = "COVID-19", prevalence = .1,
transmission_rate = .9, recovery_rate = .3)
agents_smallworld(
model_sir,
n = 1000,
k = 5,
d = FALSE,
p = 0.01
)
verbose_off(model_sir)
run(model_sir, ndays = 50, seed = model_seed)
## Setup LFMCMC
# Extract the observed data from the model
obs_data <- get_today_total(model_sir)
# Define the simulation function
simfun <- function(params, lfmcmc_obj) {
set_param(model_sir, "Recovery rate", params[1])
set_param(model_sir, "Transmission rate", params[2])
run(model_sir, ndays = 50)
res <- get_today_total(model_sir)
return(res)
}
# Define the summary function
sumfun <- function(dat, lfmcmc_obj) {
return(dat)
}
# Create the LFMCMC model
lfmcmc_model <- LFMCMC(model_sir) |>
set_simulation_fun(simfun) |>
set_summary_fun(sumfun) |>
use_proposal_norm_reflective() |>
use_kernel_fun_gaussian() |>
set_observed_data(obs_data)
## Run LFMCMC simulation
# Set initial parameters
par0 <- c(0.1, 0.5)
n_samp <- 2000
epsil <- 1.0
# Run the LFMCMC simulation
verbose_off(lfmcmc_model)
run_lfmcmc(
lfmcmc = lfmcmc_model,
params_init = par0,
n_samples = n_samp,
epsilon = epsil,
seed = model_seed
)
# Print the results
set_stats_names(lfmcmc_model, get_states(model_sir))
set_params_names(lfmcmc_model, c("Immune recovery", "Infectiousness"))
print(lfmcmc_model)
get_mean_stats(lfmcmc_model)
get_mean_params(lfmcmc_model)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.