# cardioid: Cardioid Distribution Family Function In VGAM: Vector Generalized Linear and Additive Models

 cardioid R Documentation

## Cardioid Distribution Family Function

### Description

Estimates the two parameters of the cardioid distribution by maximum likelihood estimation.

### Usage

cardioid(lmu = extlogitlink(min = 0, max = 2*pi),
lrho = extlogitlink(min = -0.5, max = 0.5),
imu = NULL, irho = 0.3, nsimEIM = 100, zero = NULL)


### Arguments

 lmu, lrho Parameter link functions applied to the \mu and \rho parameters, respectively. See Links for more choices. imu, irho Initial values. A NULL means an initial value is chosen internally. See CommonVGAMffArguments for more information. nsimEIM, zero See CommonVGAMffArguments for more information.

### Details

The two-parameter cardioid distribution has a density that can be written as

f(y;\mu,\rho) = \frac{1}{2\pi} \left(1 + 2\, \rho \cos(y - \mu) \right) 

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 \rho 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)).

### Value

An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm, rrvglm and vgam.

### Warning

Numerically, this distribution 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 imu and irho.

### Note

Fisher scoring using simulation is used.

T. W. Yee

### References

Jammalamadaka, S. R. and SenGupta, A. (2001). Topics in Circular Statistics, Singapore: World Scientific.

rcard, extlogitlink, vonmises.

CircStats and circular currently have a lot more R functions for circular data than the VGAM package.

### Examples

## Not run:
cdata <- data.frame(y = rcard(n = 1000, mu = 4, rho = 0.45))
fit <- vglm(y ~ 1, cardioid, data = cdata, trace = TRUE)
coef(fit, matrix=TRUE)
Coef(fit)