# hoenig: Age-Length Key by the Hoening _et al._ (1993, 1994) method In ALKr: Generate Age-Length Keys for fish populations

## Description

Generation of Age-Length Keys (ALK) using incomplete data, by the method proposed by Hoenig et al. (1993, 1994).

## Usage

 ```1 2 3``` ```hoenig(Ak, fik, fiz, threshold = 1, maxiter = 2000, age_classes = colnames(Ak[[1]]), length_classes = rownames(Ak[[1]]), name = "", description = "") ```

## Arguments

 `Ak` A list of `k` equally dimensioned matrices, so that `A[[k]][i, j]` is the count of individuals of length `i` and age `j` on sample `k`. `fik` A list of `k` vectors of equal length (`i`), so that `fik[[k]][i]` is the total number of fish in the length-class `i` on the population from which `Ak[[k]]` was sampled. `fiz` A list of vectors of equal length (`i`) where `fiz[[z]][i]` is the number of fish in the length-class `i` on population `z`, for which no age data is available. `age_classes` A vector with the name of each age class. `length_classes` A vector with the name of each age class. `threshold` The value at which convergence is considered to be achieved: see ‘details’. `maxiter` The maximum number of iterations of the EM algorithm: see ‘details’. `name` A string with the name of the ALK. `description` A string describing the ALK.

## Details

Calculates an ALK using the generalized method proposed by Hoenig et al. (1993, 1994), which uses an undefined number of data sets with known and unknown age information.

The returned `ALKr` object contains information on the convergence threshold that was used, the number of iterations ran, and if convergence was reached.

#### Convergence

The method proposed by Hoenig et al. (1993, 1994) is based on the EM algorithm as defined by Dempster et al. (1997), and it generates the ALK by a series of iterations which are repeated until convergence is acheived.

Let `Nz` be a list of matrices containing the number of fish in each length and age class for each of the `z` populations with unknown age information and with length distribution specified by `fiz`. Convergence is tested by evaluating the greatest of the absolute differences between all pairs of `Nz` matrices generated on the current and previous iterations: `max(mapply("-", Nz, Nz.old))`.

## Value

A list of `ALKr` objects, one for each item in the `fiz` list, each containing a matrix with the probability of an individual of age `j` having length `i`, i.e. P(i|j), the vectors of age and length classes, and information about the method used to generate the key.

## References

Dempster, A.P., Laird, N.M., Rubin, D.B. (1977). Maximum Likelihood from Incomplete Data via the EM Algorithm. Journal of the Royal Statistical Society. Series B (Methodological), 39/1, 1-38. DOI: `10.2307/2984875`

Hoenig, J.M., Heisey, D.M., Hanumara, R.C. (1993). Using Prior and Current Information to Estimate Age Composition: a new kind of age-length key. ICES CM Documents 1993, 10.

Hoenig, J.M., Heisey, D.M., Hanumara, R.C. (1994). A computationally simple approach to using current and past data in age-length key. ICES CM Documents 1994, 5.

inverse_ALK kimura_chikuni hoenig_heisey gascuel

## Examples

 ```1 2 3 4 5``` ```data(hom) hoenig(Ak = hom\$otoliths[1:10], fik = replicate(10, hom\$F1992, simplify = FALSE), fiz = list(hom\$F1993)) ```

### Example output

