| vonmises {VGAM} | R Documentation |
Estimates the location and scale parameters of the von Mises distribution by maximum likelihood estimation.
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)
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}.
|
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.
An object of class "vglmff" (see vglmff-class).
The object is used by modelling functions such as vglm,
rrvglm
and vgam.
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.
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.
T. W. Yee
Evans, M., Hastings, N. and Peacock, B. (2000) Statistical Distributions, New York: Wiley-Interscience, Third edition.
CircStats and circular currently have a lot more R functions for circular data than the VGAM package.
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)