cf_vonMises: Characteristic function of a linear combination of...

View source: R/cf_vonMises.R

cf_vonMisesR Documentation

Characteristic function of a linear combination of independent VON MISES random variables

Description

cf_vonMises(t, mu, kappa, coef, niid) evaluates the characteristic function cf(t) of Y = sum_{i=1}^N coef_i * X_i where X_i ~ vonMises(\mu_i,\kappa_i) inedependent RVs, with the locarion parameters \mu_i in Real and the rate parameters \kappa_i > 0, for i = 1,...,N.

The characteristic function of the vonMises(\mu,\kappa) distribution is

cf(t) = cf_vonMises(t,\mu,\kappa) = besseli(t,\kappa)/besseli(0,\kappa) * exp(1i*t*\mu).

Usage

cf_vonMises(t, mu = 0, kappa = 1, coef, niid)

Arguments

t

numerical values (number, vector...).

mu

in (-\pi, \pi).

kappa

> 0.

coef

vector of the coefficients of the linear combination of the IGamma random variables. If coef is scalar, it is assumed that all coefficients are equal. If empty, default value is coef = 1.

niid

scalar convolution coeficient niid, such that Z = Y +...+ Y is sum of niid iid random variables Y, where each Y = sum_{i=1}^N coef_i * X_i is independently and identically distributed random variable. If empty, default value is niid = 1.

Details

The VON MISES distribution is circular distribution on the interval of length 2*\pi, here we consider (-\pi,\pi), equivalent of the normal distribution with the real parameter \mu and rate parameter \kappa > 0 (\mu and 1/\kappa are analogous to \mu and \sigma^2, the mean and variance in the normal distribution), on a whole circle, i.e. the interval of angles (-\pi,\pi).

Value

Characteristic function cf(t) of a linear combination of independent VON MISES random variables.

Note

Ver.: 16-Sep-2018 18:41:05 (consistent with Matlab CharFunTool v1.3.0, 24-Jun-2017 18:25:56).

See Also

For more details see WIKIPEDIA: https://en.wikipedia.org/wiki/Von_Mises_distribution.

Other Continuous Probability Distribution: cfS_Arcsine(), cfS_Beta(), cfS_Gaussian(), cfS_Laplace(), cfS_Rectangular(), cfS_Student(), cfS_TSP(), cfS_Trapezoidal(), cfS_Triangular(), cfS_Wigner(), cfX_ChiSquare(), cfX_Exponential(), cfX_FisherSnedecor(), cfX_Gamma(), cfX_InverseGamma(), cfX_LogNormal(), cf_ArcsineSymmetric(), cf_BetaNC(), cf_BetaSymmetric(), cf_Beta(), cf_ChiSquare(), cf_Exponential(), cf_FisherSnedecorNC(), cf_FisherSnedecor(), cf_Gamma(), cf_InverseGamma(), cf_Laplace(), cf_LogRV_BetaNC(), cf_LogRV_Beta(), cf_LogRV_ChiSquareNC(), cf_LogRV_ChiSquare(), cf_LogRV_FisherSnedecorNC(), cf_LogRV_FisherSnedecor(), cf_LogRV_MeansRatioW(), cf_LogRV_MeansRatio(), cf_LogRV_WilksLambdaNC(), cf_LogRV_WilksLambda(), cf_Normal(), cf_RectangularSymmetric(), cf_Student(), cf_TSPSymmetric(), cf_TrapezoidalSymmetric(), cf_TriangularSymmetric()

Examples

## EXAMPLE 1:
# CF of the weighted linear combinantion of the von Mises RVs
mu <- c(0, 0,-pi / 2, pi / 2, 0)
kappa <- c(1, 2, 3, 4, 5)
coef  <- c(1, 2, 3, 4, 5) / 15
t <- seq(from = -20,
         to = 20,
         length.out = 201)
plotReIm(function(t)
        cf_vonMises(t,
                    mu,
                    kappa,
                    coef),
        t,
        title = 'CF of the weighted linear combinantion of the von Mises RVs')

## EXAMPLE2
# CDR/PDF of the weighted linear combinantion of the von Mises RVs
mu <- c(0, 0,-pi / 2, pi / 2, 0)
kappa <- c(1, 2, 3, 4, 5)
coef  <- c(1, 2, 3, 4, 5) / 15
t <- seq(from = -20,
         to = 20,
         length.out = 201)
cf <- function(t) {
        cf_vonMises(t, mu, kappa, coef)
}
x <- seq(from = -pi,
         to = pi,
         length.out = 201)
prob  <- c(0.9, 0.95, 0.99)
options <- list()
options$xMin <- -pi
options$xMax <- pi
result <- cf2DistGP(cf, x, prob, options)
result
angle  <- result$x
radius <- result$pdf
plotPolar(angle, radius)
# figure; polarplot(angle,radius); ???
# x = gca; ax.ThetaAxisUnits = 'radians'; ???

## EXAMPLE3
# CF of the mixture of the von Mises distribution on (-pi,pi)
mu1 <- 0
kappa1 <- 5
mu2 <- 1
kappa2 <- 15
cf <-
        function(t) {
                0.25 * cf_vonMises(t, mu1, kappa1) + 0.75 * cf_vonMises(t, mu2, kappa2)
        }
options <- list()
options$xMin <- -pi
options$xMax <- pi
result <- cf2DistGP(cf = cf, options = options)
angle  <- result$x
radius <- result$pdf
plotPolar(angle, radius)
#   figure; polarplot(angle,radius);
#   ax = gca; ax.ThetaAxisUnits = 'radians';

## EXAMPLE4
# PDF/CDF of the mixture of the von Mises distribution on (0,2*pi)
mu1 <- 0
kappa1 <- 5
mu2 <- 1
kappa2 <- 15
mu3 <- pi
kappa3 <- 10
cf  <-
        function(t) {
                0.25 * cf_vonMises(t, mu1, kappa1) + 0.25 * cf_vonMises(t, mu2, kappa2) + 0.5 *
                        cf_vonMises(t, mu3, kappa3)
        }
options <- list()
options$isCircular   <- TRUE
options$correctedCDF <- TRUE
options$xMin <- 0
options$xMax <- 2 * pi
x <- seq(from = 0,
         to = 2 * pi,
         length.out = 100)
result <- cf2DistGP(cf = cf, x = x, options = options)
angle  <- result$x
radius <- result$pdf
plotPolar(angle, radius)
#figure; polarplot(angle,radius);
#ax = gca; ax.ThetaAxisUnits = 'radians';

gajdosandrej/CharFunToolR documentation built on June 3, 2024, 7:46 p.m.