# IGMM: Iterative Generalized Method of Moments - IGMM In LambertW: Probabilistic Models to Analyze and Gaussianize Heavy-Tailed, Skewed Data

 IGMM R Documentation

## Iterative Generalized Method of Moments – IGMM

### Description

An iterative method of moments estimator to find this τ = (μ_x, σ_x, γ) for type = 's' (τ = (μ_x, σ_x, δ) for type = 'h' or τ = (μ_x, σ_x, δ_l, δ_r) for type = "hh") which minimizes the distance between the sample and theoretical skewness (or kurtosis) of \boldsymbol x and X.

This algorithm is only well-defined for data with finite mean and variance input X. See analyze_convergence and references therein for details.

### Usage

IGMM(
y,
type = c("h", "hh", "s"),
skewness.x = 0,
kurtosis.x = 3,
tau.init = get_initial_tau(y, type),
robust = FALSE,

### Details

For algorithm details see the References.

### Value

A list of class LambertW_fit:

 tol see Arguments data data y n number of observations type see Arguments tau.init starting values for τ tau IGMM estimate for τ tau.trace entire iteration trace of τ^{(k)}, k = 0, ..., K, where K <= max.iter. sub.iterations number of iterations only performed in GMM algorithm to find optimal γ (or δ) iterations number of iterations to update μ_x and σ_x. See References for detals. hessian Hessian matrix (obtained from simulations; see References) call function call skewness.x, kurtosis.x see Arguments distname a character string describing distribution characteristics given the target theoretical skewness/kurtosis for the input. Same information as skewness.x and kurtosis.x but human-readable. location.family see Arguments message message from the optimization method. What kind of convergence? method estimation method; here: "IGMM"

### Author(s)

Georg M. Goerg

delta_GMM, gamma_GMM, analyze_convergence

### Examples


# estimate tau for the skewed version of a Normal
y <- rLambertW(n = 1000, theta = list(beta = c(2, 1), gamma = 0.2),
distname = "normal")
fity <- IGMM(y, type = "s")
fity
summary(fity)
plot(fity)

# estimate tau for the skewed version of an exponential
y <- rLambertW(n = 1000, theta = list(beta = 1, gamma = 0.5),
distname = "exp")
fity <- IGMM(y, type = "s", skewness.x = 2, location.family = FALSE)
fity
summary(fity)
plot(fity)

# estimate theta for the heavy-tailed version of a Normal = Tukey's h
y <- rLambertW(n = 500, theta = list(beta = c(2, 1), delta = 0.2),
distname = "normal")
system.time(
fity <- IGMM(y, type = "h")
)
fity
summary(fity)
plot(fity)



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