50% off | Unlimited Data & AI Learning

Last chance! 50% off unlimited learning

Sale ends in


LambertW (version 0.6.4)

gamma_Taylor: Estimate gamma by Taylor approximation

Description

Computes an initial estimate of γ based on the Taylor approximation of the skewness of Lambert W × Gaussian RVs around γ=0. See Details for the formula.

This is the initial estimate for IGMM and gamma_GMM.

Usage

gamma_Taylor(y, skewness.y = skewness(y), skewness.x = 0, degree = 3)

Arguments

y

a numeric vector of data values.

skewness.y

skewness of y; default: empirical skewness of data y.

skewness.x

skewness for input X; default: 0 (symmetric input).

degree

degree of the Taylor approximation; in Goerg (2011) it just uses the first order approximation (6γ); a much better approximation is the third order (6γ+8γ3). By default it uses the better degree = 3 approximation.

Value

Scalar; estimate of γ.

Details

The first order Taylor approximation of the theoretical skewness γ1 (not to be confused with the skewness parameter γ) of a Lambert W x Gaussian random variable around γ=0 equals γ1(γ)=6γ+O(γ3).

Ignoring higher order terms, using the empirical estimate on the left hand side, and solving γ yields a first order Taylor approximation estimate of γ as γ^Taylor(1)=16γ^1(y), where γ^1(y) is the empirical skewness of the data y.

As the Taylor approximation is only good in a neighborhood of γ=0, the output of gamma_Taylor is restricted to the interval (0.5,0.5).

The solution of the third order Taylor approximation γ1(γ)=6γ+8γ3+O(γ5), is also supported. See code for the solution to this third order polynomial.

See Also

IGMM to estimate all parameters jointly.

Examples

Run this code
# NOT RUN {
set.seed(2)
# a little skewness
yy <- rLambertW(n = 1000, theta = list(beta = c(0, 1), gamma = 0.1), 
                distname = "normal") 
# Taylor estimate is good because true gamma = 0.1 close to 0
gamma_Taylor(yy) 

# very highly negatively skewed
yy <- rLambertW(n = 1000, theta = list(beta = c(0, 1), gamma = -0.75), 
                distname = "normal") 
# Taylor estimate is bad since gamma = -0.75 is far from 0; 
# and gamma = -0.5 is the lower bound by default.
gamma_Taylor(yy) 

# }

Run the code above in your browser using DataLab