Learn R Programming

fGarch (version 4033.92)

snorm: Skew normal distribution

Description

Functions to compute density, distribution function, quantile function and to generate random variates for the skew normal distribution.

The distribution is standardized as discussed in the reference by Wuertz et al below.

Usage

dsnorm(x, mean = 0, sd = 1, xi = 1.5, log = FALSE)
psnorm(q, mean = 0, sd = 1, xi = 1.5)
qsnorm(p, mean = 0, sd = 1, xi = 1.5)
rsnorm(n, mean = 0, sd = 1, xi = 1.5)

Value

numeric vector

Arguments

x, q

a numeric vector of quantiles.

p

a numeric vector of probabilities.

n

the number of observations.

mean

location parameter.

sd

scale parameter.

xi

skewness parameter.

log

a logical; if TRUE, densities are given as log densities.

Author

Diethelm Wuertz for the Rmetrics R-port

Details

dsnorm computed the density, psnorm the distribution function, qsnorm the quantile function, and rsnorm generates random deviates.

References

Fernandez C., Steel M.F.J. (2000); On Bayesian Modelling of Fat Tails and Skewness, Preprint, 31 pages.

Wuertz D., Chalabi Y. and Luksan L. (????); Parameter estimation of ARMA models with GARCH/APARCH errors: An R and SPlus software implementation, Preprint, 41 pages, https://github.com/GeoBosh/fGarchDoc/blob/master/WurtzEtAlGarch.pdf

See Also

snormFit (fit), snormSlider (visualize),

sstd (skew Student-t), sged (skew GED)

Examples

Run this code
## snorm -
   # Ranbdom Numbers:
   par(mfrow = c(2, 2))
   set.seed(1953)
   r = rsnorm(n = 1000)
   plot(r, type = "l", main = "snorm", col = "steelblue")
   
   # Plot empirical density and compare with true density:
   hist(r, n = 25, probability = TRUE, border = "white", col = "steelblue")
   box()
   x = seq(min(r), max(r), length = 201)
   lines(x, dsnorm(x), lwd = 2)
   
   # Plot df and compare with true df:
   plot(sort(r), (1:1000/1000), main = "Probability", col = "steelblue",
     ylab = "Probability")
   lines(x, psnorm(x), lwd = 2)
   
   # Compute quantiles:
   round(qsnorm(psnorm(q = seq(-1, 5, by = 1))), digits = 6)

Run the code above in your browser using DataLab