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)