This function minimizes the Euclidean distance between the sample kurtosis of
the back-transformed data \(W_{\delta}(\boldsymbol z)\) and a
user-specified target kurtosis as a function of \(\delta\) (see
References). Only an iterative application of this function will give a
good estimate of \(\delta\) (see IGMM).
type of Lambert W \(\times\) F distribution: skewed "s";
heavy-tail "h"; or skewed heavy-tail "hh".
kurtosis.x
theoretical kurtosis of the input X; default: 3
(e.g., for \(X \sim\) Gaussian).
skewness.x
theoretical skewness of the input X. Only used if type = "hh";
default: 0 (e.g., for \(X \sim\) symmetric).
delta.init
starting value for optimization; default: delta_Taylor.
tol
a positive scalar; tolerance level for terminating
the iterative algorithm; default: .Machine$double.eps^0.25.
not.negative
logical; if TRUE the estimate for \(\delta\) is
restricted to the non-negative reals. Default: FALSE.
optim.fct
which R optimization function should be used. Either 'optimize'
(only for type = 'h' and if not.negative = FALSE) or 'nlm'.
Performance-wise there is no big difference.
lower, upper
lower and upper bound for optimization if optim.fct = 'optimize'
and not.negative = FALSE. Default: -1 and 3
(this covers most real-world heavy-tail scenarios).
Value
A list with two elements:
delta
optimal \(\delta\) for data \(z\),
iterations
number of iterations (NA for 'optimize').
See Also
gamma_GMM for the skewed version of this function;
IGMM to estimate all parameters jointly.
# NOT RUN {# very heavy-tailed (like a Cauchy)y <- rLambertW(n = 1000, theta = list(beta = c(1, 2), delta = 1),
distname = "normal")
delta_GMM(y) # after the first iteration# }