Learn R Programming

FSA (version 0.8.6)

mrClosed: Estimate initial population size for single or multiple census mark-recapture data.

Description

Estimates of the initial population size, along with associated confidence intervals, are constructed from single or multiple census mark-recapture data using a variety of methods. For single census data, the initial population size (N) is estimated from the number of marked animals from a first sample (M), number of captured animals in a second sample (n), and the number of recaptured marked animals in the second sample (m) using either the naive Petersen method or Chapman, Ricker, or Bailey modifications of the Petersen method. Single census data can also be separated by group (e.g., size class) to estimate the initial population size by class and for the overall population size. For multiple census data, the initial population size is estimated from the number of captured animals (n), number of recaptured marked animals (m), the number of marked animals that are marked and returned to the population (R), or the number of extant marked animals prior to the sapmle (M) on each of several samples using either the Schnabel (1938) or Schumacher-Eschmeyer (1943) method.

Usage

mrClosed(M = NULL, n = NULL, m = NULL, R = NULL,
  method = c("Petersen", "Chapman", "Ricker", "Bailey", "Schnabel",
  "SchumacherEschmeyer"), labels = NULL, chapman.mod = TRUE)

## S3 method for class 'mrClosed1':
summary(object, digits = 0, incl.SE = FALSE,
  incl.all = TRUE, verbose = FALSE, ...)

## S3 method for class 'mrClosed1':
confint(object, parm = NULL, level = conf.level,
  conf.level = 0.95, digits = 0, type = c("suggested", "binomial",
  "hypergeometric", "normal", "Poisson"), bin.type = c("wilson", "exact",
  "asymptotic"), incl.all = TRUE, verbose = FALSE, ...)

## S3 method for class 'mrClosed2':
summary(object, digits = 0, verbose = FALSE, ...)

## S3 method for class 'mrClosed2':
confint(object, parm = NULL, level = conf.level,
  conf.level = 0.95, digits = 0, type = c("suggested", "normal",
  "Poisson"), verbose = FALSE, ...)

## S3 method for class 'mrClosed2':
plot(x, pch = 19, col.pt = "black",
  xlab = "Marked in Population", ylab = "Prop. Recaptures in Sample",
  loess = FALSE, lty.loess = 2, lwd.loess = 1, col.loess = "gray20",
  trans.loess = 10, span = 0.9, ...)

Arguments

M
A numeric representing the number of marked fish from the first sample (single-census), an object from capHistSum() (single- or multiple-census), or numeric vector of marked fish prior to ith samples (multiple-census).
n
A numeric representing the number of captured fish in the second sample (single-census) or numeric vector of captured fish in ith sample (multiple-census).
m
A numeric representing the number of recaptured (marked) fish in the second sample (single-census) or numeric vector of recaptured (marked) fish in ith sample (multiple-census).
R
A numeric vector representing the number of marked fish returned to the population (multiple-census). Note that several references use the number of new marks returned to the population rather than the total number of ma
method
A single string that identifies the type of calculation method to use in the main function.
labels
A character or character vector used to label the rows of the resulting output matrix when using a single census method separated by groups. Must be the same length as M, n, and m. Defaults to upper-case letters if
chapman.mod
A logical that represents whether the Chapman modification should be used (=TRUE, default) or not (=FALSE) when performing the Schnabel multiple census method.
object, x
An mrClosed1 or mrClosed2 object.
digits
The number of decimal digits to round the population estimates to. If incl.SE=TRUE then SE will be rounded to one more decimal place then given in digits.
incl.SE
A logical that indicates whether the results should include the calculated SE value. See details.
incl.all
A logical that indicates whether an overall population estimate should be computed when using a single census method that has been separated into sub-groups. See details.
verbose
A logical that indicates whether a reminder of the inputted values and what type of method was used should be printed with the summary and confidence interval results.
parm
Not used here (included in confint generic).
level
Same as conf.level but used for compatability with confint generic.
conf.level
A numeric representing the level of confidence to use for confidence intervals.
type
A single string that identifies the distribution to use when constructing confidence intervals in confint. See details.
bin.type
A string that identifies the method used to construct binomial confidence intervals (default is "wilson"). This is only used if type="binomial" in confint. See details of binCI
pch
A numeric used to indicate the type of plotting character.
col.pt
a string used to indicate the color of the plotted points.
xlab
A label for the x-axis.
ylab
A label for the y-axis.
loess
A logical that indicates if a loess smoother line (and approximate 95% confidence band) is fit to and shown on plot.
lty.loess
A single numeric used to indicate the type of line used for the loess line.
lwd.loess
A single numeric used to indicate the line width of the loess line.
col.loess
A single string used to indicate the color of the loess line.
trans.loess
A single numeric that indicates how transparent the loess band should be (larger numbers are more transparent).
span
A single numeric that controls the degree of smoothing. Values closer to 1 are more smooth.
...
Additional arguments for methods.

