Rcapture (version 1.4-4)

closedp: Loglinear Models for Closed Population Capture-Recapture Experiments


The functions closedp.t and closedp.0 fit various loglinear models for closed populations in capture-recapture experiments. For back compatibility, closedp.t is also named closedp.

closedp.t fits more models than closedp.0 but for data set with more than 20 capture occasions, the function might fail. However, closedp.0 works with fairly large data sets (see Details).


closedp(X, dfreq=FALSE, neg=TRUE, …)
closedp.t(X, dfreq=FALSE, neg=TRUE, …)

closedp.0(X, dfreq=FALSE, dtype=c("hist","nbcap"), t=NULL, t0=NULL, neg=TRUE, …)

# S3 method for closedp print(x, …)

# S3 method for closedp boxplot(x, main="Boxplots of Pearson Residuals", …)

# S3 method for closedp plot(x, main="Residual plots for some heterogeneity models", …)



The matrix of the observed capture histories (see Rcapture-package for a description of the accepted formats).


A logical. By default FALSE, which means that X has one row per unit. If TRUE, it indicates that the matrix X contains frequencies in its last column.


A characters string, either "hist" or "nbcap", to specify the type of data. "hist", the default, means that X contains complete observed capture histories. "nbcap" means that X contains numbers of captures (see Rcapture-package for details on data formats).


Requested only if dtype="nbcap". A numeric specifying the total number of capture occasions in the experiment. For closedp.0, the value t=Inf is accepted. It indicates that captures occur in continuous time (see Rcapture-package).


A numeric. Models are fitted considering only the frequencies of units captured 1 to t0 times. By default, if t is not equal to Inf, t0=t. When t=Inf, the default value of t0 is the larger number of captures observed.


If this option is set to TRUE, negative eta parameters in Chao's lower bound models are set to zero (see Details).

Further arguments to be passed to glm, print.default, boxplot.default or plot.default.


An object, produced by a closedp function, to print or to plot.


A main title for the plot.



The number of captured units.


The total number of capture occasions in the data matrix X. When captures occur in continuous time (input argument t=Inf), this output value is the larger number of captures observed.


For closedp.0 only: the value of the argument t0 used in the computations.


A table containing, for every fitted model:


the estimated population size,


the standard error of the estimated population size,


the model's deviance,


the number of degrees of freedom,


the Akaike's information criterion,


the bayesian information criterion,


a numerical code giving information about error or warnings encountered when fitting the model (see Rcapture-package for details).


A vector, the asymptotic bias of the estimated population size for every fitted model.


A list of the 'glm' objects obtained from fitting models.


A list of character string vectors. If the glm function generates an error when fitting a model, a copy of the error message is stored in glm.err$mname where mname is a short name to identify the model. A NULL list element means that no error occured for the considered model.


A list of character string vectors. If the glm function generates one or more warnings when fitting a model, a copy of these warnings are stored in glm.warn$mname where mname is a short name to identify the model. A NULL list element means that glm did not produce any warnings for the considered model.


Capture-recapture parameters estimates. It contains N, the estimated population size, and p or \(p_1\) to \(p_t\) defined as follows for the different models :


the capture probability at any capture occasion,


the capture probabilities for each capture occasion,

Mh models:

the average probability of capture,

Mth models:

the average probabilities of capture for each occasion,

Mb and Mbh:

the probability of first capture at any capture occasion.

For models Mb and Mbh, it also contains c, the recapture probability at any capture occasion.


The position of the eta parameters set to zero in the loglinear parameter vector of models MhC and MthC. NULL if no parameters are set to zero.


A copy of the data given as input in the function call.


A copy of the dfreq argument given in the function call.


closedp.t fits models M0, Mt, Mh Chao (LB), Mh Poisson2, Mh Darroch, Mh Gamma3.5, Mth Chao (LB), Mth Poisson2, Mth Darroch, Mth Gamma3.5, Mb and Mbh. closedp.0 fits only models M0, Mh Chao (LB), Mh Poisson2, Mh Darroch and Mh Gamma3.5. However, closedp.0 can be used with larger data sets than closedp.t. This is explained by the fact that closedp.t fits models using the frequencies of the observable capture histories (vector of size \(2^t-1\)), whereas closedp.0 uses the numbers of units captured i times, for \(i=1,\ldots,t\) (vector of size \(t\)). See Rcapture-package for more details about the distinction between .t and .0 functions.

Multinomial profile confidence intervals for the abundance are constructed by closedpCI.t and closedpCI.0.

