| logff {VGAM} | R Documentation |
Estimating the (single) parameter of the logarithmic distribution.
logff(lshape = "logitlink", gshape = -expm1(-7 * ppoints(4)), zero = NULL)
lshape |
Parameter link function for the parameter c,
which lies between 0 and 1.
See |
gshape, zero |
Details at |
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 (called shape),
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.
When the sample mean is large, the value of c tends to
be very close to 1, hence it could be argued that
logitlink is not the best choice.
An object of class "vglmff" (see vglmff-class).
The object is used by modelling functions such as vglm,
and vgam.
The function log computes the natural
logarithm. In the VGAM library, a link function with option
loglink 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.
T. W. Yee
Johnson N. L., Kemp, A. W. and Kotz S. (2005). Univariate Discrete Distributions, 3rd edition, ch.7. 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.
rlog,
oalog,
oilog,
otlog,
log,
loglink,
logofflink,
explogff,
simulate.vlm.
nn <- 1000
ldata <- data.frame(y = rlog(nn, shape = logitlink(0.2, inv = 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)
shapehat <- Coef(fit)["shape"]
pdf2 <- dlog(x = with(corbet, nindiv), shape = shapehat)
print(with(corbet, cbind(nindiv, ofreq, fitted = pdf2 * sum(ofreq))),
digits = 1)