betageometric: Beta-geometric Distribution Family Function

View source: R/family.binomial.R

betageometricR Documentation

Beta-geometric Distribution Family Function


Maximum likelihood estimation for the beta-geometric distribution.


betageometric(lprob = "logitlink", lshape = "loglink",
    iprob = NULL,    ishape = 0.1,
    moreSummation = c(2, 100), tolerance = 1.0e-10, zero = NULL)


lprob, lshape

Parameter link functions applied to the parameters prob and phi (called prob and shape below). The former lies in the unit interval and the latter is positive. See Links for more choices.

iprob, ishape

Numeric. Initial values for the two parameters. A NULL means a value is computed internally.


Integer, of length 2. When computing the expected information matrix a series summation from 0 to moreSummation[1]*max(y)+moreSummation[2] is made, in which the upper limit is an approximation to infinity. Here, y is the response.


Positive numeric. When all terms are less than this then the series is deemed to have converged.


An integer-valued vector specifying which linear/additive predictors are modelled as intercepts only. If used, the value must be from the set {1,2}.


A random variable Y has a 2-parameter beta-geometric distribution if P(Y=y) = prob * (1-prob)^y for y=0,1,2,... where prob are generated from a standard beta distribution with shape parameters shape1 and shape2. The parameterization here is to focus on the parameters prob and phi = 1/(shape1+shape2), where phi is shape. The default link functions for these ensure that the appropriate range of the parameters is maintained. The mean of Y is E(Y) = shape2 / (shape1-1) = (1-prob) / (prob-phi) if shape1 > 1, and if so, then this is returned as the fitted values.

The geometric distribution is a special case of the beta-geometric distribution with phi=0 (see geometric). However, fitting data from a geometric distribution may result in numerical problems because the estimate of log(phi) will 'converge' to -Inf.


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


The first iteration may be very slow; if practical, it is best for the weights argument of vglm etc. to be used rather than inputting a very long vector as the response, i.e., vglm(y ~ 1, ..., weights = wts) is to be preferred over vglm(rep(y, wts) ~ 1, ...). If convergence problems occur try inputting some values of argument ishape.

If an intercept-only model is fitted then the misc slot of the fitted object has list components shape1 and shape2.


T. W. Yee


Paul, S. R. (2005). Testing goodness of fit of the geometric distribution: an application to human fecundability data. Journal of Modern Applied Statistical Methods, 4, 425–433.

See Also

geometric, betaff, rbetageom.


bdata <- data.frame(y = 0:11,
                    wts = c(227,123,72,42,21,31,11,14,6,4,7,28))
fitb <- vglm(y ~ 1, betageometric, bdata, weight = wts, trace = TRUE)
fitg <- vglm(y ~ 1,     geometric, bdata, weight = wts, trace = TRUE)
coef(fitb, matrix = TRUE)
sqrt(diag(vcov(fitb, untransform = TRUE)))
# Very strong evidence of a beta-geometric:
pchisq(2 * (logLik(fitb) - logLik(fitg)), df = 1, lower.tail = FALSE)

VGAM documentation built on July 6, 2022, 5:05 p.m.