distr (version 2.3.1)

RtoDPQ: 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
$10^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

Value

  • RtoDPQ returns a list of functions.
  • dfundensity
  • pfuncumulative distribution function
  • qfunquantile function

concept

  • random sample
  • image distribution
  • absolutely continuous distribution
  • utility

Details

RtoDPQ generates $10^e$ random numbers, by default $$e = 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 $n$ points using approxfun and density, by default $$n = DefaultNrGridPoints$$. The cumulative distribution function and the quantile function are also created on the basis of $n$ points using approxfun and ecdf. Of course, the results are usually not exact as they rely on random numbers.

See Also

UnivariateDistribution-class, density, approxfun, ecdf

Examples

Run this code
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
x$dfun(4)
RtoDPQ(r = rn2, e = 5, n = 1024) # for a better result

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

Run the code above in your browser using DataCamp Workspace