initOpt(family, tau.range=NULL, interval = TRUE, u,
method = c("tau.Gumbel", "tau.mean"), warn = TRUE, ...)
NULL
which choses family-specific defaults,
see the function definition.logical
indicating whether an initial interval
(the default) or an initial value should be returned.family
. Note that u
can be omitted if
interval=TRUE
.character
string specifying the method to be
used to compute an estimate of Kendall's tau. This has to be one (or a
unique abbreviation) of
[object Object],[object Object]method="tau.Gumbel"
when the diagonal maximum-likelihood
estimator is smaller than $1$.cor()
when
method="tau.mean"
.emle
).method="tau.mean"
and interval=FALSE
, the mean of pairwise
sample versions of Kendall's tau is computed as an estimator of the Kendall's
tau of the Archimedean copula family provided. This can be slow, especially
if the dimension is large. Method method="tau.Gumbel"
(the default)
uses the explicit and thus very fast diagonal maximum-likelihood estimator for
Gumbel's family to find initial values. Given this estimator
$\hat{\theta}^\mathrm{G}$, the corresponding Kendall's tau
is $\tau^\mathrm{G}(\hat{\theta}^\mathrm{G})$ where
$\tau^\mathrm{G}(\theta)=(\theta-1)/\theta$
denotes Kendall's tau for Gumbel. This provides an estimator of Kendall's tau
which is typically much faster to evaluate than, pairwise Kendall's taus.
Given the estimated tau.range
, the point in tau.range
closest to the estimated Kendall's tau is chosen. The default (interval=TRUE
) returns a reasonably large initial
interval; see the default of tau.range
in the definition of
initOpt
for the chosen values (in terms of Kendall's tau). These
default values cover a large range of concordance. If this interval is
(still) too small, one can adjust it by providing tau.range
. If it is
too large, a interval=TRUE
, u
is not
required.
enacopula
, emle
, edmle
,
emde
, and ebeta
(where initOpt
is
applied to find initial intervals).## Definition of the function:
initOpt
## Generate some data:
tau <- 0.25
(theta <- copGumbel@iTau(tau)) # 4/3
d <- 20
(cop <- onacopulaL("Gumbel", list(theta,1:d)))
set.seed(1)
n <- 200
U <- rnacopula(n, cop)
## Initial interval:
initOpt("Gumbel") # contains theta
## Initial values:
initOpt("Gumbel", interval=FALSE, u=U) # 1.3195
initOpt("Gumbel", interval=FALSE, u=U, method="tau.mean") # 1.2844
Run the code above in your browser using DataLab