semiparaKernelEstimate: Estimate the semi-parametric synthetic (log) likelihood

semiparaKernelEstimateR Documentation

Estimate the semi-parametric synthetic (log) likelihood

Description

This function computes the semi-parametric synthetic likelihood estimator of \insertCiteAn2018BSL. The advantage of this semi-parametric estimator over the standard synthetic likelihood estimator is that the semi-parametric one is more robust to non-normal summary statistics. Kernel density estimation is used for modelling each univariate marginal distribution, and the dependence structure between summaries are captured using a Gaussian copula. Shrinkage on the correlation matrix parameter of the Gaussian copula is helpful in decreasing the number of simulations.

Usage

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

Arguments

ssy

The observed summary statisic.

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. The default is NULL, which means no shrinkage is used. Current options are “glasso” for the graphical lasso method of \insertCiteFriedman2008;textualBSL and “Warton” for the ridge regularisation method of \insertCiteWarton2008;textualBSL.

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 likelihood is given as the result. The default is TRUE.

Value

The estimated synthetic (log) likelihood value.

References

\insertAllCited \insertRef

Friedman2008BSL

\insertRef

Warton2008BSL

\insertRef

Boudt2012BSL

See Also

Other available synthetic likelihood estimators: gaussianSynLike for the standard synthetic likelihood estimator, gaussianSynLikeGhuryeOlkin for the unbiased synthetic likelihood estimator, synLikeMisspec for the Gaussian synthetic likelihood estimator for model misspecification.

Examples

data(ma2)
ssy <- ma2_sum(ma2$data)
m <- newModel(fnSim = ma2_sim, fnSum = ma2_sum, simArgs = ma2$sim_args,
              theta0 = ma2$start, sumArgs = list(delta = 0.5))
ssx <- simulation(m, n = 300, theta = c(0.6, 0.2), seed = 10)$ssx

# check the distribution of the first summary statistic: highly non-normal
plot(density(ssx[, 1]))

# the standard synthetic likelihood estimator over-estimates the likelihood here
gaussianSynLike(ssy, ssx)
# the semi-parametric synthetic likelihood estimator is more robust to non-normality
semiparaKernelEstimate(ssy, ssx)
# using shrinkage on the correlation matrix of the Gaussian copula is also possible
semiparaKernelEstimate(ssy, ssx, shrinkage = "Warton", penalty = 0.8)


BSL documentation built on Nov. 3, 2022, 9:06 a.m.