| Fisher | R Documentation |
Density, distribution function and random generation for the matrix-Fisher distribution with concentration kappa \kappa.
dfisher(r, kappa = 1, nu = NULL, Haar = TRUE)
pfisher(q, kappa = 1, nu = NULL, lower.tail = TRUE)
rfisher(n, kappa = 1, nu = NULL)
r, q |
vector of quantiles. |
kappa |
concentration parameter. |
nu |
circular variance, can be used in place of |
Haar |
logical; if TRUE density is evaluated with respect to the Haar measure. |
lower.tail |
logical; if TRUE (default), probabilities are |
n |
number of observations. If |
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. If kappa>354 then random deviates
are generated from the Cayley distribution because they agree closely for large kappa and generation is
more stable from the Cayley distribution.
For large \kappa, the Bessel functon gives errors so a large \kappa approximation to the matrix-Fisher
distribution is used instead, which is the Maxwell-Boltzmann density.
dfisher |
gives the density |
pfisher |
gives the distribution function |
rfisher |
generates random deviates |
Angular-distributions for other distributions in the rotations package.
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.