RtoDPQ {distr}R Documentation

Default procedure to fill slots d,p,q given r for a.c. distributions

Description

function to do get empirical density, cumulative distribution and quantile function from random numbers

Usage

RtoDPQ(r, e = getdistrOption("RtoDPQ.e"), 
       n = getdistrOption("DefaultNrGridPoints"), y = NULL)

Arguments

r

the random number generator

e

10e10^e numbers are generated, a higher number leads to a better result.

n

The number of grid points used to create the approximated functions, a higher number leads to a better result.

y

a (numeric) vector or NULL

Details

RtoDPQ generates 10e10^e random numbers, by default

e=RtoDPQ.ee = RtoDPQ.e

. Instead of using simulated grid points, we have an optional parameter y for using N. Horbenko's quantile trick: i.e.; on an equally spaced grid x.grid on [0,1], apply f(q(x)(x.grid)) and write the result to y and produce density and cdf from this value y given to RtoDPQ as argument (instead of simulating grid points).

The density is formed on the basis of nn points using approxfun and density, by default

n=DefaultNrGridPointsn = DefaultNrGridPoints

. The cumulative distribution function and the quantile function are also created on the basis of nn points using approxfun and ecdf. Of course, the results are usually not exact as they rely on random numbers.

Value

RtoDPQ returns a list of functions.

dfun

density

pfun

cumulative distribution function

qfun

quantile function

Note

Use RtoDPQ for absolutely continuous and RtoDPQ.d for discrete distributions.

Author(s)

Thomas Stabla statho3@web.de,
Florian Camphausen fcampi@gmx.de,
Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de,
Matthias Kohl Matthias.Kohl@stamats.de

See Also

UnivariateDistribution-class, density, approxfun, ecdf

Examples

set.seed(20230508)
rn2 <- function(n){rnorm(n)^2}
x <- RtoDPQ(r = rn2, e = 4, n = 512)
# returns density, cumulative distribution and quantile function of
# squared standard normal distribution
## IGNORE_RDIFF_BEGIN
x$dfun(4)
RtoDPQ(r = rn2, e = 5, n = 1024) # for a better result
## IGNORE_RDIFF_END
rp2 <- function(n){rpois(n, lambda = 1)^2}
x <- RtoDPQ.d(r = rp2, e = 5)
# returns density, cumulative distribution and quantile function of
# squared Poisson distribution with parameter lambda=1

[Package distr version 2.9.3 Index]