To calculate bias corrected abundance estimates, use the closedp.bc function.


Chao's (or LB) models estimate a lower bound for the abundance, both with a time effect (Mth Chao) and without one (Mh Chao). The estimate obtained under Mh Chao is Chao's (1987) moment estimator. Rivest and Baillargeon (2007) exhibit a loglinear model underlying this estimator and provide a generalization to Mth. For these two models, a small deviance means that there is an heterogeneity in capture probabilities; it does not mean that the lower bound estimate is unbiased. To test whether a certain model for heterogeneity is adequate, one can conduct a likelihood ratio test by subtracting the deviance of Chao's model to the deviance of the heterogeneous model under study. If this heterogeneous model includes a time effect, it must be compared to model Mth Chao. If it does not include a time effect, it must be compared to model Mh Chao. Under the null hypothesis of equivalence between the two models, the difference of deviances follows a chi-square distribution with degrees of freedom equal to the difference between the models' degrees of freedom.

Chao's lower bound models contain \(t-2\) parameters, called eta parameters, for the heterogeneity. These parameters should theoretically be greater or equal to zero (see Rivest and Baillargeon (2007)). When the argument neg is set to TRUE (the default), negative eta parameters are set to zero (to do so, columns are removed from the design matrix of the model). Degrees of freedom of Chao's model increase when eta parameters are set to zero.


Other models for heterogeneity are defined as follows :

Model Column for heterogeneity in the design matrix
Poisson2 \(2^k-1\)
Darroch \(k^2/2\)

where \(k\) is the number of captures. Poisson and Gamma models with alternative to the parameter defaults values 2 and 3.5 can be fitted with the closedpCI.t and closedpCI.0 functions.

Darroch's models for Mh and Mth are considered by Darroch et al. (1993) and Agresti (1994). Poisson and Gamma models are discussed in Rivest and Baillargeon (2007). Poisson models typically yield smaller corrections for heterogeneity than Darroch's model since the capture probabilities are bounded from below under these models. On the other hand, Gamma models can lead to very large estimators of abundance. We suggest considering this estimator only in experiments where very small capture probabilities are likely.


The boxplot.closedp function produces boxplots of the Pearson residuals of the fitted loglinear models that converged.

The plot.closedp function produces scatterplots of the Pearson residuals in terms of \(f_i\) (number of units captured i times) for the heterogeneous models Mh Poisson2, Mh Darroch and Mh Gamma3.5 if they converged.


Agresti, A. (1994) Simple capture-recapture models permitting unequal catchability and variable sampling effort. Biometrics, 50, 494--500.

Baillargeon, S. and Rivest, L.P. (2007) Rcapture: Loglinear models for capture-recapture in R. Journal of Statistical Software, 19(5), 10.18637/jss.v019.i05.

Chao, A. (1987) Estimating the population size for capture-recapture data with unequal catchabililty. Biometrics, 45, 427--438.

Darroch, S.E., Fienberg, G., Glonek, B. and Junker, B. (1993) A three sample multiple capture-recapture approach to the census population estimation with heterogeneous catchability. Journal of the American Statistical Association, 88, 1137--1148.

Rivest, L.P. and Levesque, T. (2001) Improved loglinear model estimators of abundance in capture-recapture experiments. Canadian Journal of Statistics, 29, 555--572.

Rivest, L.P. and Baillargeon, S. (2007) Applications and extensions of Chao's moment estimator for the size of a closed population. Biometrics, 63(4), 999--1006.

Seber, G.A.F. (1982) The Estimation of Animal Abundance and Related Parameters, 2nd edition, New York: Macmillan.

See Also

closedpCI.t, closedpCI.0, closedp.bc, closedp.Mtb, closedpMS.t, uifit.


Run this code
# hare data set
hare.closedp <- closedp.t(hare)

# Third primary period of mvole data set
period3 <- mvole[, 11:15]

# BBS2001 data set
BBS.closedp <- closedp.0(BBS2001, dfreq = TRUE, dtype = "nbcap", t = 50, t0 = 20)

### Seber (1982) p.107
# When there is 2 capture occasions, the heterogeneity models cannot be fitted
X <- matrix(c(1,1,167,1,0,781,0,1,254), byrow = TRUE, ncol = 3)
closedp.t(X, dfreq = TRUE)

### Example of captures in continuous time
# Illegal immigrants data set
closedp.0(ill, dtype = "nbcap", dfreq = TRUE, t = Inf)
# }

Run the code above in your browser using DataCamp Workspace