RtoDPQ.LC {distr} | R Documentation |
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 |
|
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 |
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.
Value
RtoDPQ.LC
returns an object of class UnivarLebDecDistribution
.
Note
Use RtoDPQ
for absolutely continuous and RtoDPQ.d
for discrete distributions.
Author(s)
Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de
See Also
UnivariateDistribution-class
,
density
,
approxfun
,
ecdf
Examples
set.seed(20230508)
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
## IGNORE_RDIFF_BEGIN
d.discrete(x)(4)
## IGNORE_RDIFF_END
x2 <- RtoDPQ.LC(r = rn2, e = 5, n = 1024) # for a better result
plot(x2)