rargus {argus}  R Documentation 
The Argus distribution
Description
Density, distribution function, quantile function and random generation for the Argus distribution with parameter chi
.
rargus()
uses very efficient random variate generation methods. Inversion or the Ratio of Uniforms method can be selected.
Usage
rargus(n=length(chi) , chi, method = c("inversion","RoU") )
dargus(x, chi, log = FALSE)
pargus(x, chi, lower = TRUE, log.p = FALSE)
qargus(p, chi, lower = TRUE, log.p = FALSE)
Arguments
n 
Number of observations 
chi 
parameter vector 
method 
random variate generation method to be used (details are below) 
x 
xvalue for the density or CDF 
log 
If 
lower 
If 
log.p 

p 
probability of the quantile 
Details
The Argus distribution has the density (pdf) which is proportional to
f(x) = x \sqrt{1x^2}\exp(0.5\chi^2(1x^2)), \mbox{for} 0 \leq x \leq 1 \mbox{and} \chi > 0
The generators used for rargus()
are very efficient also for the varying parameter case,
i.e. when the vector chi
has length n
.
method = "inversion"
: transforms the uniform variate into an argus variate
using a close to exact approximation of the inverse CDF. It is also well suited for the
varying parameter case as the theorem that an argus variate can be represented as a transformed
truncated Gamma(1.5) variate allows to express the inverse CDF of the argus distribution as a
simple transform of the inverse CDF of the Gamma(1.5) distribution.
The use of the pinv.new()
function of the Runuran
package makes that evaluation very fast.
When loading the arguspackage pinv.new()
calculates and stores the required tables.
method = "RoU"
: uses the Ratio of Uniforms method which requires 2 or more uniform variates
to generate one argus variate. It is also a bit slower than the inversion method and is added here
mainly for the case that the Runuran
package is not available.
Value
rargus
creates a random sample of size n
.
dargus
gives the density, dargus
give the CDF and qargus
gives the quantile function.
The length of the result for these 3 functions is the maximum of the lengths of the numerical arguments that
are recycled to the length of the result. Only the first elements of the logical arguments are used.
Author(s)
Wolfgang HÃ¶rmann and Christoph Baumgarten
References
Christoph Baumgarten: Random Variate Generation by Fast Numerical Inversion in the Varying Parameter Case.
Examples
library(argus)
# pdf, cdf and quantile function
dargus((0:10)/10,.6)
qargus(0.9,2)
pargus(qargus(0.9,2),2)
y<rargus(n=1.e5,chi=0.3,method="inversion")
hist(y,breaks=100,main="Argus pdf with chi=0.3",freq=FALSE)
lines(xv<seq(0,1,0.001),dargus(xv,chi=0.3),lwd=0.2,col=2)
n=1.e5
chiv < 1. +runif(n)*5 # chivalues in (1,5)
system.time({set.seed(123);y<rargus(chi=chiv)})
set.seed(123);u< runif(n)
mean(abs(pargus(y,chiv)u))
# random variate generation with the inversion method
y<rargus(n=1.e5,chi=0.3,method="inversion")
hist(y,breaks=100,main="Argus pdf with chi=0.3",freq=FALSE)
lines(xv<seq(0,1,0.001),dargus(xv,chi=0.3),lwd=0.2,col=2)
# using Ratio of Uniforms
y<rargus(n=1.e5,chi=3,method="RoU")
hist(y,breaks=100,main="Argus pdf with chi=3",freq=FALSE)
lines(xv<seq(0,1,0.001),dargus(xv,chi=3),lwd=2,col=2)
# generating for different chi values
y<rargus(n=100,chi=runif(100)*2,method="RoU")