zetaff {VGAM} | R Documentation

## Zeta Distribution Family Function

### Description

Estimates the parameter of the zeta distribution.

### Usage

    zetaff(lshape = "loglink", ishape = NULL, gshape = exp(-3:4)/4, zero = NULL)

### Arguments

`lshape, ishape, zero` | These arguments apply to the (positive) parameter p. See `Links` for more choices. Choosing `loglog` constrains p>1, but may fail if the maximum likelihood estimate is less than one. See `CommonVGAMffArguments` for more information.
`gshape` | See `CommonVGAMffArguments` for more information.

### Details

In this long tailed distribution the response must be a positive integer. The probability function for a response Y is

P(Y=y) = 1/(y^(p+1) zeta(p+1)), p>0, y=1,2,...

where zeta is Riemann's zeta function. The parameter p is positive, therefore a log link is the default. The mean of Y is mu = zeta(p)/zeta(p+1) (provided p>1) and these are the fitted values. The variance of Y is zeta(p-1) / zeta(p+1) - mu^2 provided p>2.

It appears that good initial values are needed for successful convergence. If convergence is not obtained, try several values ranging from values near 0 to values about 10 or more.

Multiple responses are handled.

### Value

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

### Note

The `zeta` function may be used to compute values of the zeta function.

### Author(s)

T. W. Yee

### References

pp.527– of Chapter 11 of Johnson N. L., Kemp, A. W. and Kotz S. (2005) Univariate Discrete Distributions, 3rd edition, Hoboken, New Jersey: Wiley.

Knight, K. (2000) Mathematical Statistics. Boca Raton: Chapman & Hall/CRC Press.

### See Also

`zeta`, `oazeta`, `oizeta`, `otzeta`, `diffzeta`, `dzeta`, `hzeta`, `zipf`.

### Examples

    zdata <- data.frame(y = 1:5, w =  c(63, 14, 5, 1, 2))  # Knight, p.304
    fit <- vglm(y ~ 1, zetaff, data = zdata, trace = TRUE, weight = w, crit = "c")
    (phat <- Coef(fit))  # 1.682557
    with(zdata, cbind(round(dzeta(y, phat) * sum(w), 1), w))

    with(zdata, weighted.mean(y, w))
    fitted(fit, matrix = FALSE)
    predict(fit)

    # The following should be zero at the MLE:
    with(zdata, mean(log(rep(y, w))) + zeta(1+phat, deriv = 1) / zeta(1+phat))

[Package VGAM version 1.1-1 Index]