Learn R Programming

Runuran (version 0.40)

uq: Quantile function for "unuran" object

Description

Evaluates quantile of distribution approximately using a unuran object that implements an inversion method.

[Universal] -- Quantile Function.

Usage

uq(unr, U)

Arguments

unr

a unuran object that implements an inversion menthod.

U

vector of probabilities.

Author

Josef Leydold and Wolfgang H\"ormann unuran@statmath.wu.ac.at.

Details

The routine evaluates the quantiles (inverse CDF) for a given (vector of) probabilities approximately. It requires a unuran object that implements an inversion method. Currently these are

  • ‘HINV’

  • ‘NINV’

  • ‘PINV’

for continuous distributions and

  • ‘DGT’

for discrete distributions.

uq returns the left boundary of the domain of the distribution if argument U is less than or equal to 0 and the right boundary if U is greater than or equal to 1.

References

W. H\"ormann, J. Leydold, and G. Derflinger (2004): Automatic Nonuniform Random Variate Generation. Springer-Verlag, Berlin Heidelberg.

See Also

unuran,unuran.new.

Examples

Run this code
## Compute quantiles of normal distribution using method 'PINV'
gen <- pinv.new(pdf=dnorm, lb=-Inf, ub=Inf)
uq(gen,seq(0,1,0.05))

## Compute quantiles of user-defined distribution using method 'PINV'
pdf <- function (x) { exp(-x) }
gen <- pinv.new(pdf=pdf, lb=0, ub=Inf, uresolution=1.e-12)
uq(gen,seq(0,1,0.05))

## Compute quantiles of binomial distribution using method 'DGT'
gen <- dgt.new(pv=dbinom(0:1000,1000,0.4), from=0)
uq(gen,seq(0,1,0.05))


## Compute quantiles of normal distribution using method 'HINV'
## (using 'advanced' interface)
gen <- unuran.new("normal()","hinv")
uq(gen,0.975)
uq(gen,c(0.025,0.975))

## Compute quantiles of user-defined distributio using method 'HINV'
## (using 'advanced' interface)
cdf <- function (x) { 1.-exp(-x) }
pdf <- function (x) { exp(-x) }
dist <- new("unuran.cont", cdf=cdf, pdf=pdf, lb=0, ub=Inf)
gen <- unuran.new(dist, "hinv; u_resolution=1.e-12")
uq(gen,seq(0,1,0.05))

Run the code above in your browser using DataLab