# Getting started with ECMLE

# Overview

`ECMLE` implements Elliptical Covering Marginal Likelihood Estimator. The package is designed for settings where you have posterior draws, their log-posterior evaluations, and a function that can evaluate the log-posterior kernel away from the sampled points.

# Minimal example

    set.seed(1)
    post_samples <- cbind(rnorm(400), rnorm(400))
    lps <- apply(post_samples, 1, function(z) sum(dnorm(z, log = TRUE)))
    log_post_fn <- function(theta) sum(dnorm(theta, log = TRUE))

    fit <- ECMLE::ecmle(
      post_samples = post_samples,
      lps = lps,
      log_post_fn = log_post_fn,
      hpd_level = 0.75,
      seed = 123
    )

    fit
    #> <ecmle>
    #>   log marginal likelihood: 0.0517178
    #>   ellipsoids: 1
    #>   coverage rate: 0.575
    summary(fit)
    #> ECMLE summary
    #>   log marginal likelihood: 0.0517178
    #>   ellipsoids: 1
    #>   total volume: 6.62691
    #>   HPD level: 0.75