```[[1]]
0           1           2          3           4           5
7  0.85711153 0.142888470 0.000000000 0.00000000 0.000000000 0.000000000
8  0.78448170 0.215518302 0.000000000 0.00000000 0.000000000 0.000000000
9  0.82905531 0.170944694 0.000000000 0.00000000 0.000000000 0.000000000
10 0.81434969 0.185650315 0.000000000 0.00000000 0.000000000 0.000000000
11 0.79104174 0.208958256 0.000000000 0.00000000 0.000000000 0.000000000
12 0.75768002 0.225203979 0.017116003 0.00000000 0.000000000 0.000000000
13 0.73377618 0.256594766 0.009629055 0.00000000 0.000000000 0.000000000
14 0.69553853 0.293634027 0.010827443 0.00000000 0.000000000 0.000000000
15 0.64168466 0.334757600 0.023557744 0.00000000 0.000000000 0.000000000
16 0.58960677 0.386734685 0.013293825 0.01036472 0.000000000 0.000000000
17 0.47786139 0.427413133 0.094725480 0.00000000 0.000000000 0.000000000
18 0.33363991 0.437781378 0.217551962 0.01102675 0.000000000 0.000000000
19 0.22413009 0.402880045 0.305365255 0.06762461 0.000000000 0.000000000
20 0.07364994 0.314562035 0.536844220 0.06667674 0.008267065 0.000000000
21 0.06592822 0.199764035 0.554441017 0.10719058 0.050238517 0.000000000
22 0.03020500 0.091264141 0.600896326 0.20565725 0.067622997 0.004354286
23 0.00000000 0.021042030 0.481022880 0.32495379 0.088608295 0.018252849
24 0.00000000 0.000000000 0.392528056 0.36267636 0.144979929 0.041864787
25 0.00000000 0.008593014 0.213033074 0.42890376 0.191286009 0.071532911
26 0.00000000 0.000000000 0.121320762 0.36471030 0.224063135 0.090991910
27 0.00000000 0.000000000 0.020607381 0.30031486 0.248424421 0.119933040
28 0.00000000 0.000000000 0.019916007 0.22699423 0.258932357 0.126545982
29 0.00000000 0.000000000 0.022564813 0.16249450 0.154534774 0.087937068
30 0.00000000 0.000000000 0.000000000 0.00000000 0.067322538 0.087764395
31 0.00000000 0.000000000 0.000000000 0.03489926 0.075143247 0.043286952
32 0.00000000 0.000000000 0.000000000 0.00000000 0.071039090 0.058615654
33 0.00000000 0.000000000 0.000000000 0.00000000 0.015927205 0.075962521
34 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.026757349
35 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.033686042
36 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.000000000
37 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.000000000
38 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.000000000
39 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.000000000
40 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.000000000
41 0.00000000 0.000000000 0.000000000 0.00000000 0.000000000 0.000000000
6          7          8           9           10          11
7  0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
8  0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
9  0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
10 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
11 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
12 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
13 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
14 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
15 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
16 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
17 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
18 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
19 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
20 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
21 0.02243763 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
22 0.00000000 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
23 0.06612015 0.00000000 0.00000000 0.000000000 0.0000000000 0.000000000
24 0.03783253 0.02011834 0.00000000 0.000000000 0.0000000000 0.000000000
25 0.06034344 0.01333602 0.01024878 0.002722993 0.0000000000 0.000000000
26 0.13030531 0.05997379 0.00000000 0.008284878 0.0003499159 0.000000000
27 0.14637793 0.12095108 0.03643287 0.006347507 0.0006109141 0.000000000
28 0.15843762 0.18473223 0.01878552 0.003626368 0.0003220595 0.001707634
29 0.34587163 0.13170543 0.07240125 0.016630611 0.0039151070 0.001615938
30 0.43984134 0.26425236 0.09157217 0.041814889 0.0048374497 0.002532769
31 0.39985130 0.20520164 0.17904869 0.048653754 0.0075308433 0.005837737
32 0.42998168 0.22065989 0.14822623 0.052103484 0.0100435459 0.008253477
33 0.37256507 0.18751146 0.24707725 0.079773691 0.0136910561 0.006385123
34 0.18535044 0.29166083 0.31321962 0.143232147 0.0254480414 0.013350811
35 0.26697989 0.26055180 0.24164349 0.137434228 0.0394196264 0.018933568
36 0.40393972 0.15071983 0.24039367 0.115345739 0.0636961020 0.021536478
37 0.15591390 0.08900722 0.26527645 0.364231080 0.0646141662 0.049159412
38 0.00000000 0.21624423 0.32772586 0.263571274 0.1017975199 0.073796379
39 0.00000000 0.14834305 0.23635705 0.325307913 0.1531386606 0.116330697
40 0.00000000 0.00000000 0.49026457 0.250716358 0.1007458594 0.125028214
41 0.00000000 0.00000000 0.00000000 0.433869623 0.2737372594 0.222074675
12           13           14           15
7  0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
8  0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
9  0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
10 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
11 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
12 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
13 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
14 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
15 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
16 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
17 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
18 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
19 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
20 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
21 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
22 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
23 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
24 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
25 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
26 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
27 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
28 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00
29 2.035454e-05 0.0002214859 8.705414e-05 0.000000e+00
30 6.208951e-05 0.0000000000 0.000000e+00 0.000000e+00
31 6.948634e-05 0.0004770979 0.000000e+00 0.000000e+00
32 1.673187e-04 0.0009096322 0.000000e+00 0.000000e+00
33 2.448375e-04 0.0007312945 1.304978e-04 0.000000e+00
34 2.760759e-04 0.0005178517 1.868343e-04 0.000000e+00
35 5.886320e-04 0.0007627247 0.000000e+00 0.000000e+00
36 9.247649e-04 0.0018808011 1.562898e-03 0.000000e+00
37 2.030698e-03 0.0082508082 1.504058e-03 1.220935e-05
38 1.633753e-03 0.0117091509 3.512600e-03 9.237708e-06
39 5.598296e-03 0.0111003244 3.824008e-03 0.000000e+00
40 4.924730e-03 0.0240528818 4.254083e-03 1.329952e-05
41 1.487509e-02 0.0511978060 4.106927e-03 1.386193e-04

Method: Hoenig et al.
Value
ConvergenceThreshold 1
Iterations           119
Converged            TRUE
```

ALKr documentation built on May 30, 2017, 7:42 a.m.