The assessment of ages for a large number of fish is very time-consuming, whereas measuring the length of a large number of fish is relatively easy. The age structure for a large number of fish can be estimated by summarizing the relationship between age and length for a relatively small subsample of fish and then applying this summary to the entire sample of fish. This summary is called an age-length key. The construction and application of an age-length key and the use of this key to assign ages to individual fish as described in Isermann and Knight (2005) is the focus of these notes.

 

Constructing Age-Length Keys

A subsample of \(n\) fish to be aged is selected from the entire sample of fish by randomly selecting fish from each length interval (rather than a simple random selection of all fish). The number of fish in each interval can either be fixed at a constant number or proportional to the total number of fish in that length interval. Kimura (1977) notes that proportional selection produces statistically “better” results. However, proportional selection is uncommon in the field as the length of all fish must be known before taking the subsample. Thus, it is much more common, in practice, to subsample a set number of fish per length interval. More importantly, the range of lengths in the subsample must cover the entire range of lengths in the original sample. This subsample of fish is called the age sample, because the relationship between age and length will be determined from this group of fish only.

The measured length and assessed age is recorded for all fish in the age sample. In addition, the length category to which each fish belongs is also recorded. For example, if 5-mm length categories are created that begin on the “0” and “5” units, then a 117 mm fish will be recorded as being in the 115-119 mm length category. Generally, all length categories are of the same width; thus, for simplicity, only the beginning length in the length category is recorded (e.g., “115” mm).

The length category and the assessed age for the fish in the age sample is summarized with a two-way contingency table where the length categories form the rows and age categories form the columns. In other words, the number of fish in the age sample in each length category and age combination is determined. An example of this summary is shown below (with row and column labels to aid interpretation).

  \(A_{1}\) \(A_{2}\)
\(L_{1}\) 6 2
\(L_{2}\) 3 3
\(L_{3}\) 1 4

In this example, six fish in the age sample belong to the first length category and the first age. Similarly, one fish belongs to the last length category and the first age.

The portion of the entire sample of fish that was not part of the age sample (i.e., fish for which only a length measurement was obtained) is called the length sample. Age is “assigned” to fish in the length sample based on the fish’s length category and the proportion of fish of that length category of each age in the age sample. For example, a fish in the length sample that belongs to the first length category has, based on the summary from the age sample, a 75% chance (i.e., \(\frac{6}{8}\)) of being the first age and a 25% chance of being the second age. Furthermore, if there were 20 fish in the length sample in the first length category, then 15 (i.e., \(20\times0.75\)) would be expected to be the first age and five (i.e., \(20\times0.25\)) would be expected to be the second age.

Thus, assignment of ages to fish in the length sample is based on the “probability” of each age given the length category that the fish belongs to, as derived from the age sample. The required conditional probabilities from the age sample are derived from the summary contingency table by dividing each cell of the table by the total number of fish in that length cateogry (i.e., each cell is divided by the sum of its row; thus, a “row-proportions” table is computed). The row-proportions table derived from the summary contingency table shown above is below.

  \(A_{1}\) \(A_{2}\)
\(L_{1}\) 0.75 0.25
\(L_{2}\) 0.50 0.50
\(L_{3}\) 0.20 0.80

This row-proportions table is the so-called age-length key, because it relates the conditional probability of an age given a particular length category.

 

Age Assignment to Individuals

An age-length key can be used to develop a summary frequency of ages for the length sample. In addition, methods have been developed to find the mean length-at-age for the length sample or the CPE for each age from fish in the length sample (Bettoli and Miranda 2001). However, these methods cannot be used to calculate measures of variability for these summaries (Isermann and Knight 2005). Thus, it is beneficial to use the age-length key to assign an age to each fish in the length sample and then to summarize those results (Isermann and Knight 2005).

In the Isermann and Knight (2005) method, the exact expected number of fish with a given length interval of a given age will be assigned that age, with exceptions for fractionality discussed below. For example, given the age-length key from above, assume that there are 24 fish in the length sample that are in the first length category. In this case, 75% or eighteen (i.e., \(24\times0.75\)) would be assigned the first age and six (i.e., \(24\times0.25\)) would be assigned the second age. Which of the 24 fish would be assigned the specific ages is determined randomly, but the number to be assigned each age is set at eighteen and six, respectively.

One difficulty that is soon apparent is that the expected number of individuals in a given length interval assigned a certain age may contain a fraction. For example, suppose that 23 fish in the length sample were in the SECOND length category. In this case, the expected number of fish for each age is 11.5 (i.e., \(23\times0.5\) for each age). Clearly, a half of a fish cannot be assigned to a given age category. This difficulty was called fractionality by Isermann and Knight (2005).

Fractionality is handled by first assigning the closest integer smaller then the expected number of fish to the age-group. In the example above, eleven fish would be assigned each of the two ages. The remaining fish is then randomly assigned an age with a probabilistic weight equal to the expected proportion of fish in each age category. For example, the fish would be assigned the first age with a probability of 0.50 and would be assigned the second age with a probability of 0.50. In other words, in this example, it is essentially a coin-flip which age the “extra” fish is assigned. If the coin flip determines that the “extra” fish should be in the second age, then eleven fish would be assigned the first age and twelve would be assigned the second age. Again, the specific age to be assigned to each individual fish is determined randomly; but eleven fish would be assigned the first age and twelve would be assigned the second age as determined above.

To complete the example, suppose that fourteen fish in the length sample are in the third length category. Given the age-length key above, two fish will be assigned the first age (i.e., \(14\times0.2\)) and eleven fish will be assigned the second age (i.e., \(14\times0.8\)). The “extra” fish (i.e., \(14-2-11\)) will be assigned an age with a probability of being the first age of 0.2 and a probability of being the second age of 0.8. Thus, it is four times more likely that the “extra” fish will be assigned the second age than the first age.

Calculations in R

Methods for performing these methods in R are described in Section 5.4.4 of Ogle (2016).1

 


Reproducibility Information

  • Compiled Date: Fri Jan 06 2017
  • Compiled Time: 4:15:02 PM
  • R Version: R version 3.3.2 (2016-10-31)
  • System: Windows, i386-w64-mingw32/i386 (32-bit)
  • Base Packages: base, datasets, graphics, grDevices, methods, stats, utils
  • Required Packages: FSA, knitr and their dependencies (car, digest, dplyr, epitools, evaluate, gplots, graphics, grDevices, highr, markdown, methods, plotrix, plyr, sciplot, stats, stringr, tools, utils, yaml)
  • Other Packages: FSA_0.8.12, knitr_1.15.1
  • Loaded-Only Packages: backports_1.0.4, digest_0.6.11, evaluate_0.10, htmltools_0.3.5, magrittr_1.5, plyr_1.8.4, Rcpp_0.12.8, rmarkdown_1.3, rprojroot_1.1, stringi_1.1.2, stringr_1.1.0, tools_3.3.2, yaml_2.1.14
  • Links: Script / RMarkdown

 

References

Bettoli, P. W., and L. E. Miranda. 2001. A cautionary note about estimating mean length at age with subsampled data. North American Journal of Fisheries Management 21:425–428.

Isermann, D. A., and C. T. Knight. 2005. A computer program for age-length keys incorporating age assignment to individual fish. North American Journal of Fisheries Management 25:1153–1160.

Kimura, D. K. 1977. Statistical assessment of the age-length key. Journal of the Fisheries Research Board of Canada 34:317–324.

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


  1. Scripts for these calculations are here.