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 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 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-9 Index]