Learn R Programming

rotations (version 1.5)

Cayley: The symmetric Cayley distribution

Description

Density, distribution function and random generation for the Cayley distribution with concentration kappa $\kappa$.

Usage

dcayley(r, kappa = 1, nu = NULL, Haar = TRUE)
pcayley(q, kappa = 1, nu = NULL, lower.tail = TRUE)
rcayley(n, kappa = 1, nu = NULL)

Arguments

r,q
vector of quantiles.
n
number of observations. If length(n)>1, the length is taken to be the number required.
kappa
concentration parameter.
nu
circular variance, can be used in place of kappa.
Haar
logical; if TRUE density is evaluated with respect to the Haar measure.
lower.tail
logical; if TRUE (default) probabilities are $P(X\le x)$ otherwise, $P(X>x)$.

Value

dcayley
gives the density
pcayley
gives the distribution function
rcayley
generates a vector of random deviates

Details

The symmetric Cayley distribution with concentration $\kappa$ has density $$C_C(r |\kappa)=\frac{1}{\sqrt{\pi}} \frac{\Gamma(\kappa+2)}{\Gamma(\kappa+1/2)}2^{-(\kappa+1)}(1+\cos r)^\kappa(1-\cos r).$$ The Cayley distribution is equivalent to the de la Vallee Poussin distribution of Schaeben (1997).

References

Schaeben H (1997). "A Simple Standard Orientation Density Function: The Hyperspherical de la Vallee Poussin Kernel." Physica Status Solidi (B), 200, pp. 367-376.

Leon C, e JM and Rivest L (2006). "A statistical model for random rotations." Journal of Multivariate Analysis, 97(2), pp. 412-430.

See Also

Angular-distributions for other distributions in the rotations package.

Examples

Run this code
r <- seq(-pi, pi, length = 500)

#Visualize the Cayley density fucntion with respect to the Haar measure
plot(r, dcayley(r, kappa = 10), type = "l", ylab = "f(r)")

#Visualize the Cayley density fucntion with respect to the Lebesgue measure
plot(r, dcayley(r, kappa = 10, Haar = FALSE), type = "l", ylab = "f(r)")

#Plot the Cayley CDF
plot(r,pcayley(r,kappa = 10), type = "l", ylab = "F(r)")

#Generate random observations from Cayley distribution
rs <- rcayley(20, kappa = 1)
hist(rs, breaks = 10)

Run the code above in your browser using DataLab