delta_GMM: Estimate delta

View source: R/delta_GMM.R

delta_GMMR Documentation

Estimate delta

Description

This function minimizes the Euclidean distance between the sample kurtosis of the back-transformed data W_{δ}(\boldsymbol z) and a user-specified target kurtosis as a function of δ (see References). Only an iterative application of this function will give a good estimate of δ (see IGMM).

Usage

delta_GMM(
  z,
  type = c("h", "hh"),
  kurtosis.x = 3,
  skewness.x = 0,
  delta.init = delta_Taylor(z),
  tol = .Machine$double.eps^0.25,
  not.negative = FALSE,
  optim.fct = c("nlm", "optimize"),
  lower = -1,
  upper = 3
)

Arguments

z

a numeric vector of data values.

type

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 δ 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 δ 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.

Examples


# 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


LambertW documentation built on Sept. 22, 2022, 5:07 p.m.