Skip to contents

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

Usage

dsged(x, mean = 0, sd = 1, nu = 2, xi = 1.5, log = FALSE)
psged(q, mean = 0, sd = 1, nu = 2, xi = 1.5)
qsged(p, mean = 0, sd = 1, nu = 2, xi = 1.5)
rsged(n, mean = 0, sd = 1, nu = 2, xi = 1.5)

Arguments

mean, sd, nu, xi

location parameter mean, scale parameter sd, shape parameter nu, skewness parameter xi.

n

the number of observations.

p

a numeric vector of probabilities.

x, q

a numeric vector of quantiles.

log

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

Details

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

Value

d* returns the density,

p* returns the distribution function,

q* returns the quantile function, and

r* generates random deviates,

all values are numeric vectors.

References

Nelson D.B. (1991); Conditional Heteroscedasticity in Asset Returns: A New Approach, Econometrica, 59, 347--370.

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

Author

Diethelm Wuertz for the Rmetrics R-port

See also

sgedFit (fit), sgedSlider (visualize),

ged (symmetric GED)

Examples

## sged -
   par(mfrow = c(2, 2))
   set.seed(1953)
   r = rsged(n = 1000)
   plot(r, type = "l", main = "sged", 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, dsged(x), lwd = 2)
   
   # Plot df and compare with true df:
   plot(sort(r), (1:1000/1000), main = "Probability", col = "steelblue",
     ylab = "Probability")
   lines(x, psged(x), lwd = 2)
   
   # Compute quantiles:
   round(qsged(psged(q = seq(-1, 5, by = 1))), digits = 6)
#> [1] -1  0  1  2  3  4  5