Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

zipf

Zipf Distribution Family Function


Description

Estimates the parameter of the Zipf distribution.

Usage

zipf(N = NULL, lshape = "loglink", ishape = NULL)

Arguments

N

Number of elements, an integer satisfying 1 < N < Inf. The default is to use the maximum value of the response. If given, N must be no less that the largest response value. If N = Inf and s>1 then this is the zeta distribution (use zetaff instead).

lshape

Parameter link function applied to the (positive) shape parameter s. See Links for more choices.

ishape

Optional initial value for the parameter s. The default is to choose an initial value internally. If converge failure occurs use this argument to input a value.

Details

The probability function for a response Y is

P(Y=y) = (y^(-s)) / sum((1:N)^(-s)), s>0, y=1,2,...,N,

where s is the exponent characterizing the distribution. The mean of Y, which are returned as the fitted values, is H(N,s-1) / H(N,s) where H(n,m)=sum((1:n)^(-m)) is the nth generalized harmonic number.

Zipf's law is an experimental law which is often applied to the study of the frequency of words in a corpus of natural language utterances. It states that the frequency of any word is inversely proportional to its rank in the frequency table. For example, "the" and "of" are first two most common words, and Zipf's law states that "the" is twice as common as "of". Many other natural phenomena conform to Zipf's law.

Value

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

Note

Upon convergence, the N is stored as @misc$N.

Author(s)

T. W. Yee

References

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

See Also

Examples

zdata <- data.frame(y = 1:5, ofreq = c(63, 14, 5, 1, 2))
zfit <- vglm(y ~ 1, zipf, data = zdata, trace = TRUE, weight = ofreq)
zfit <- vglm(y ~ 1, zipf(lshape = "identitylink", ishape = 3.4), data = zdata,
            trace = TRUE, weight = ofreq, crit = "coef")
zfit@misc$N
(shape.hat <- Coef(zfit))
with(zdata, weighted.mean(y, ofreq))
fitted(zfit, matrix = FALSE)

VGAM

Vector Generalized Linear and Additive Models

v1.1-5
GPL-3
Authors
Thomas Yee [aut, cre], Cleve Moler [ctb] (author of several LINPACK routines)
Initial release
2021-01-13

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.