abi_sample_posterior: Sample from posterior distribution using trained neural...

View source: R/abi_sample_posterior.R

abi_sample_posteriorR Documentation

Sample from posterior distribution using trained neural estimator

Description

A wrapper around NeuralEstimators::sampleposterior() that automatically extracts the trained estimator from a trained estimator object created by abi_train and returns posterior samples in a 3D array format.

Usage

abi_sample_posterior(trained_estimator, Z = NULL, N = 1000, ...)

Arguments

trained_estimator

A trained estimator object returned by abi_train. Must be of class eam_abi_trained_estimator and contain a trained_estimator element.

Z

Data in a format amenable to the neural-network architecture of estimator. Can be a single data set or a list of data sets. If NULL (default), uses Z_test from the ABI input object.

N

Integer; number of approximate posterior samples to draw (default: 1000).

...

Additional keyword arguments passed to the Julia version of sampleposterior(), applicable when estimator is a likelihood-to-evidence-ratio estimator.

Details

This function extracts the trained neural posterior estimator from the trained estimator object and uses it to sample from the approximate posterior distribution given data Z. The samples are stacked using Julia's stack() function, then converted to a tibble in R for easy manipulation and summarization.

Value

A tibble of class eam_abi_posterior_samples containing posterior samples. Each row represents one posterior sample for one dataset. Columns include dataset_id (integer dataset identifier) and one column for each parameter.

Note

This function initializes the global Julia environment on first call.

Examples

## Not run: 
# Train an estimator first
trained_estimator <- abi_train(
  estimator = estimator,
  abi_input = abi_input,
  epochs = 100
)

# Sample from posterior using test data (default)
posterior_samples <- abi_sample_posterior(
  trained_estimator = trained_estimator,
  N = 1000
)

# Sample from posterior for specific data
posterior_samples <- abi_sample_posterior(
  trained_estimator = trained_estimator,
  Z = abi_input$Z_test,
  N = 2000
)

## End(Not run)


eam documentation built on March 29, 2026, 5:07 p.m.