Learn R Programming

rotations (version 1.0)

Fisher: The matrix-Fisher distribution

Description

Density, distribution function and random generation for the matrix-Fisher distribution with concentration kappa $\kappa$.

Usage

dfisher(r, kappa = 1, nu = NULL, Haar = TRUE)

pfisher(q, kappa = 1, nu = NULL, lower.tail = TRUE)

rfisher(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

  • dfishergives the density
  • pfishergives the distribution function
  • rfishergenerates random deviates

Details

The matrix-Fisher distribution with concentration $\kappa$ has density $$C_\mathrm{{F}}(r|\kappa)=\frac{1}{2\pi[\mathrm{I_0}(2\kappa)-\mathrm{I_1}(2\kappa)]}e^{2\kappa\cos(r)}[1-\cos(r)]$$ with respect to Lebesgue measure where $\mathrm{I}_p(\cdot)$ denotes the Bessel function of order $p$ defined as $\mathrm{I}_p(\kappa)=\frac{1}{2\pi}\int_{-\pi}^{\pi}\cos(pr)e^{\kappa\cos r}dr$.

See Also

Angular-distributions for other distributions in the rotations package.

Examples

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

#Visualize the matrix Fisher density fucntion with respect to the Haar measure
plot(r, dfisher(r, kappa = 10), type = 'l', ylab = 'f(r)')

#Visualize the matrix Fisher density fucntion with respect to the Lebesgue measure
plot(r, dfisher(r, kappa = 10, Haar = FALSE), type = 'l', ylab = 'f(r)')

#Plot the matrix Fisher CDF
plot(r,pfisher(r,kappa = 10), type = 'l', ylab = 'F(r)')

#Generate random observations from matrix Fisher distribution
rs <- rfisher(20, kappa = 1)
hist(rs, breaks = 10)

Run the code above in your browser using DataLab