Learn R Programming

fGarch (version 260.72)

GarchDistributions: GARCH Distributions and Parameter Estimation

Description

A collection and description of functions to compute density, distribution function, quantile function and to generate random variates for the skew normal, the skew Student-t, and skew generalized error distribution. In addition maximum likelihood estimators are available to fit the parameters of a distribution and to compute basic statistical properties. The functions are: ll{ [dpqr]norm Normal distribution from R's base package, [dpqr]snorm Skew Normal distribution, [dpqr]std Symmetric Student-t Distribution, [dpqr]sstd Skew Student-t Distribution, [dpqr]ged Symmetric GED distribution, [dpqr]sged Skew GED distribution. } The estimatore are: ll{ normFit MLE parameter fit for a Normal distribution, snormFit MLE parameter fit for a skew Normal distribution, stdFit MLE parameter fit for a Sudent-t distribution, stdFit MLE parameter fit for a skew Sudent-t distribution, gedFit MLE parameter fit for a generalized error distribution, nigFit MLE parameter fit for a skew generalized error distribution. } Utility Function: ll{ absMoments Computes absolute moments of a symmetric density. }

Usage

dsnorm(x, mean = 0, sd = 1, xi = 1.5)
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)

dstd(x, mean = 0, sd = 1, nu = 5) pstd(q, mean = 0, sd = 1, nu = 5) qstd(p, mean = 0, sd = 1, nu = 5) rstd(n, mean = 0, sd = 1, nu = 5)

dsstd(x, mean = 0, sd = 1, nu = 5, xi = 1.5) psstd(q, mean = 0, sd = 1, nu = 5, xi = 1.5) qsstd(p, mean = 0, sd = 1, nu = 5, xi = 1.5) rsstd(n, mean = 0, sd = 1, nu = 5, xi = 1.5)

dged(x, mean = 0, sd = 1, nu = 2) pged(q, mean = 0, sd = 1, nu = 2) qged(p, mean = 0, sd = 1, nu = 2) rged(n, mean = 0, sd = 1, nu = 2)

dsged(x, mean = 0, sd = 1, nu = 2, xi = 1.5) 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)

normFit(x, ...) snormFit(x, ...) stdFit(x, ...) sstdFit(x, ...) gedFit(x, ...) sgedFit(x, ...)

absMoments(n, density = c("dnorm", "dged", "dstd"), ...)

Arguments

density
[absMoments] - a character string naming the symmetric density function.
mean, sd, nu, xi
location parameter mean, scale parameter sd, shape parameter nu, skewness parameter xi.
n
[rnorm][r*ged][r*std] - the number of observations. [absMoments] - the number of absolute Moments.
p
a numeric vector of probabilities.
x, q
a numeric vector of quantiles.
...
[*Fit] - parameters parsed to the optimization function nlm. [absMoments] - parameters passed to the density function.

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. *Fit return a list with the following components:
  • estimatethe point at which the maximum value of the log liklihood function is obtained.
  • objectivethe value of the estimated maximum, i.e. the value of the log liklihood function.
  • messagean integer indicating why the optimization process terminated.
  • codean integer indicating why the optimization process terminated. 1: relative gradient is close to zero, current iterate is probably solution; 2: successive iterates within tolerance, current iterate is probably solution; 3: last global step failed to locate a point lower than estimate. Either estimate is an approximate local minimum of the function or steptol is too small; 4: iteration limit exceeded; 5: maximum step size stepmax exceeded five consecutive times. Either the function is unbounded below, becomes asymptotic to a finite value from above in some direction or stepmax is too small.
  • gradientthe gradient at the estimated maximum.
  • stepsnumber of function calls.
  • absMoments returns a numeric vector of length n with the values of the absolute moments of the density function.

Details

Symmetric Normal Distibution: The functions for the normal distribution are part of R's base package. The functions for the symmetric Student-t distribution are rescaled in such a way that they have unit variance in contrast to the Student-t family dt, pt, qt and rt which are part of R's base package. The generalized error distribution functions are defined as described by Nelson (1991). Skew Normal Distribution: The skew normal distribution functions are defined as described by Fernandez and Steel (2000). cr Parameter Estimation: The function nlm is used to minimize the "negative" maximum log-likelihood function. nlm carries out a minimization using a Newton-type algorithm.

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.

Examples

Run this code
## sged -
   par(mfrow = c(2, 2), cex = 0.75)
   set.seed(1953)
   r = rsged(n = 1000, mean = 1, sd = 0.5, xi = 1.5)
   plot(r, type = "l", main = "sged: xi = 1.5")
   # Plot empirical density and compare with true density:
   hist(r, n = 25, probability = TRUE, border = "white", col = "steelblue")
   x = seq(-1, 5, 0.1)
   lines(x, dsged(x = x, mean = 1, sd = 0.5, xi = 1.5))
   # Plot df and compare with true df:
   plot(sort(r), (1:1000/1000), main = "Probability", col = "steelblue")
   lines(x, psged(x, mean = 1, sd = 0.5, xi = 1.5))
   # Compute quantiles:
   qsged(psged(q = -1:5, mean = 1, sd = 0.5, xi = 1.5), 
     mean = 1, sd = 0.5, xi = 1.5) 
       
## sgedFit -
   sgedFit(rsged(1000, mean = -1, sd = 0.5, nu = 3, xi = 3/2),
     print.level = 2)

Run the code above in your browser using DataLab