Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

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)

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.

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[k*cos(y-a)] / (2*pi*I0(k))

where 0 <= y < 2*pi, 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 1 - I1(k) / I0(k) where I1(k) is the modified Bessel function of order 1. By default, eta1=log(a/(2*pi-a)) and eta2=log(k) for this family function.

Value

An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm, rrvglm and vgam.

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.

Note

The response and the fitted values are scaled so that 0<=y<2*pi. The linear/additive predictors are left alone. Fisher scoring is used.

Author(s)

T. W. Yee

References

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

See Also

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

Examples

vdata <- data.frame(x2 = runif(nn <- 1000))
vdata <- transform(vdata, y = rnorm(nn, m = 2+x2, sd = exp(0.2)))  # Bad data!!
fit <- vglm(y  ~ x2, vonmises(zero = 2), data = 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)

VGAM

Vector Generalized Linear and Additive Models

v1.1-5
GPL-3
Authors
Thomas Yee [aut, cre], Cleve Moler [ctb] (author of several LINPACK routines)
Initial release
2021-01-13

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.