Value

  • A list with the following items
    • M The number of marked fish from the first sample that was provided.
    • n The number of captured fish in the second sample that was provided.
    • m The number of recaptured (marked) fish in the second sample that was provided.
    • M1 The adjusted (depending ontype) number of marked fish from the first sample.
    • n1 The adjusted (depending ontype) number of captured fish in the second sample.
    • m1 The adjusted (depending ontype) number of recaptured (marked) fish in the second sample.
    • cf A correction factor for the population estimate that depends ontype.
    • method The type of method used (provided by the user).
    • methodLbl A label for the type of method used.
    • N The estimated initial population size.
    • labels Labels for the rows of summary matrix.

code

loess=TRUE

itemize

  • method="Schnabel". The Schnabel (1938) method as computed with equation 3.15 from Ricker (1975).

item

  • type="binomial". Use binCI to construct a confidence interval for m/n (Petersen method) or (m+1)/(n+1) (Chapman, Bailey, Ricker methods), divides M or (M+1) by the CI endpoints, and substract 1 (for the Chapman method).
  • type="Poisson". Use poiCI to construct a confidence interval for m (Petersent method) or (m+1) (Chapman, Bailey, Ricker methods), substitute the CI endpoints into the appropriate equation for estimating N, and subtract 1 (for the Chapman method).
  • type="normal". Used equation 2.4 (p.20) from Krebs (2002) for the Petersen method. For the other methods, used N+/- Z(0.975)*SE, where the SE was computed as noted above.
  • method="SchumacherEschmeyer". The Schumacher and Eschmeyer (1943) method as computed with equation 3.12 from Ricker (1975) eqn 3.12.

emph

  • inverse
  • inverse
  • inverse

Testing

