| cardioid {VGAM} | R Documentation |
Estimates the two parameters of the cardioid distribution by maximum likelihood estimation.
cardioid(lmu = "elogit", lrho = "elogit",
emu = if(lmu == "elogit") list(min = 0, max = 2*pi) else list(),
erho = if(lmu == "elogit") list(min = -0.5, max = 0.5) else list(),
imu = NULL, irho = 0.3, nsimEIM = 100, zero = NULL)
lmu, lrho |
Parameter link functions applied to the mu
and rho parameters, respectively.
See |
emu, erho |
List. Extra argument for each of the link functions.
See |
imu, irho |
Initial values.
A |
nsimEIM, zero |
See |
The two-parameter cardioid distribution has a density that can be written as
f(y;mu,rho) = (1 + 2*rho*cos(y-mu)) / (2*pi)
where 0 < y < 2*pi, 0 < mu < 2*pi, and -0.5 < rho < 0.5 is the concentration parameter. The default link functions enforce the range constraints of the parameters.
For positive ρ the distribution is unimodal and symmetric about mu. The mean of Y (which make up the fitted values) is pi + (rho/pi) ((2*pi-mu)*sin(2*pi-mu) + cos(2*pi-mu) - mu*sin(mu) - cos(mu)).
An object of class "vglmff" (see vglmff-class).
The object is used by modelling functions such as vglm,
rrvglm
and vgam.
Numerically, this distribution 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 imu and irho.
Fisher scoring using simulation is used.
T. W. Yee
Jammalamadaka, S. R. and SenGupta, A. (2001) Topics in Circular Statistics, Singapore: World Scientific.
CircStats and circular currently have a lot more R functions for circular data than the VGAM package.
cdata = data.frame(y = rcard(n = 1000, mu = 4, rho = 0.45)) fit = vglm(y ~ 1, cardioid, cdata, trace=TRUE) coef(fit, matrix=TRUE) Coef(fit) c(with(cdata, mean(y)), head(fitted(fit), 1)) summary(fit)