vonmises {VGAM}R Documentation

von Mises Distribution Family Function

Description

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

Usage

vonmises(llocation="elogit", lscale="loge",
      elocation=if(llocation=="elogit") list(min=0, max=2*pi) else list(),
      escale=list(),
      ilocation=NULL, iscale=NULL,
      method.init=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.
elocation, escale List. Extra argument for each of the link functions. See earg in Links for general information.
ilocation Initial value for the location a parameter. By default, an initial value is chosen internally using method.init. Assigning a value will override the argument method.init.
iscale Initial value for the scale k parameter. By default, an initial value is chosen internally using method.init. Assigning a value will override the argument method.init.
method.init 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, choose one value from the set {1,2}.

Details

The (two-parameter) von Mises distribution 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 maxima. 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

Evans, M., Hastings, N. and Peacock, B. (2000) Statistical Distributions, New York: Wiley-Interscience, Third edition.

See Also

Bessel, cardioid.

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

Examples

x = runif(n <- 1000)
y = rnorm(n, m=2+x, sd=exp(0.2))   # Not von Mises data!!
fit = vglm(y  ~ x, vonmises(zero=2), trace=TRUE)
coef(fit, matrix=TRUE)
Coef(fit)
range(y)       # original data
range(fit@y)   # processed data is in [0,2*pi)

[Package VGAM version 0.7-7 Index]