logff {VGAM}R Documentation

Logarithmic Distribution

Description

Estimating the (single) parameter of the logarithmic distribution.

Usage

logff(link = "logit", init.c = NULL, zero = NULL)

Arguments

link

Parameter link function for the parameter c, which lies between 0 and 1. See Links for more choices and information.

init.c

Optional initial value for the c parameter. If given, it often pays to start with a larger value, e.g., 0.95. The default is to choose an initial value internally.

zero

Details at CommonVGAMffArguments.

Details

The logarithmic distribution is a generalized power series distribution that is based specifically on the logarithmic series (scaled to a probability function). Its probability function is f(y) = a * c^y / y, for y=1,2,3,..., where 0 < c < 1, and a = -1 / log(1-c). The mean is a*c/(1-c) (returned as the fitted values) and variance is a*c*(1-a*c)/(1-c)^2.

Value

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

Note

The function log computes the natural logarithm. In the VGAM library, a link function with option loge corresponds to this.

Multiple responses are permitted.

The logarithmic distribution is sometimes confused with the log-series distribution. The latter was used by Fisher et al. for species abundance data and has two parameters.

Author(s)

T. W. Yee

References

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

Forbes, C., Evans, M., Hastings, N. and Peacock, B. (2011) Statistical Distributions, Hoboken, NJ, USA: John Wiley and Sons, Fourth edition.

See Also

rlog, log, loge, logoff, explogff, simulate.vlm.

Examples

ldata <- data.frame(y = rlog(n = 1000, prob = logit(0.2, inverse = TRUE)))
fit <- vglm(y ~ 1, logff, data = ldata, trace = TRUE, crit = "c")
coef(fit, matrix = TRUE)
Coef(fit)
## Not run: with(ldata,
    hist(y, prob = TRUE, breaks = seq(0.5, max(y) + 0.5, by = 1),
         border = "blue"))
x <- seq(1, with(ldata, max(y)), by = 1)
with(ldata, lines(x, dlog(x, Coef(fit)[1]), col = "orange", type = "h", lwd = 2)) 
## End(Not run)


# Example: Corbet (1943) butterfly Malaya data
corbet <- data.frame(nindiv = 1:24,
                     ofreq = c(118, 74, 44, 24, 29, 22, 20, 19, 20, 15, 12,
                               14, 6, 12, 6, 9, 9, 6, 10, 10, 11, 5, 3, 3))
fit <- vglm(nindiv ~ 1, logff, data = corbet, weights = ofreq)
coef(fit, matrix = TRUE)
chat <- Coef(fit)["c"]
pdf2 <- dlog(x = with(corbet, nindiv), prob = chat)
print(with(corbet, cbind(nindiv, ofreq, fitted = pdf2 * sum(ofreq))), digits = 1)

[Package VGAM version 1.0-1 Index]