R: von Mises Distribution Family Function

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 = extlogit(min = 0, max = 2 * pi), lscale = "loge",
             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

`Bessel`, `cardioid`.

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)

[Package VGAM version 1.0-3 Index]