retel implements the regularized exponentially tilted empirical likelihood method. The proposed method removes the convex hull constraint using a novel regularization technique, providing a suitable pseudo-likelihood for Bayesian inference.
The following functions enable users to set estimating functions by providing data and parameters:
etel()
computes exponentially tilted empirical likelihood without regularization.retel()
computes regularized exponentially tilted empirical likelihood with regularization parameters.
This repository accompanies the research paper titled ‘Regularized
Exponentially Tilted Empirical Likelihood for Bayesian Inference,’
available on arXiv. The
retel-paper/
folder contains code and outputs from the paper. This
work was supported by the U.S. National Science Foundation under Grants
No. SES-1921523
and
DMS-2015552.
You can install the latest stable release of retel from CRAN.
install.packages("retel")
You can install the development version of retel from GitHub.
# install.packages("pak")
pak::pak("markean/retel")
library(retel)
# Generate data
set.seed(63456)
x <- rnorm(100)
# Define an estimating function (ex. mean)
fn <- function(x, par) {
x - par
}
# Set parameter value
par <- 0
# Set regularization parameters
mu <- 0
Sigma <- 1
tau <- 1
# Call the retel function to compute the log-likelihood ratio. The return value
# contains the optimization results as the attribute 'optim'.
retel(fn, x, par, mu, Sigma, tau)
#> [1] -0.06709306
#> attr(,"optim")
#>
#> Call:
#>
#> nloptr(x0 = rep(0, p), eval_f = eval_obj_fn, eval_grad_f = eval_gr_obj_fn,
#> opts = opts, g = g, mu = mu, Sigma = Sigma, n = n, tau = tau)
#>
#>
#> Minimization using NLopt version 2.7.1
#>
#> NLopt solver status: 1 ( NLOPT_SUCCESS: Generic success return value. )
#>
#> Number of Iterations....: 4
#> Termination conditions: xtol_rel: 1e-04
#> Number of inequality constraints: 0
#> Number of equality constraints: 0
#> Optimal value of objective function: 0.999330716387232
#> Optimal value of controls: -0.03738174