
Fits a positive binomial distribution.
posbinomial(link = "logit", multiple.responses = FALSE, parallel = FALSE,
omit.constant = FALSE, p.small = 1e-4, no.warning = FALSE,
zero = NULL)
Details at CommonVGAMffArguments
.
Logical.
If TRUE
then the constant (lchoose(size, size * yprop)
is omitted from the loglikelihood
calculation.
If the model is to be compared using
AIC()
or BIC()
(see AICvlm
or BICvlm
)
to the likes of
posbernoulli.tb
etc. then it is important
to set omit.constant = TRUE
because all models then
will not have any normalizing constants in the likelihood function.
Hence they become comparable.
This is because the posbinomial()
.
See below for an example.
Also see posbernoulli.t
regarding estimating the
population size (N.hat
and SE.N.hat
) if the
number of trials is the same for all observations.
See posbernoulli.t
.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
Under- or over-flow may occur if the data is ill-conditioned.
The positive binomial distribution is the ordinary binomial distribution
but with the probability of zero being zero.
Thus the other probabilities are scaled up
(i.e., divided by
In the capture--recapture literature this model is called
the
Otis, D. L. et al. (1978) Statistical inference from capture data on closed animal populations, Wildlife Monographs, 62, 3--135.
Patil, G. P. (1962) Maximum likelihood estimation for generalised power series distributions and its application to a truncated binomial distribution. Biometrika, 49, 227--237.
Pearson, K. (1913) A Monograph on Albinism in Man. Drapers Company Research Memoirs.
posbernoulli.b
,
posbernoulli.t
,
posbernoulli.tb
,
binomialff
,
AICvlm
, BICvlm
,
simulate.vlm
.
# NOT RUN {
# Number of albinotic children in families with 5 kids (from Patil, 1962) ,,,,
albinos <- data.frame(y = c(rep(1, 25), rep(2, 23), rep(3, 10), 4, 5),
n = rep(5, 60))
fit1 <- vglm(cbind(y, n-y) ~ 1, posbinomial, albinos, trace = TRUE)
summary(fit1)
Coef(fit1) # = MLE of p = 0.3088
head(fitted(fit1))
sqrt(vcov(fit1, untransform = TRUE)) # SE = 0.0322
# Fit a M_0 model (Otis et al. 1978) to the deermice data ,,,,,,,,,,,,,,,,,,,,,,,
M.0 <- vglm(cbind( y1 + y2 + y3 + y4 + y5 + y6,
6 - y1 - y2 - y3 - y4 - y5 - y6) ~ 1, trace = TRUE,
posbinomial(omit.constant = TRUE), data = deermice)
coef(M.0, matrix = TRUE)
Coef(M.0)
constraints(M.0, matrix = TRUE)
summary(M.0)
c( N.hat = M.0@extra$N.hat, # Since tau = 6, i.e., 6 Bernoulli trials per
SE.N.hat = M.0@extra$SE.N.hat) # observation is the same for each observation
# Compare it to the M_b using AIC and BIC
M.b <- vglm(cbind(y1, y2, y3, y4, y5, y6) ~ 1, trace = TRUE,
posbernoulli.b, data = deermice)
sort(c(M.0 = AIC(M.0), M.b = AIC(M.b))) # Okay since omit.constant = TRUE
sort(c(M.0 = BIC(M.0), M.b = BIC(M.b))) # Okay since omit.constant = TRUE
# }
Run the code above in your browser using DataLab