The results from the single census methods have had the following checks. The population estimates for all methods match reputable sources. The SE for the Chapman and Bailey methods match the results from mrN.single in fishmethods, The CI for the Petersen, Chapman, and Bailey methods partially match (are within 1 The results for the multiple census methods have had the following checks. The population estimates for both methods match reputable sources. The intermediate calculations for both methods match those in Krebs (1989). The confidence interval for the Schnabel method using the Poisson distribution does NOT match Krebs (1989). This appears to be a difference in the use poiCI here versus distributional tables in Krebs (i.e., the difference appears to be completely in the critical values from the Poisson distribution). The confidence interval for the Schnabel method using the normal or the Poission distribution do NOT match Ricker (1975), but there is not enough information in Ricker to determine why (it is likely due to numerical differences on the inverse scale). The confidence interval for the Schumacher-Eschmeyer method do match Krebs (1989) but not Ricker (1975). The Ricker result may be due to different df as noted above.

IFAR Chapter

9-Abundance from Capture-Recapture Data.

Details

For single census data, the following methods can be used:
  • method="Petersen". ThenaivePetersen as computed using equation 2.1 from Krebs (1989).
method="Chapman". The Chapman (1951) modification of the Petersen method as computed using equation 2.2 from Krebs (1989). method="Ricker". The Ricker (1975) modification of the Petersen as computed using equation 3.7 from Ricker (1975). This is basically the same method="Chapman" except that Ricker (1975) did NOT subtract a 1 from the answer in the final step. Thus, the estimate from method="Chapman" will always be one less than the estimate from method="Ricker". method="Bailey". The Bailey (1951, 1952) modification of the Petersen as computed using equation 2.3 from Krebs (1989).

References

Ogle, D.H. 2016. http://derekogle.com/IFAR{Introductory Fisheries Analyses with R}. Chapman & Hall/CRC, Boca Raton, FL. Krebs, C.J. 1989. Ecological Methodology. Addison-Welsey Educational Publishing. Ricker, W.E. 1975. Computation and interpretation of biological statistics of fish populations. Technical Report Bulletin 191, Bulletin of the Fisheries Research Board of Canada. [Was (is?) from http://www.dfo-mpo.gc.ca/Library/1485.pdf.] Seber, G.A.F. 2002. The Estimation of Animal Abundance and Related Parameters. Edward Arnold, second edition. Schnabel, Z.E. 1938. The estimation of the total fish population of a lake. American Mathematician Monthly, 45:348-352. Schumacher, F.X. and R.W. Eschmeyer. 1943. The estimation of fish populations in lakes and ponds. Journal of the Tennessee Academy of Sciences, 18:228-249.

See Also

See capHistSum for generating input data from capture histories. See poiCI, binCI, and hyperCI for specifics on functions used in confidence interval constructuion. See mrOpen for handling mark-recapture data in an open population. See SunfishIN in FSAdata for an example to test matching of results with Ricker (1975)' See mrN.single and schnabel in fishmethods for similar functionality.

Examples

Run this code
### Single census with no sub-groups
## Petersen estimate -- the default
mr1 <- mrClosed(346,184,49)
summary(mr1)
summary(mr1,verbose=TRUE)
summary(mr1,incl.SE=TRUE)
summary(mr1,incl.SE=TRUE,digits=1)
confint(mr1)
confint(mr1,verbose=TRUE)
confint(mr1,type="hypergeometric")

## Chapman modification of the Petersen estimate
mr2 <- mrClosed(346,184,49,method="Chapman")
summary(mr2,incl.SE=TRUE)
summary(mr2,incl.SE=TRUE,verbose=TRUE)

### Single census, using capHistSum() results
## data in capture history format
data(BluegillJL)
str(BluegillJL)
ch1 <- capHistSum(BluegillJL)
mr3 <- mrClosed(ch1)
summary(mr3,verbose=TRUE)
confint(mr3,verbose=TRUE)

### Single census with sub-groups
marked <- c(93,35,72,16,46,20)
captured <- c(103,30,73,17,39,18)
recaps <- c(20,23,52,15,35,16)
lbls <- c("YOY","Juvenile","Stock","Quality","Preferred","Memorable")
mr4 <- mrClosed(marked,captured,recaps,method="Ricker",labels=lbls)
summary(mr4)
summary(mr4,incl.SE=TRUE)
summary(mr4,incl.SE=TRUE,verbose=TRUE)
summary(mr4,incl.SE=TRUE,incl.all=FALSE,verbose=TRUE)
confint(mr4)
confint(mr4,verbose=TRUE)
confint(mr4,incl.all=FALSE,verbose=TRUE)

### Multiple Census
## Data in summarized form
data(PikeNY)

## Schnabel method
mr5 <- with(PikeNY,mrClosed(n=n,m=m,R=R,method="Schnabel"))
plot(mr5)
plot(mr5,loess=TRUE)
summary(mr5)
summary(mr5,verbose=TRUE)
confint(mr5)
confint(mr5,verbose=TRUE)

## Schumacher-Eschmeyer method
mr6 <- with(PikeNY,mrClosed(n=n,m=m,R=R,method="Schumacher"))
summary(mr6)
confint(mr6)

### Capture history data summarized by capHistSum()
data(PikeNYPartial1)
# ignore first column of ID numbers
ch2 <- capHistSum(PikeNYPartial1,cols2ignore="id")

## Schnabel method
mr7 <- mrClosed(ch2,method="Schnabel")
plot(mr7)
summary(mr7)
confint(mr7)

Run the code above in your browser using DataLab