Learn R Programming

FSA (version 0.8.11)

jolly: Jolly-Seber analysis from multiple mark-recapture events from an open population.

Description

This function takes the two parts of a Method B table and uses the Jolly-Seber method to estimate the population size at each possible sample period and the apparent survival rate and number of additional individuals added to the population between possible sample periods. This method assumes that the population is open.

Usage

jolly(...)
mrOpen(mb.top, mb.bot = NULL, type = c("Jolly", "Manly"), conf.level = 0.95, phi.full = TRUE)
"summary"(object, parm = c("N", "phi", "B", "M"), verbose = FALSE, ...)
"confint"(object, parm = c("N", "phi", "B"), level = NULL, conf.level = NULL, verbose = FALSE, ...)

Arguments

mb.top
A matrix that contains the “top” of the Method B table (i.e., a contingency table of capture sample (columns) and last seen sample (rows)) or an object of class CapHist from capHistSum. See details.
mb.bot
A data frame that contains the “bottom” of the Method B table (i.e., the number of marked fish in the sample (m), the number of unmarked fish in the sample (u), the total number of fish in the sample (n), and the number of marked fish returned to the population following the sample (R)).
type
A string that indicates whether the large sample (normal theory) method of Jolly (type="Jolly") or the “arbitrary” method of Manly (type="Manly") should be used to construct confidence intervals.
conf.level
A single numeric that indicates the level of confidence to use for constructing confidence intervals (default is 0.95). See details.
phi.full
A logical that indicates whether the standard error for phi should include only sampling variability (phi.full=FALSE) or sampling and individual variability (phi.full=TRUE,default).
object
An object from mrOpen (i.e., of class mrOpen).
parm
A string that identifies the model parameters for which to return summaries or confidence intervals. By default, all parameters are returned.
verbose
A logical that indicates if the observables and other notes should be printed in summary and if the type of confidence interval used should be printed in confint. See details.
level
Same as conf.level but used for compatability with generic confint function.
...
Additional arguments for methods.

Value

A list with the following items:
  • df A data frame that contains observable summaries from the data and estimates of the number of extant marked fish (M), population size for each possible sample period (N), apparent survival rate between each possible pair of sample periods (phi), and the number of additional individuals added to the population between each possible pair of sample periods (B). In addition to the estimates, values of the standard errors and the lower and upper confidence interval bounds for each parameter are provided (however, see the details above).
  • type The provided type of confidence intervals that was used.
  • phi.full The provided logical that indicates the type of standard error for phi that was used.
  • conf.level The provided level of confidence that was used.

Testing

The formulas have been triple-checked against formulas in Pollock et al. (1990), Manly (1984), and Seber (2002). The results for the CutthroatAL data file (as analyzed in the example) was compared to results from the JOLLY program available at http://www.mbr-pwrc.usgs.gov/software/jolly.html. The r and z values matched, all M and N estimates match at one decimal place, all phi are within 0.001, and all B are within 0.7. The SE match for M except for two estimates that are within 0.1, match for N except for one estimate that is within 0.1, are within 0.001 for phi, and are within 1.3 for B (except for for the first estimate which is dramatically off). The results of mrOpen related to Table 4.4 of Pollock et al. (1990) match (to one decimal place) except for three estimates that are within 0.1% for N, match (to two decimal places) for phi except for where Pollock set phi>1 to phi=1, match for B except for Pollock set B

IFAR Chapter

9-Abundance from Capture-Recapture Data and 11-Mortality.

Details

jolly is just a convenience wrapper that produces the exact same results as mrOpen.

If mb.top contains an object from the capHistSum function then mb.bot can be left missing. In this case, the function will extract the needed data from the methodB.top and methodB.bot portions of the CapHist class object.

If mb.top is a matrix then it must be square, must have non-negative and no NA values in the upper triangle, and all NA values on the lower triangle and diagonal. If mb.bot is a matrix then it must have four rows named m, u, n, and R (see capHistSum for definitions), all values must be non-NA, and the first value of m must be 0. The last value of R can either be 0 or some positive number (it is ultimately ignored in all calculations).

