cdf2quantile: Calculate a quantile from a distribution function

View source: R/cdf2qf.R

cdf2quantileR Documentation

Calculate a quantile from a distribution function

Description

Numerically calculate a quantile from a distribution function.

Usage

cdf2quantile(p, cdf, interval = c(-3, 3), lower = min(interval),
      upper = max(interval), ...)

Arguments

p

a number in the interval (0,1).

cdf

cumulative distribution function, a function.

interval

interval in which to look for the root, see Details.

lower

lower end point of the interval.

upper

upper end point of the interval.

...

any further arguments to be passed to the root finding function and the cdf, see Details.

Details

The quantile, q, is computed numerically as the solution of the equation cdf(q)-p=0.

Function uniroot is used to find the root. To request higher precision, set argument tol. Other arguments in ... are passed on to cdf.

uniroot needs an interval where to look for the root. There is a default one, which is extended automatically if it does not contain the quantile. This assumes that argument cdf is an increasing function (as it should be).

To override the default interval, use argument interval (a vector of two numbers) or lower and/or upper. This may be necessary if the support of the distribution is not the whole real line and cdf does not cope with values outside the support of the distribution.

Value

The computed quantile as a number.

Author(s)

Georgi N. Boshnakov

See Also

plotpdf

Examples

cdf2quantile(0.95, pnorm)
cdf2quantile(0.05, pexp)   # support [0,Inf) is no problem for
cdf2quantile(0.05, plnorm) # for built-in distributions.

## default predicision is about 4 digits after decimal point
cdf2quantile(0.95, pnorm, mean = 3, sd = 1)
cdf2quantile(0.05, pnorm, mean = 3, sd = 1)
qnorm(c(0.95, 0.05), mean = 3, sd = 1)

## request a higher precision:
cdf2quantile(0.05, pnorm, mean = 3, sd = 1, tol = 1e-8)
cdf2quantile(0.05, pnorm, mean = 3, sd = 1, tol = 1e-12)

## see also examples for plotpdf()

gbutils documentation built on May 28, 2022, 1:13 a.m.