gamma_Taylor: Estimate gamma by Taylor approximation

View source: R/gamma_Taylor.R

gamma_TaylorR Documentation

Estimate gamma by Taylor approximation

Description

Computes an initial estimate of \gamma based on the Taylor approximation of the skewness of Lambert W \times Gaussian RVs around \gamma = 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 \cdot \gamma); a much better approximation is the third order (6 \cdot \gamma + 8 \cdot \gamma^3). By default it uses the better degree = 3 approximation.

Details

The first order Taylor approximation of the theoretical skewness \gamma_1 (not to be confused with the skewness parameter \gamma) of a Lambert W x Gaussian random variable around \gamma = 0 equals

\gamma_1(\gamma) = 6 \gamma + \mathcal{O}(\gamma^3).

Ignoring higher order terms, using the empirical estimate on the left hand side, and solving \gamma yields a first order Taylor approximation estimate of \gamma as

\widehat{\gamma}_{Taylor}^{(1)} = \frac{1}{6} \widehat{\gamma}_1(\mathbf{y}),

where \widehat{\gamma}_1(\mathbf{y}) is the empirical skewness of the data \mathbf{y}.

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

The solution of the third order Taylor approximation

\gamma_1(\gamma) = 6 \gamma + 8 \gamma^3 + \mathcal{O}(\gamma^5),

is also supported. See code for the solution to this third order polynomial.

Value

Scalar; estimate of \gamma.

See Also

IGMM to estimate all parameters jointly.

Examples


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) 


LambertW documentation built on May 29, 2024, 4:30 a.m.