A set of ten different estimators, currently for one-parameter Archimedean copulas, of possibly quite high dimensions.
enacopula(u, cop,
          method = c("mle", "smle", "dmle",
                     "mde.chisq.CvM", "mde.chisq.KS",
                     "mde.gamma.CvM", "mde.gamma.KS",
                     "tau.tau.mean", "tau.theta.mean", "beta"),
          n.MC = if (method == "smle") 10000 else 0,
          interval = initOpt(cop@copula@name),
          xargs = list(), …)\(n\times d\)-matrix of (pseudo-)observations (each
    value in \([0,1]\)) from the copula to be estimated, where \(n\)
    denotes the sample size and \(d\) the dimension.  Consider applying the
    function pobs first in order to obtain u.
a character string specifying the
    estimation method to be used, which has to be one (or a unique
    abbreviation) of
"mle"maximum likelihood estimator (MLE) computed
	via .emle.
"smle"simulated maximum likelihood estimator (SMLE)
	computed with the function .emle, where
	n.MC gives the Monte Carlo sample size.
"dmle"MLE based on the diagonal (DMLE); see
	edmle.
"mde.chisq.CvM"minimum distance estimator based
	on the chisq distribution and Cram<U+00E9>r-von Mises
	distance; see emde.
"mde.chisq.KS"minimum distance estimation based on
	the chisq distribution and Kolmogorov-Smirnov distance; see
	emde.
"mde.gamma.CvM"minimum distance estimation based on
	the Erlang distribution and Cram<U+00E9>r-von Mises distance;
	see emde.
"mde.gamma.KS"minimum distance estimation based on
	the Erlang distribution and Kolmogorov-Smirnov distance; see
	emde.
"tau.tau.mean"averaged pairwise Kendall's tau estimator
"tau.theta.mean"average of pairwise Kendall's tau estimators
"beta"multivariate Blomqvist's beta estimator
only for method = "smle": integer,
    sample size for simulated maximum likelihood estimation.
bivariate vector denoting the interval where
    optimization takes place.  The default is computed as described in
    Hofert et al. (2012).  Used for all methods except
    "tau.tau.mean" and "tau.theta.mean".
list of additional arguments for the chosen estimation method.
additional arguments passed to optimize.
the estimated parameter, \(\hat{\theta}\), that is, currently a number as only one-parameter Archimedean copulas are considered.
enacopula serves as a wrapper for the different
  implemented estimators and provides a uniform framework to utilize
  them.  For more information, see the single estimators as given in the
  section ‘See Also’.
Note that Hofert, M<U+00E4>chler, and McNeil (2013) compared these
  estimators. Their findings include a rather poor performance and numerically
  challenging problems of some of these estimators. In particular, the
  estimators obtained by method="mde.gamma.CvM",
  method="mde.gamma.KS", method="tau.theta.mean", and
  method="beta" should be used with care (or not at all). Overall, MLE
  performed best (by far).
Hofert, M., M<U+00E4>chler, M., and McNeil, A. J. (2012). Likelihood inference for Archimedean copulas in high dimensions under known margins. Journal of Multivariate Analysis 110, 133--150.
Hofert, M., M<U+00E4>chler, M., and McNeil, A. J. (2013). Archimedean Copulas in High Dimensions: Estimators and Numerical Challenges Motivated by Financial Applications. Journal de la Soci<U+00E9>t<U+00E9> Fran<U+00E7>aise de Statistique 154(1), 25--63.
emle which returns an object of "'>mle"
  providing useful methods not available for other estimators.
  demo(opC-demo) and vignette("GIG", package="copula") for
  examples of two-parameter families.
  edmle for the diagonal maximum likelihood estimator.
  emde for the minimum distance estimators.
  etau for the estimators based on Kendall's tau.
  ebeta for the estimator based on Blomqvist's beta.
# NOT RUN {
tau <- 0.25
(theta <- copGumbel@iTau(tau)) # 4/3
d <- 12
(cop <- onacopulaL("Gumbel", list(theta,1:d)))
set.seed(1)
n <- 100
U <- rnacopula(n, cop)
meths <- eval(formals(enacopula)$method)
# }
# NOT RUN {
<!-- % as that is slow.. -->
# }
# NOT RUN {
fun <- function(meth, u, cop, theta) {
	run.time <- system.time(val <- enacopula(u, cop=cop, method=meth))
	list(value=val, error=val-theta, utime.ms=1000*run.time[[1]])
}
t(res <- sapply(meths, fun, u=U, cop=cop, theta=theta))
# }
Run the code above in your browser using DataLab