mrClosed(M = NULL, n = NULL, m = NULL, R = NULL, method = c("Petersen", "Chapman", "Ricker", "Bailey", "Schnabel", "SchumacherEschmeyer"), labels = NULL, chapman.mod = TRUE)
"summary"(object, digits = 0, incl.SE = FALSE, incl.all = TRUE, verbose = FALSE, ...)
"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"), poi.type = c("exact", "daly", "byar", "asymptotic"), incl.all = TRUE, verbose = FALSE, ...)
"summary"(object, digits = 0, verbose = FALSE, ...)
"confint"(object, parm = NULL, level = conf.level, conf.level = 0.95, digits = 0, type = c("suggested", "normal", "Poisson"), poi.type = c("exact", "daly", "byar", "asymptotic"), verbose = FALSE, ...)
"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, ...)
capHistSum()
(single- or multiple-census), or numeric vector of marked fish prior to ith samples (multiple-census).M
, n
, and m
. Defaults to upper-case letters if no values are given.=TRUE
, default) or not (=FALSE
) when performing the Schnabel multiple census method.mrClosed1
or mrClosed2
object.incl.SE=TRUE
then SE will be rounded to one more decimal place then given in digits
.confint
generic).conf.level
but used for compatability with confint
generic.confint
. See details."wilson"
). This is only used if type="binomial"
in confint
. See details of binCI
."exact"
). This is only used if type="Poisson"
in confint
. See details of poiCI
.type
) number of marked fish from the first sample.
type
) number of captured fish in the second sample.
type
) number of recaptured (marked) fish in the second sample.
type
.
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.method="Petersen"
. The naive Petersen 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).
If M
contains an object from capHistSum
and one of Petersen, Chapman, Ricker, or Bailey methods has been selected with method=
then n=
and m=
can be left missing or will be ignored and the needed data will be extracted from the sum
portion of the CapHist
class object. If the data were not summarized with capHistSum
then all of M=
, n=
, and m=
must be supplied by the user.
The population estimate (as computed with the formulas noted in the table above) is extracted with summary
. In addition, the standard error of the population estimate (SE) can be extracted by including incl.SE=TRUE
. The SE is from equation 3.6 (p. 78) in Ricker (1975) for the Petersen method, from p. 60 (near bottom) of Seber (2002) for the Chapman method, from p. 61 (middle) of Seber (2002) (and as noted on p. 79 of Ricker (1975)) for the Bailey method, and from equation 3.8 (p. 78) in Ricker (1975) for the Ricker method.
Confidence intervals for the initial population size from the single census methods can be constructed using four different distributions as chosen with type=
in confint
. If type="suggested"
then the type of confidence interval suggested by the rules on p. 18 in Krebs (1989) are used. The general methods for constructing confidence intervals for N are described below
type="hypergeometric"
. Uses hyperCI
. This is experimental at this point.
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.
If incl.all=TRUE
in summary
and population estimates have been constructed for multiple sub-groups then an overall population estimate is included by summing the population estimates for the multiple sub-groups. If incl.SE=TRUE
, then an overall SE is computed by taking the square root of the summed VARIANCES for the multiple sub-groups.
For multiple census data, the following methods can be declared for use with the method=
argument:
method="Schnabel"
. The Schnabel (1938) method as computed with equation 3.15 from Ricker (1975).
method="SchumacherEschmeyer"
. The Schumacher and Eschmeyer (1943) method as computed with equation 3.12 from Ricker (1975) eqn 3.12.
If M
contains an object from capHistSum
and the Schnabel or Schumacher-Eschmeyer methods has been chosen then n
, m
and R
can be left missing or will be ignored. In this case, the needed data is extracted from the sum
portion of the CapHist
class object. Otherwise, the user must supply vectors of results in n
, m
, and R
or M
.
The population estimate for each method is extracted with summary
. Standard errors for the population estimate can NOT be computed for the Schnabel or Schumacher-Eschmeyer methods (a warning will be produced if incl.SE=TRUE
is used).
Confidence intervals for the initial population size using multiple census methods can be constructed using the normal or Poisson distributions for the Schnabel method or the normal distribution for the Shumacher-Eschmeyer method as chosen with type=
. If type="suggested"
then the type of confidence interval suggested by the rule on p. 32 of Krebs (1989) is used (for the Schnabel method). If type="Poisson"
for the Schnabel method then a confidence interval for the sum of m is computed with poiCI
and the end points are substituted into the Schnabel equation to produce a CI for the population size. If type="normal"
for the Schnabel method then the standard error for the inverse of the population estimate is computed as the square root of equation 2.11 from Krebs (1989) or equation 3.16 from Ricker (1975). The standard error for the Schumacher-Eschmeyer method is for the inverse of the population estimate and is computed with equation 2.14 from Krebs (1989) [Note that the divisor in Krebs (1989) is different than the divisor in equation 3.12 in Ricker (1975), but is consistent with equation 4.17 in Seber (2002).] The confidence interval for the inverse population estimate is constructed from the inverse population estimate plus/minus a t critical value times the standard error for the inverse population estimate. The t critical value uses the number of samples minus 1 for the Schnabel method and the number of samples minus 2 when for the Schumacher-Eschmeyer method according to p. 32 of Krebs (1989) (note that this is different than what Ricker (1975) does). Finally, the confidence interval for the population estimate is obtained by inverting the confidence interval for the inverse population estimate. Note that confidence intervals for the population size when type="normal"
may contain negative values (for the upper value) when the population estimate is relatively large and the number of samples is small (say, three) because the intervals are orginally constructed on the inverted population estimate and they use the t-distribution.
The plot
can be used to identify assumption violations in the Schnabel and Schumacher-Eschmeyer methods (an error will be returned if used with any of the other methods). If the assumptions ARE met then the plot of the proportion of marked fish in a sample versus the cumulative number of marked fish should look linear. A loess line (with approximate 95% confidence bands) can be added to aid interpretation with loess=TRUE
. Note, however, that adding the loess line may return a number of warning or produce a non-informative if the number of samples is small (
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.
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.
### 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