50% off | Unlimited Data & AI Learning
Get 50% off unlimited learning

VGAM (version 1.1-12)

vonmises: von Mises Distribution Family Function

Description

Estimates the location and scale parameters of the von Mises distribution by maximum likelihood estimation.

Usage

vonmises(llocation = extlogitlink(min = 0, max = 2*pi),
         lscale = "loglink", ilocation = NULL, iscale = NULL,
         imethod = 1, zero = NULL)

Value

An object of class "vglmff"

(see vglmff-class). The object is used by modelling functions such as vglm,

rrvglm

and vgam.

Arguments

llocation, lscale

Parameter link functions applied to the location a parameter and scale parameter k, respectively. See Links for more choices. For k, a log link is the default because the parameter is positive.

ilocation

Initial value for the location a parameter. By default, an initial value is chosen internally using imethod. Assigning a value will override the argument imethod.

iscale

Initial value for the scale k parameter. By default, an initial value is chosen internally using imethod. Assigning a value will override the argument imethod.

imethod

An integer with value 1 or 2 which specifies the initialization method. If failure to converge occurs try the other value, or else specify a value for ilocation and iscale.

zero

An integer-valued vector specifying which linear/additive predictors are modelled as intercepts only. The default is none of them. If used, one can choose one value from the set {1,2}. See CommonVGAMffArguments for more information.

Author

T. W. Yee

Warning

Numerically, the von Mises can be difficult to fit because of a log-likelihood having multiple maximums. The user is therefore encouraged to try different starting values, i.e., make use of ilocation and iscale.

Details

The (two-parameter) von Mises is the most commonly used distribution in practice for circular data. It has a density that can be written as f(y;a,k)=exp[kcos(ya)]2πI0(k) where 0y<2π, k>0 is the scale parameter, a is the location parameter, and I0(k) is the modified Bessel function of order 0 evaluated at k. The mean of Y (which is the fitted value) is a and the circular variance is 1I1(k)/I0(k) where I1(k) is the modified Bessel function of order 1. By default, η1=log(a/(2πa)) and η2=log(k) for this family function.

References

Forbes, C., Evans, M., Hastings, N. and Peacock, B. (2011). Statistical Distributions, Hoboken, NJ, USA: John Wiley and Sons, Fourth edition.

See Also

Bessel, cardioid.

CircStats and circular currently have a lot more R functions for circular data than the VGAM package.

Examples

Run this code
vdata <- data.frame(x2 = runif(nn <- 1000))
vdata <- transform(vdata,
                   y = rnorm(nn, 2+x2, exp(0.2)))  # Bad data!!
fit <- vglm(y  ~ x2, vonmises(zero = 2), vdata, trace = TRUE)
coef(fit, matrix = TRUE)
Coef(fit)
with(vdata, range(y))  # Original data
range(depvar(fit))     # Processed data is in [0,2*pi)

Run the code above in your browser using DataLab