Learn R Programming

BSL (version 3.0.0)

semiparaKernelEstimate: Estimating the semi-parametric joint likelihood

Description

This function computes the semi-parametric likelihood estimator of An et al (2018). Kernel density estimates are used for modelling each univariate marginal distribution, and the dependence structure between summaries are captured using a Gaussian copula.

Usage

semiparaKernelEstimate(ssy, ssx, kernel = "gaussian", shrinkage = NULL,
  penalty = NULL, log = TRUE)

Arguments

ssy

The observed summary statistic.

ssx

A matrix of the simulated summary statistics. The number of rows is the same as the number of simulations per iteration.

kernel

A string argument indicating the smoothing kernel to pass into density for estimating the marginal distribution of each summary statistic. Only ``gaussian" and ``epanechnikov" are available. The default is ``gaussian".

shrinkage

A string argument indicating which shrinkage method to be used on the correlation matrix of the Gaussian copula. The default is NULL, which means no shrinkage is used. Current options are ``glasso" for graphical lasso and ``Warton" for the ridge regularisation method of Warton (2008).

penalty

The penalty value to be used for the specified shrinkage method. Must be between zero and one if the shrinkage method is ``Warton''.

log

A logical argument indicating if the log of the likelihood is given as the result. The default is TRUE.

Value

The estimated synthetic (log) likelihood value.

References

An, Z., Nott, D. J. & Drovandi, C. (2018). Robust Bayesian Synthetic Likelihood via a Semi-Parametric Approach. https://arxiv.org/abs/1809.05800

Friedman, J., Hastie, T., Tibshirani, R. (2008). Sparse inverse covariance estimation with the graphical lasso. Biostatistics. https://doi.org/10.1093/biostatistics/kxm045

Warton, D. I. (2008). Penalized Normal Likelihood and Ridge Regularization of Correlation and Covariance Matrices, Journal of the American Statistical Association. https://www.tandfonline.com/doi/abs/10.1198/016214508000000021

See Also

gaussianSynLike for the standard synthetic likelihood estimator, gaussianSynLikeGhuryeOlkin for the unbiased synthetic likelihood estimator.

Examples

Run this code
# NOT RUN {
data(ma2)
y <- ma2$data # the observed data

theta_true <- c(0.6, 0.2)
x <- matrix(0, 300, 50)
set.seed(100)
for(i in 1:300) x[i, ] <- ma2_sim(theta_true, 50)

# the default semi-parametric synthetic likelihood estimator of semiBSL
semiparaKernelEstimate(y, x)
# using shrinkage on the correlation matrix of the Gaussian copula is also possible
semiparaKernelEstimate(y, x, shrinkage = 'Warton', penalty = 0.6)

# }

Run the code above in your browser using DataLab