distr (version 2.6)

RtoDPQ.LC: Default procedure to fill slots d,p,q given r for Lebesgue decomposed distributions

Description

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

Usage

RtoDPQ.LC(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.LC returns an object of class UnivarLebDecDistribution.

concept

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

Details

RtoDPQ.LC generates $10^e$ random numbers, by default $$e = RtoDPQ.e$$. Replicates are assumed to be part of the discrete part, unique values to be part of the a.c. part of the distribution. For the replicated ones, we generate a discrete distribution by a call to DiscreteDistribution. For the a.c. part, similarly to RtoDPQ 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)), write the result to y and use these values instead of simulated ones. The a.c. density is formed on the basis of $n$ points using approxfun and density (applied to the unique values), by default $$n = DefaultNrGridPoints$$. The cumulative distribution function is based on all random variables, and, as well as the quantile function, is 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)ifelse(rbinom(n,1,0.3),rnorm(n)^2,rbinom(n,4,.3))
x <- RtoDPQ.LC(r = rn2, e = 4, n = 512)
plot(x)
# returns density, cumulative distribution and quantile function of
# squared standard normal distribution
d.discrete(x)(4)
x2 <- RtoDPQ.LC(r = rn2, e = 5, n = 1024) # for a better result
plot(x2)

Run the code above in your browser using DataCamp Workspace