All parameter estimates are performed using equations 4.6-4.9 from Pollock et al (1990) and from page 204 in Seber 2002. If type="Jolly" then all standard errors (square root of the variances) are from equations 4.11, 4.12, and 4.14 in Pollock et al. (1990) (these are different than those in Seber (2002) ... see Pollock et al.'s note on page 21). If type="Jolly" and phi.full=TRUE then the full variance for the phi parameter is given as in eqn 4.18 in Pollock et al. (1990), otherwise eqn 4.13 from Pollock et al. (1990) is used. When type="Jolly" the confidence interval are produced using normal theory (i.e., estimate +/- z*SE). If type="Manly" then the confidence intervals for N and phi (none will be produced for B) are constructed using the methods of Manly (1984) and as described in 2.24-2.33 of Krebs (1989). No standard errors are returned when type="Manly".

The summary function returns estimates of M, N, phi, B, and their associated standard errors and, if verbose=TRUE the intermediate calculations of “observables” from the data -- n, m, R, r, and z.

The level of confidence is not set in the confint function, in contrast to most confint functions. Rather the confidence level is set in the main mrOpen function.

References

Ogle, D.H. 2016. Introductory Fisheries Analyses with R. Chapman & Hall/CRC, Boca Raton, FL.

Jolly, G.M. 1965. Explicit estimates from capture-recapture data with both death and immigration -- stochastic model. Biometrika, 52:225-247.

Krebs, C.J. 1989. Ecological Methodology. Harper & Row Publishers, New York.

Leslie, P.H. and D. Chitty. 1951. The estimation of population parameters from data obtained by means of the capture-recapture method. I. The maximum likelihood equations for estimating the death-rate. Biometrika, 38:269-292.

Manly, B.F.J. 1984. Obtaining confidence limits on parameters of the Jolly-Seber model for capture-recapture data. Biometrics, 40:749-758.

Pollock, K.H., J.D. Nichols, C. Brownie, and J.E. Hines. 1991. Statistical inference for capture-recapture experiments. Wildlife Monographs, 107:1-97.

Seber, G.A.F. 1965. A note on the multiple recapture census. Biometrika 52:249-259.

Seber, G.A.F. 2002. The Estimation of Animal Abundance. Edward Arnold, second edition (reprinted).

See Also

capHistSum, mrClosed

Examples

Run this code
## First example -- capture histories summarized with capHistSum()
data(CutthroatAL)
ch1 <- capHistSum(CutthroatAL,cols2use=-1)  # ignore first column of fish ID
ex1 <- mrOpen(ch1)
summary(ex1)
summary(ex1,verbose=TRUE)
summary(ex1,parm="N")
summary(ex1,parm=c("N","phi"))
confint(ex1)
confint(ex1,parm="N")
confint(ex1,parm=c("N","phi"))
confint(ex1,verbose=TRUE)

## Second example - Jolly's data -- summarized data entered "by hand"
s1 <- rep(NA,13)
s2 <- c(10,rep(NA,12))
s3 <- c(3,34,rep(NA,11))
s4 <- c(5,18,33,rep(NA,10))
s5 <- c(2,8,13,30,rep(NA,9))
s6 <- c(2,4,8,20,43,rep(NA,8))
s7 <- c(1,6,5,10,34,56,rep(NA,7))
s8 <- c(0,4,0,3,14,19,46,rep(NA,6))
s9 <- c(0,2,4,2,11,12,28,51,rep(NA,5))
s10 <- c(0,0,1,2,3,5,17,22,34,rep(NA,4))
s11 <- c(1,2,3,1,0,4,8,12,16,30,rep(NA,3))
s12 <- c(0,1,3,1,1,2,7,4,11,16,26,NA,NA)
s13 <- c(0,1,0,2,3,3,2,10,9,12,18,35,NA)
jolly.top <- cbind(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13)

n <- c(54,146,169,209,220,209,250,176,172,127,123,120,142)
R <- c(54,143,164,202,214,207,243,175,169,126,120,120,0)
m <- c(0,10,37,56,53,77,112,86,110,84,77,72,95)
u <- n-m
jolly.bot <- rbind(m,u,n,R)

ex2 <- mrOpen(jolly.top,jolly.bot)
summary(ex2,verbose=TRUE)
confint(ex2,verbose=TRUE)

ex3 <- mrOpen(jolly.top,jolly.bot,type="Manly")
summary(ex3,verbose=TRUE)
confint(ex3,verbose=TRUE)

## demonstrate use of jolly()
ex3a <- jolly(jolly.top,jolly.bot)

Run the code above in your browser using DataLab