Learn R Programming

GeneralizedHyperbolic (version 0.8-4)

gigCalcRange: Range of a Generalized Inverse Gaussian Distribution

Description

Given the parameter vector param of a generalized inverse Gaussian distribution, this function determines the range outside of which the density function is negligible, to a specified tolerance. The parameterization used is the \((\chi, \psi)\) one (see dgig). To use another parameterization, use gigChangePars.

Usage

gigCalcRange(chi = 1, psi = 1, lambda = 1,
             param = c(chi, psi, lambda),
             tol = 10^(-5), density = TRUE, ...)

Arguments

chi

A shape parameter that by default holds a value of 1.

psi

Another shape parameter that is set to 1 by default.

lambda

Shape parameter of the GIG distribution. Common to all forms of parameterization. By default this is set to 1.

param

Value of parameter vector specifying the generalized inverse Gaussian distribution.

tol

Tolerance.

density

Logical. If TRUE, the bounds are for the density function. If FALSE, they should be for the probability distribution, but this has not yet been implemented.

Extra arguments for calls to uniroot.

Value

A two-component vector giving the lower and upper ends of the range.

Details

The particular generalized inverse Gaussian distribution being considered is specified by the value of the parameter value param.

If density = TRUE, the function gives a range, outside of which the density is less than the given tolerance. Useful for plotting the density. Also used in determining break points for the separate sections over which numerical integration is used to determine the distribution function. The points are found by using uniroot on the density function.

If density = FALSE, the function returns the message: "Distribution function bounds not yet implemented".

References

J<U+001B29E5>nsen, B. (1982). Statistical Properties of the Generalized Inverse Gaussian Distribution. Lecture Notes in Statistics, Vol. 9, Springer-Verlag, New York.

See Also

dgig, gigChangePars

Examples

Run this code
# NOT RUN {
param <- c(2.5, 0.5, 5)
maxDens <- dgig(gigMode(param = param), param = param)
gigRange <- gigCalcRange(param = param, tol = 10^(-3) * maxDens)
gigRange
curve(dgig(x, param = param), gigRange[1], gigRange[2])
# }
# NOT RUN {
gigCalcRange(param = param, tol = 10^(-3), density = FALSE)
# }

Run the code above in your browser using DataLab