jolly | R Documentation |
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.
jolly(...)
mrOpen(
mb.top,
mb.bot = NULL,
type = c("Jolly", "Manly"),
conf.level = 0.95,
phi.full = TRUE
)
## S3 method for class 'mrOpen'
summary(object, parm = c("N", "phi", "B", "M"), verbose = FALSE, ...)
## S3 method for class 'mrOpen'
confint(
object,
parm = c("N", "phi", "B"),
level = NULL,
conf.level = NULL,
verbose = FALSE,
...
)
... |
Additional arguments for methods. |
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 |
mb.bot |
A data frame that contains the “bottom” of the Method B table (i.e., the number of marked fish in the sample ( |
type |
A string that indicates whether the large sample (normal theory) method of Jolly ( |
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 ( |
object |
An object from |
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 |
level |
Same as |
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.
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.
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<0 to B=0. The SE match (to two decimal places) for N except for N15 (which is within 0.5, <5%), match (to three decimal places) for phi except for phi15 (which is within 0.001, <0.5%), match (to two decimal places) for B except for B17 and B20 which are within 0.2 (<0.2%)
All point estimates of M, N, phi, and B and the SE of phi match the results in Table 2.3 of Krebs (1989) (within minimal rounding error for a very small number of results). The SE of N results are not close to those of Krebs (1989) (who does not provide a formula for SE so the discrepancy cannot be explored). The SE of B results match those of Krebs (1989) for 5 of the 8 values and are within 5% for 2 of the other 3 values (the last estimate is off by 27%).
For comparing to Jolly's data as presented in Tables 5.1 and 5.2 of Seber (2002), M was within 4 (less than 1.5%), N was within 3% (except N2 which was within 9%), phi was within 0.01 (less than 1.5
9-Abundance from Capture-Recapture Data and 11-Mortality.
Derek H. Ogle, DerekOgle51@gmail.com
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).
capHistSum
, mrClosed
## First example -- capture histories summarized with capHistSum()
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.