cardioid {VGAM} | R Documentation

## Cardioid Distribution Family Function

### Description

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

### Usage

    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)

### Arguments

`lmu, lrho` | Parameter link functions applied to the mu and rho parameters, respectively. See `Links` for more choices.
`emu, erho` | List. Extra argument for each of the link functions. See `earg` in `Links` for general information.
`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) = (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 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 maxima. 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.

### Author(s)

T. W. Yee

### References

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

### See Also

`rcard`, `elogit`, `vonmises`.

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

### Examples

    y = rcard(n=1000, mu=4, rho=0.45)
    fit = vglm(y ~ 1, cardioid, trace=TRUE)
    coef(fit, matrix=TRUE)
    Coef(fit)
    c(mean(y), fitted(fit)[1,])
    summary(fit)

[Package VGAM version 0.7-9 Index]