Learn R Programming

distributions3 (version 0.3.0)

SinhArcsinh: Create a Sinh-Arcsinh (SHASH) distribution

Description

The Sinh-Arcsinh (SHASH) distribution is a four-parameter distribution with support on the real space that generalizes the Normal distribution by separately controlling location, scale, skewness, and tail-heaviness. It can produce a wide range of shapes, including symmetric and asymmetric forms and both heavier and lighter tails, making it useful for modeling real-valued data with non-normal behavior. Using \(\nu = 1\) and \(\tau = 1\) results in a standard normal distribution.

Usage

SinhArcsinh(mu = 0, sigma = 1, nu = 1, tau = 1)

Value

A SinhArcsinh object.

Arguments

mu

The location parameter, written \(\mu\) in textbooks. Defaults to 0.

sigma

The scale parameter, written \(\sigma\) in textbooks. Can be any positive number. Defaults to 1.

nu

The skewness parameter \(\nu\), defaults to 1.

tau

The kurtosis parameter \(\tau\), defaults to 1.

Details

We recommend reading this documentation on https://zeileis.github.io/distributions3/, where the math will render with additional detail and much greater clarity.

In the following, let \(X\) be a Sinh-Arcsinh random variable with mean mu = \(\mu\), sigma = \(\sigma\), nu = \(\nu\), and tau = \(\tau\).

Support: \(R\), the set of all real numbers

Probability density function (p.d.f):

$$ f(t) = \frac{1}{\sigma \sqrt{1 + z^2}} \cdot \frac{1}{2}\left(\tau e^{\tau w} + \nu e^{-\nu w}\right) \cdot \phi\left( \frac{1}{2}\left(e^{\tau w} - e^{-\nu w}\right) \right) $$

$$ \text{where } z = \frac{t - \mu}{\sigma}, ~w = \operatorname{asinh}(z), ~\text{and } \phi() \text{ is the standard normal PDF.} $$

Cumulative distribution function (c.d.f):

$$ F(t) = \Phi\left( H\left(\operatorname{asinh}\left(\frac{t - \mu}{\sigma}\right)\right) \right) $$

$$ \text{where } H(w) = \frac{1}{2}\left(e^{\tau w} - e^{-\nu w}\right), ~\text{and } \Phi() \text{ the standard normal CDF.} $$

References

Jones MC, Pewsey A (2009). “Sinh-Arcsinh Distributions”, Journal of Statistical Software, 96(4), 761--780. tools:::Rd_expr_doi("10.1093/biomet/asp053")

See Also

Other continuous distributions: Beta(), Cauchy(), ChiSquare(), Erlang(), Exponential(), FisherF(), Frechet(), GEV(), GP(), Gamma(), Gumbel(), LogNormal(), Logistic(), Normal(), RevWeibull(), StudentsT(), Tukey(), Uniform(), Weibull()

Examples

Run this code

## SinhArcsinh() by default uses nu = 1, tau = 1 which
## results in the standard normal distribution
set.seed(6020)
X <- SinhArcsinh() # Uses mu = 1, sigma = 0, nu = 1, tau = 1)
x <- random(X, 300)
qqnorm(x); qqline(x, col = 2, lwd = 2)
curve(pdf(X, x), xlim = c(-5, 5), main = paste(X, "density"))

## Calculation of central moments is based on numeric integration,
## thus not being identical to the standard normal distribution
c(mean = mean(x), sd = sd(x))

## Skewed Sinh-Arcsinh distribution
X <- SinhArcsinh(mu = 7, sigma = 2, nu = c(0.7, 1, 0.7), tau = c(1, 0.7, 0.7))
as.matrix(X)

## Visualization of density functions using different parameters for nu/tau
curve(pdf(X[1], x), xlim = c(0, 20), ylim = c(0, 0.2), main = "Density function")
curve(pdf(X[2], x), xlim = c(0, 20), col = 2, add = TRUE)
curve(pdf(X[3], x), xlim = c(0, 20), col = 4, add = TRUE)

## Visualization of distribution function using different parameters for nu/tau
curve(cdf(X[1], x), xlim = c(0, 20), ylim = 0:1, main = "Distribution function")
curve(cdf(X[2], x), xlim = c(0, 20), col = 2, add = TRUE)
curve(cdf(X[3], x), xlim = c(0, 20), col = 4, add = TRUE)

## Central moments
mean(X)
variance(X)
skewness(X)
kurtosis(X)

## Drawing random values
random(X, 10)

pdf(X, 2)
log_pdf(X, 2)

cdf(X, 4)
quantile(X, 0.7)

# note that the cdf() and quantile() functions are inverses
X <- SinhArcsinh(mu = 3, sigma = 2, nu = 0.9, tau = 1.2)
cdf(X, quantile(X, 0.7))
quantile(X, cdf(X, 7))

Run the code above in your browser using DataLab