The suggested citation for this analytic appendix is:
Dalgarno, S. & Thorley, J.L. (2023) Quesnel Exploitation Analysis 2022. A Poisson Consulting Analytic Appendix. URL: https://www.poissonconsulting.ca/f/1230088647.
Quesnel Lake supports a recreational fishery for Rainbow Trout. To provide information on the natural and fishing mortality, Rainbow Trout were caught by angling and tagged with acoustic transmitters and/or a $100 and $10 reward tag.
The objectives of this analysis are to:
The outing, receiver deployment, detection, fish capture and recapture information were provided by the Ministry of Forests, Lands and Natural Resource Operations and added to a SQLite database.
The data were prepared for analysis using R version 4.3.0 (R Core Team 2022).
Receivers were assumed to have a detection range of 500 m. Detections were aggregated daily, where for each transmitter the receiver with the most number of detections was chosen. In the case of a tie, the receiver with the greatest coverage area was chosen. Only individuals with a fork length (FL) \(\geq\) 450 mm, an acoustic tag life \(\geq\) 365 days (if acoustically tagged) and a $100 and $10 reward tags were included in the survival analysis.
Model parameters were estimated using Bayesian methods. The estimates were produced using JAGS (Plummer 2003). For additional information on Bayesian estimation the reader is referred to McElreath (2020).
Unless stated otherwise, the Bayesian analyses used weakly informative normal and half-normal prior distributions (Gelman, Simpson, and Betancourt 2017). The posterior distributions were estimated from 1500 Markov Chain Monte Carlo (MCMC) samples thinned from the second halves of 3 chains (Kery and Schaub 2011, 38–40). Model convergence was confirmed by ensuring that the potential scale reduction factor \(\hat{R} \leq 1.05\) (Kery and Schaub 2011, 40) and the effective sample size (Brooks et al. 2011) \(\textrm{ESS} \geq 150\) for each of the monitored parameters (Kery and Schaub 2011, 61).
The parameters are summarised in terms of the point estimate, lower and upper 95% credible limits (CLs) and the surprisal s-value (Greenland 2019). The estimate is the median (50th percentile) of the MCMC samples while the 95% CLs are the 2.5th and 97.5th percentiles. The s-value indicates how surprising it would be to discover that the true value of the parameter is in the opposite direction to the estimate (Greenland 2019). An s-value of \(>\) 4.3 bits, which is equivalent to a significant p-value \(<\) 0.05 (Kery and Schaub 2011; Greenland and Poole 2013), indicates that the surprise would be equivalent to throwing at least 4.3 heads in a row.
The condition that parameters describing the effects of secondary (nuisance) explanatory variable(s) have significant p-values was used as a model selection heuristic (Kery and Schaub 2011). Based on a similar argument, the condition that random effects have a standard deviation with a lower 95% CL \(>\) 5% of the estimate was used as an additional model selection heuristic. Primary explanatory variables are evaluated based on their estimated effect sizes with 95% CLs (Bradford, Korman, and Higgins 2005)
Where possible, model adequacy was assessed via posterior predictive checks (Kery and Schaub 2011). More specifically, the number of zeros and the first four central moments (mean, variance, skewness and kurtosis) for the deviance residuals were compared to the expected values by simulating new residuals. In this context the s-value indicates how surprising each observed metric is given the estimated posterior probability distribution for the residual variation.
The results are displayed graphically by plotting the modeled relationships between particular variables and the response(s) with the remaining variables held constant. In general, continuous and discrete fixed variables are held constant at their mean and first level values, respectively, while random variables are held constant at their typical values (expected values of the underlying hyperdistributions) (Kery and Schaub 2011, 77–82).
The analyses were implemented using R version 4.3.0
(R Core Team 2022) and the
mbr family of packages.
The expected weight of fish of a given length were estimated from the data using a mass-length model (He et al. 2008).
More specifically the model was based on the allometric relationship
\[ W = \alpha L^{\beta}\]
where \(W\) is the weight (mass), \(\alpha\) is the coefficent, \(\beta\) is the exponent and \(L\) is the length.
To improve chain mixing the relation was log-transformed, i.e.,
\[ \log(W) = \log(\alpha) + \beta \cdot \log(L)\] Length and weights of fish were taken from two sources: captures from broodstock collection in the Horsefly River (2015-2022) and in-lake captures from tagging outings (2013-2022).
Key assumptions of the condition model include:
Annual growth of fish were estimated from inter-annual recaptures (in-lake and broodstock) and aged broodstock captures using the Fabens method (Fabens 1965) for estimating the von Bertalanffy growth curve (von Bertalanffy 1938). This curve is based on the premise that:
\[ \frac{\text{d}L}{\text{d}t} = k (L_{\infty} - L)\]
where \(L\) is the length of the individual, \(k\) is the growth coefficient and \(L_{\infty}\) is the maximum length.
Integrating the above equation gives:
\[ L_t = L_{\infty} (1 - e^{-k(t - t_0)})\]
where \(L_t\) is the length at time \(t\) and \(t_0\) is the time at which the individual would have had zero length.
The Fabens form allows
\[ L_r = L_c + (L_{\infty} - L_c) (1 - e^{-kT})\]
where \(L_r\) is the length at recapture, \(L_c\) is the length at capture and \(T\) is the time between capture and recapture.
For aged fish, length at capture is the length at Age-0 \(L_0\), estimated
with the modified form:
\[L_r = L_{0} - (L_{\infty} - L_0) (1 - e^{-kA})\] where \(A\) is the age.
Key assumptions of the growth model include:
A growth year spans April 01 to March 31 the following year.
Preliminary analyses indicated lack of support for variation in \(k\) by Horsefly River sockeye run size with a one or two year lag.
The natural mortality and recapture probability were estimated using a Bayesian individual state-space survival model (Thorley and Andrusak 2017) with three month intervals. The survival model incorporated natural and handling mortality, acoustic detections, inter-section movement, T-bar tag loss, spawning, recapture, reporting, fork length at spawning and sockeye run size in the previous year.
T-bar tag loss was estimated from the number of tags reported from recaught double-tagged individuals (Fabrizio et al. 1999). The model assumes that tag loss is not a time-dependent process and occurs following initial release.
Fork length at spawning was calculated from the measured length at capture (\(L_{i,fi}\)) plus the length increment expected under a Von Bertalanffy Growth Curve (Walters & Martell, 2004)
\[L_{i,t} = L_{i,fi} + (L_{∞} − L_{i,fi} )(1 − e^{(−0.25 \cdot k(t −fi))})\]
where the 0.25 in the exponent adjusts for the fact that there are four time periods per year. Values for \(L_\infty\) and annual \(k\) and were estimated in the growth model.
The probability of spawning at estimated length \(L\) is determined by
\[S = \frac{L^{S_p}}{L_s^{S_p} + L^{S_p}} \cdot es\]
where \(L_s\) is the length at which 50% of fish are mature, \(es\) is the probability of a mature fish spawning and \(S_p\) is the maturity (as a function of length) power.
Key assumptions of the spawning probability sub-model include:
A fish was considered to have spawned in a given year if one of the following conditions were met: detected within a spawning river during the spawning period with a detection hiatus (no detections in lake) of at least 7 days; or detected within a spawning gate during the spawning period with a detection hiatus of at least 14 days. Cutoff values for minimum hiatus periods were determined by inspecting the distribution of in-lake hiatus periods for fish detected in spawning rivers and the distribution of all hiatus periods for suspected spawners within the spawning period.
In addition to assumptions 1 to 2 and 4 to 10, in Thorley and Andrusak (2017), the model also assumes that:
Seasons are defined as winter (January to March), spring (April to June), summer (July to September), and fall (October to December).
Size classes are defined as small (\(\le\) 600 mm), medium (601 \(-\) 700 mm) and large (\(>\) 700 mm).
Sockeye abundance is the Horsefly River run size with a two year lag (i.e., spawning in the spring of 2016 is associated with autumn 2014 sockeye abundance).
Preliminary analyses indicated lack of support for variation in mortality by year, sockeye year (October 01 to September 30 the following year) and size class within year.
The in-lake and spawner abundance for individuals \(\ge\) 500 mm were estimated using hierarchical Bayesian mark-recapture sub-models within the survival model, where the number of alive marked individuals in the lake at each time period was estimated from the ‘Alive’ latent state in the previous period. The number of spawning marked individuals was estimated from the spawning probability and the number of alive marked individuals in the previous period.
The ‘in-lake’ mark-recapture model estimated abundance from in-lake captures and recaptures from researcher tagging outings.
The ‘spawner’ mark-recapture model estimated spawner abundance from spawner captures and recaptures from broodstock collection in the Horsefly River.
An additional in-lake abundance \(A_L\) estimate was derived from estimated spawner abundance \(A_S\) and spawning probability \(P_S\) given the following: \[A_L = \frac{A_S}{P_S} \]
Key assumptions of the mark-recapture models include:
Additional assumptions for the lake model include:
The optimal yield (defined as the harvested number of fish as percent of the number of recruits at carrying capacity) was calculated using a yield-per-recruit approach (Bison, O’Brien, and Martell 2003).
Scenarios explored include:
Llo) of 40, 50, 60, 70, 80 and 90, with other
YPR parameter values held constant.Rk (lifetime spawners per spawner at low density) values of 5,
7.5, and 10 and Ls (length at 50% mature) values of 55, 60, and
65, with Llo held at 60.Rk values of 5, 7.5, and 10 and Ls values of 55, 60, and 65,
with Llo held at 50.Key assumptions include:
Llo are retained.Llo are released..model{
bWeight ~ dnorm(3, 2^-2)
bWeightLength ~ dnorm(3, 1^-2)
bWeightDayte ~ dnorm(0, 1^-2);
bWeightLengthDayte ~ dnorm(0, 1^-2)
sWeightAnnual ~ dexp(1)
for(i in 1:nAnnual) {
bWeightAnnual[i] ~ dnorm(0, sWeightAnnual^-2)
}
sWeightSourceAnnual ~ dexp(1)
for(i in 1:nSource){
for(j in 1:nAnnual){
bWeightSourceAnnual[i,j] ~ dnorm(0, sWeightSourceAnnual^-2)
}
}
sWeight ~ dexp(1)
for(i in 1:nObs) {
log(eWeight[i]) <- bWeight + bWeightDayte * Dayte[i] + bWeightAnnual[Annual[i]] + bWeightSourceAnnual[Source[i], Annual[i]] + (bWeightLength + bWeightLengthDayte * Dayte[i]) * (log(Length[i]) - log(100))
Weight[i] ~ dlnorm(log(eWeight[i]), sWeight^-2)
}
Block 1. Model description.
.model {
bK ~ dnorm(0, 2^-2)
bL0 ~ dnorm(0, 100^-2)
sKYear ~ dexp(1)
theta <- 0.5
bLinf ~ dnorm(900, 100^-2) T(0,)
sGrowth ~ dexp(1)
sLength ~ dexp(1)
for (i in 1:nYear) {
bKYear[i] ~ dnorm(0, sKYear^-2)
log(eK[i]) <- bK + bKYear[i]
}
for(i in 1:nAged){
eLength[i] <- bLinf - (bLinf - bL0) * exp(-exp(bK) * Age[i])
Length[i] ~ dnorm(eLength[i], sLength^-2)
}
for(i in 1:nFish){
eL0[i] <- max(bL0, LengthAtRelease[i])
for(j in 1:nYear){
ekProp[i,j] <- eK[j] * pYear[i,j]
}
eSumEk[i] <- exp(-sum(ekProp[i,]))
eGrowth[i] <- max(0, (bLinf - eL0[i]) * (1 -eSumEk[i]))
Growth[i] ~ dt(eGrowth[i], sGrowth^-2, 1/theta)
}
Block 2.
model {
bTagLoss ~ dbeta(1, 1)
for (i in 1:nObs) {
TagsRecap[i] ~ dbin(1 - bTagLoss, 2) T(1,)
}
Block 3. Model description.
.model{
bMortality ~ dnorm(-3, 3^-2)
bMortalitySpawning ~ dnorm(0, 2^-2)
bLs ~ dnorm(6, 2^-2)
bSp ~ dexp(1/20)
bEs ~ dnorm(0, 2^-2)
bDetectedAlive ~ dbeta(1, 1)
bDieNear ~ dbeta(1, 1)
bDetectedDeadNear ~ dbeta(10, 1)
bDetectedDeadFar ~ dbeta(1, 10)
bMoved ~ dbeta(1, 1)
bRecaptured ~ dnorm(0, 2^-2)
bReported ~ dbeta(10, 1)
bReleased ~ dbeta(1, 1)
bReleasedResearcher ~ dbeta(1, 1)
bRecapturedResearcher ~ dbeta(5, 1)
bTagLoss <- 0.0545
bTagLossT <- 0.0001
bEfficiency ~ dnorm(-4, 2^-2)
bAbundance ~ dnorm(7, 2^-2)
bOutingHours ~ dnorm(0, 2^-2)
bEfficiencySpawn ~ dnorm(-4, 2^-2)
bAbundanceSpawn ~ dnorm(1000, 500^-2)
bMortalitySeason[1] <- 0
for (i in 2:nSeason) {
bMortalitySeason[i] ~ dnorm(0, 2^-2)
}
for (i in 1:nSizeClass) {
bMortalitySockeye[i] ~ dnorm(0, 2^-2)
}
sRecapturedAnnual ~ dexp(1)
for (i in 1:nAnnual) {
bRecapturedAnnual[i] ~ dnorm(0, sRecapturedAnnual^-2)
}
bRecapturedSeason[1] <- 0
for (i in 2:nSeason) {
bRecapturedSeason[i] ~ dnorm(0, 2^-2)
}
sLsAnnual ~ dexp(1)
for (i in 1:nAnnual) {
bLsAnnual[i] ~ dnorm(0, sLsAnnual^-2)
}
sEsAnnual ~ dexp(1)
for (i in 1:nAnnual) {
bEsAnnual[i] ~ dnorm(0, sEsAnnual^-2)
}
for (i in 1:nCapture){
eDetectedAlive[i] <- bDetectedAlive
eDieNear[i] ~ dbern(bDieNear)
eDetectedDeadNear[i] <- bDetectedDeadNear
eDetectedDeadFar[i] <- bDetectedDeadFar
eDetectedDead[i] <- eDieNear[i] * eDetectedDeadNear[i] + (1 - eDieNear[i]) * eDetectedDeadFar[i]
logit(eMortality[i,PeriodCapture[i]]) <- bMortality + bMortalitySeason[Season[PeriodCapture[i]]] + bMortalitySockeye[SizeClass[i,PeriodCapture[i]]] * SockeyePrevious[PeriodCapture[i]]
logit(eRecaptured[i,PeriodCapture[i]]) <- bRecaptured + bRecapturedSeason[Season[PeriodCapture[i]]] + bRecapturedAnnual[Annual[PeriodCapture[i]]]
eMoved[i,PeriodCapture[i]] <- bMoved
eReported[i,PeriodCapture[i]] <- bReported
eReleased[i,PeriodCapture[i]] <- bReleased
eReleasedResearcher[i,PeriodCapture[i]] <- bReleasedResearcher
eRecapturedResearcher[i,PeriodCapture[i]] <- bRecapturedResearcher
InLake[i,PeriodCapture[i]] <- 1
Alive[i,PeriodCapture[i]] ~ dbern(1-eMortality[i,PeriodCapture[i]])
Alive50[i,PeriodCapture[i]] <- Alive[i,PeriodCapture[i]] * (Length[i,PeriodCapture[i]] >= 500)
TBarTag100[i,PeriodCapture[i]] ~ dbern(1-bTagLoss)
TBarTag10[i,PeriodCapture[i]] ~ dbern(1-bTagLoss)
eDetected[i,PeriodCapture[i]] <- Alive[i,PeriodCapture[i]] * eDetectedAlive[i] + (1-Alive[i,PeriodCapture[i]]) * eDetectedDead[i]
Detected[i,PeriodCapture[i]] ~ dbern(Monitored[i,PeriodCapture[i]] * eDetected[i,PeriodCapture[i]])
Moved[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * Detected[i,PeriodCapture[i]] * eMoved[i,PeriodCapture[i]])
RecapturedResearcher[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * eRecapturedResearcher[i,PeriodCapture[i]])
Recaptured[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * eRecaptured[i,PeriodCapture[i]])
Reported[i,PeriodCapture[i]] ~ dbern(Recaptured[i,PeriodCapture[i]] * eReported[i,PeriodCapture[i]] * step(TBarTag100[i,PeriodCapture[i]] + TBarTag10[i,PeriodCapture[i]] - 1))
Released[i,PeriodCapture[i]] ~ dbern(Recaptured[i,PeriodCapture[i]] * eReleased[i,PeriodCapture[i]])
ReleasedResearcher[i,PeriodCapture[i]] ~ dbern(RecapturedResearcher[i,PeriodCapture[i]] * eReleasedResearcher[i,PeriodCapture[i]])
for(j in (PeriodCapture[i]+1):nPeriod) {
log(eLs[i,j]) <- bLs + bLsAnnual[Annual[j]]
logit(eEs[i,j]) <- bEs + bEsAnnual[Annual[j]]
eSpawning[i,j] <- (((Length[i,j]^bSp) / (eLs[i,j]^bSp + Length[i,j]^bSp)) * eEs[i,j])
Spawned[i,j] ~ dbern(Alive[i,j-1] * Monitored[i,j] * SpawningPeriod[j] * eSpawning[i,j])
logit(eMortality[i,j]) <- bMortality + bMortalitySpawning * Spawned[i,j-1] + bMortalitySeason[Season[j]] + bMortalitySockeye[SizeClass[i,j]] * SockeyePrevious[j]
logit(eRecaptured[i,j]) <- bRecaptured + bRecapturedSeason[Season[j]] + bRecapturedAnnual[Annual[j]]
eMoved[i,j] <- bMoved
eRecapturedResearcher[i,j] <- bRecapturedResearcher
eReported[i,j] <- bReported
eReleased[i,j] <- bReleased
eReleasedResearcher[i,j] <- bReleasedResearcher
InLake[i,j] ~ dbern(InLake[i,j-1] * ((1 - (Recaptured[i,j-1])) + Recaptured[i,j-1] * Released[i,j-1]) * ((1 - (RecapturedResearcher[i,j-1])) + RecapturedResearcher[i,j-1] * ReleasedResearcher[i,j-1]))
Alive[i,j] ~ dbern(InLake[i,j] * Alive[i,j-1] * (1-eMortality[i,j]))
Alive50[i,j] <- Alive[i,j] * (Length[i,j] >= 500)
TBarTag100[i,j] ~ dbern(TBarTag100[i,j-1] * (1-Recaptured[i,j-1]) * (1-bTagLossT))
TBarTag10[i,j] ~ dbern(TBarTag10[i,j-1] * (1-Recaptured[i,j-1]) * (1-bTagLossT))
eDetected[i,j] <- Alive[i,j] * eDetectedAlive[i] + (1-Alive[i,j]) * eDetectedDead[i]
Detected[i,j] ~ dbern(InLake[i,j] * Monitored[i,j] * eDetected[i,j])
Moved[i,j] ~ dbern(Alive[i,j] * Detected[i,j] * eMoved[i,j])
RecapturedResearcher[i,j] ~ dbern(Alive[i,j] * eRecapturedResearcher[i,j] * step(TBarTag100[i,j] + TBarTag10[i,j] - 1))
Recaptured[i,j] ~ dbern(Alive[i,j] * eRecaptured[i,j])
Reported[i,j] ~ dbern(Recaptured[i,j] * eReported[i,j] * step(TBarTag100[i,j] + TBarTag10[i,j] - 1))
Released[i,j] ~ dbern(Recaptured[i,j] * eReleased[i,j])
ReleasedResearcher[i,j] ~ dbern(RecapturedResearcher[i,j] * eReleasedResearcher[i,j])
}
}
Marked[1] <- sum(Alive50[1:PeriodCaptures[1],1])
MarkedSpawners[1] <- 1
for(p in 2:nPeriod){
Marked[p] <- sum(Alive50[1:PeriodCaptures[p],p])
logit(eSpawningPeriod[p]) <- bEs + bEsAnnual[Annual[p]]
MarkedSpawners[p] ~ dpois(Marked[p-1] * eSpawningPeriod[p])
}
sAbundanceAnnual ~ dexp(1)
for (i in 1:nAnnualOuting) {
bAbundanceAnnual[i] ~ dnorm(0, sAbundanceAnnual^-2)
}
eAbundanceSpawn ~ dpois(bAbundanceSpawn)
for(l in 1:nPeriodCount){
logit(eEfficiencySpawn[l]) <- bEfficiencySpawn
RecaptureSpawners[l] ~ dbin(eEfficiencySpawn[l], MarkedSpawners[PeriodCount[l]])
CaptureSpawners[l] ~ dbin(eEfficiencySpawn[l], eAbundanceSpawn)
}
for(k in 1:nPeriodOuting){
log(eAbundance[k]) <- bAbundance + bAbundanceAnnual[AnnualOuting[k]]
eAbundanceInt[k] ~ dpois(eAbundance[k])
logit(eEfficiency[k]) <- bEfficiency + bOutingHours * OutingHours[PeriodOuting[k]]
Recaptures[k] ~ dbin(eEfficiency[k], Marked[PeriodOuting[k]-1])
Captures[k] ~ dbin(eEfficiency[k], eAbundanceInt[k])
}
Block 4. Survival model description.
The suggested citation for this analytic appendix is:
Dalgarno, S. & Thorley, J.L. (2022) Quesnel Exploitation Analysis 2021. A Poisson Consulting Analytic Appendix. URL: https://www.poissonconsulting.ca/f/978976227.
Quesnel Lake supports a recreational fishery for Rainbow Trout. To provide information on the natural and fishing mortality, Rainbow Trout were caught by angling and tagged with acoustic transmitters and/or a $100 and $10 reward tag.
The outing, receiver deployment, detection, fish capture and recapture information were provided by the Ministry of Forests, Lands and Natural Resource Operations and added to a SQLite database.
The data were prepared for analysis using R version 4.2.1 (R Core Team 2021).
Receivers were assumed to have a detection range of 500 m. Detections were aggregated daily, where for each transmitter the receiver with the most number of detections was chosen. In the case of a tie, the receiver with the greatest coverage area was chosen. Only individuals with a fork length (FL) \(\geq\) 450 mm, an acoustic tag life \(\geq\) 365 days (if acoustically tagged) and a $100 and $10 reward tags were included in the survival analysis.
Model parameters were estimated using Bayesian methods. The estimates were produced using JAGS (Plummer 2003) and STAN (Carpenter et al. 2017). For additional information on Bayesian estimation the reader is referred to McElreath (2016).
Unless stated otherwise, the Bayesian analyses used weakly informative normal and half-normal or uninformative beta prior distributions (Gelman, Simpson, and Betancourt 2017). The posterior distributions were estimated from 1500 Markov Chain Monte Carlo (MCMC) samples thinned from the second halves of 3 chains (Kery and Schaub 2011, 38–40). Model convergence was confirmed by ensuring that the potential scale reduction factor \(\hat{R} \leq 1.05\) (Kery and Schaub 2011, 40) and the effective sample size (Brooks et al. 2011) \(\textrm{ESS} \geq 150\) for each of the monitored parameters (Kery and Schaub 2011, 61).
The parameters are summarised in terms of the point estimate, lower and upper 95% credible limits (CLs) and the surprisal s-value (Greenland 2019). The estimate is the median (50th percentile) of the MCMC samples while the 95% CLs are the 2.5th and 97.5th percentiles. The s-value can be considered a test of directionality. More specifically it indicates how surprising (in bits) it would be to discover that the true value of the parameter is in the opposite direction to the estimate. An s-value of 4.3 bits, which is equivalent to a p-value (Kery and Schaub 2011; Greenland and Poole 2013) of 0.05, indicates that the surprise would be equivalent to throwing 4.3 heads in a row. The condition that non-essential explanatory variables have s-values \(\geq\) 4.3 bits provides a useful model selection heuristic (Kery and Schaub 2011).
The results are displayed graphically by plotting the modeled relationships between particular variables and the response(s) with the remaining variables held constant. In general, continuous and discrete fixed variables are held constant at their mean and first level values, respectively, while random variables are held constant at their typical values (expected values of the underlying hyperdistributions) (Kery and Schaub 2011, 77–82). When informative the influence of particular variables is expressed in terms of the effect size (i.e., percent or n-fold change in the response variable) with 95% credible intervals (CIs, Bradford, Korman, and Higgins 2005).
The analyses were implemented using R version 4.2.1
(R Core Team 2020) and the
mbr family of packages.
The expected weight of fish of a given length were estimated from the data using a mass-length model (He et al. 2008).
More specifically the model was based on the allometric relationship
\[ W = \alpha L^{\beta}\]
where \(W\) is the weight (mass), \(\alpha\) is the coefficent, \(\beta\) is the exponent and \(L\) is the length.
To improve chain mixing the relation was log-transformed, i.e.,
\[ \log(W) = \log(\alpha) + \beta \cdot \log(L)\]
Key assumptions of the condition model include:
The expected length of fish at a given age were estimated from broodstock data collected in the Horsefly River from 2015-2021 using a Von Bertalanffy growth curve model (von Bertalanffy 1938).
\[ L = L_\infty \cdot (1 - \exp(-k \cdot (A - t_0) ))\]
where \(A\) is the scale age in years and \(t_0\) is the extrapolated age at zero length.
Key assumptions of the growth model include:
The natural mortality and recapture probability were estimated using a Bayesian individual state-space survival model (Thorley and Andrusak 2017) with three month intervals. The survival model incorporated natural and handling mortality, acoustic detections, inter-section movement, T-bar tag loss, spawning, recapture and reporting.
T-bar tag loss was estimated from the number of tags reported from recaught double-tagged individuals (Fabrizio et al. 1999).
Fork length at spawning was calculated from the measured length at
capture (\(L_{i,fi}\)) plus the length increment expected under a Von
Bertalanffy Growth Curve (Walters & Martell, 2004)
\[L_{i,t} = L_{i,fi} + (L_{∞} − L_{i,fi} )(1 − e^{(−0.25 \cdot k(t −fi))})\]
where the 0.25 in the exponent adjusts for the fact that there are four
time periods per year. Parameters k and LInf were estimated from the
growth model.
A fish was considered to have spawned in a given year if one of the following conditions were met: detected within a spawning river during the spawning period with a detection hiatus of at least 7 days; or detected within a spawning gate during the spawning period with a detection hiatus of at least 14 days. Cutoff values for minimum hiatus periods were determined by inspecting the distribution of in-lake hiatus periods for fish detected in spawning rivers and the distribution of all hiatus periods for suspected spawners within the spawning period.
In addition to assumptions 1 to 2 and 4 to 10, in Thorley and Andrusak (2017), the model also assumes that:
The optimal recapture rate (to maximize number of individuals caught) was calculated using a yield-per-recruit approach (Bison, O’Brien, and Martell 2003). Key assumptions include:
The optimal yield was also calculated with no slot limit.
.model {
bLInf ~ dnorm(900, 200^-2) T(0, )
bK ~ dnorm(0.2, 1^-2) T(0, )
bT0 ~ dnorm(0, 2^-1)
sLength ~ dnorm(0, 100^-2) T(0, )
for (i in 1:length(Length)) {
eLength[i] <- bLInf * (1 - exp(-bK * (Age[i] - bT0)))
Length[i] ~ dnorm(eLength[i], sLength^-2) T(0, )
}
Block 1. Growth model description.
data {
int nannual;
int nObs;
vector[nObs] length;
vector[nObs] weight;
int annual[nObs];
}
parameters {
real bWeight;
real bLength;
real<lower=0> sWeightAnnual;
vector[nannual] bWeightAnnual;
real<lower=0> sWeight;
}
model {
vector[nObs] eWeight;
bWeight ~ normal(-11, 2);
bLength ~ normal(3, 1);
sWeightAnnual ~ normal(0, 1);
for (i in 1:nannual) {
bWeightAnnual[i] ~ normal(0, sWeightAnnual);
}
sWeight ~ normal(0, 1);
for(i in 1:nObs) {
eWeight[i] = exp(bWeight + bLength * log(length[i]) + bWeightAnnual[annual[i]]);
weight[i] ~ lognormal(log(eWeight[i]), sWeight);
}
}
Block 2. Condition model description.
.model{
bMortality ~ dnorm(-3, 3^-2)
bMortalitySpawning ~ dnorm(0, 2^-2)
bSpawning ~ dnorm(0, 2^-2)
bSpawningLength ~ dnorm(0, 2^-2)
bTagLoss ~ dbeta(101, 1001)
bDetectedAlive ~ dbeta(1, 1)
bDieNear ~ dbeta(1, 1)
bDetectedDeadNear ~ dbeta(10, 1)
bDetectedDeadFar ~ dbeta(1, 10)
bMoved ~ dbeta(1, 1)
bRecaptured ~ dbeta(1, 1)
bReported ~ dbeta(10, 1)
sSpawningAnnual ~ dexp(1)
for (i in 1:nAnnual) {
bSpawningAnnual[i] ~ dnorm(0, sSpawningAnnual^-2)
}
bMortalitySeason[1] <- 0
for (i in 2:nSeason) {
bMortalitySeason[i] ~ dnorm(0, 2^-2)
}
sMortalityAnnual ~ dexp(1)
for (i in 1:nAnnual) {
bMortalityAnnual[i] ~ dnorm(0, sMortalityAnnual^-2)
}
for (i in 1:nCapture){
eDetectedAlive[i] <- bDetectedAlive
eDieNear[i] ~ dbern(bDieNear)
eDetectedDeadNear[i] <- bDetectedDeadNear
eDetectedDeadFar[i] <- bDetectedDeadFar
eDetectedDead[i] <- eDieNear[i] * eDetectedDeadNear[i] + (1 - eDieNear[i]) * eDetectedDeadFar[i]
logit(eMortality[i,PeriodCapture[i]]) <- bMortality + bMortalitySeason[Season[i,PeriodCapture[i]]] + bMortalityAnnual[Annual[i,PeriodCapture[i]]]
eTagLoss[i,PeriodCapture[i]] <- bTagLoss
eMoved[i,PeriodCapture[i]] <- bMoved
eRecaptured[i,PeriodCapture[i]] <- bRecaptured
eReported[i,PeriodCapture[i]] <- bReported
InLake[i,PeriodCapture[i]] <- 1
Alive[i,PeriodCapture[i]] ~ dbern(1-eMortality[i,PeriodCapture[i]])
TBarTag100[i,PeriodCapture[i]] ~ dbern(1-eTagLoss[i,PeriodCapture[i]])
TBarTag10[i,PeriodCapture[i]] ~ dbern(1-eTagLoss[i,PeriodCapture[i]])
eDetected[i,PeriodCapture[i]] <- Alive[i,PeriodCapture[i]] * eDetectedAlive[i] + (1-Alive[i,PeriodCapture[i]]) * eDetectedDead[i]
Detected[i,PeriodCapture[i]] ~ dbern(Monitored[i,PeriodCapture[i]] * eDetected[i,PeriodCapture[i]])
Moved[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * Detected[i,PeriodCapture[i]] * eMoved[i,PeriodCapture[i]])
Recaptured[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * eRecaptured[i,PeriodCapture[i]])
Reported[i,PeriodCapture[i]] ~ dbern(Recaptured[i,PeriodCapture[i]] * eReported[i,PeriodCapture[i]] * step(TBarTag100[i,PeriodCapture[i]] + TBarTag10[i,PeriodCapture[i]] - 1))
for(j in (PeriodCapture[i]+1):nPeriod) {
logit(eSpawning[i,j]) <- bSpawning + bSpawningLength * Length[i,j] + bSpawningAnnual[Annual[i,j]]
Spawned[i,j] ~ dbern(Alive[i,j-1] * Monitored[i,j] * SpawningPeriod[i,j] * eSpawning[i,j])
logit(eMortality[i,j]) <- bMortality + bMortalitySpawning * Spawned[i,j] + bMortalitySeason[Season[i,j]] + bMortalityAnnual[Annual[i,j]]
eDetected[i,j] <- Alive[i,j] * eDetectedAlive[i] + (1-Alive[i,j]) * eDetectedDead[i]
eTagLoss[i,j] <- bTagLoss
eMoved[i,j] <- bMoved
eRecaptured[i,j] <- bRecaptured
eReported[i,j] <- bReported
InLake[i,j] ~ dbern(InLake[i,j-1] * (1 - Recaptured[i,j-1]))
Alive[i,j] ~ dbern(Alive[i,j-1] * (1 - Recaptured[i,j-1]) * (1-eMortality[i,j]))
TBarTag100[i,j] ~ dbern(TBarTag100[i,j-1] * (1-Recaptured[i,j-1]) * (1-eTagLoss[i,j]))
TBarTag10[i,j] ~ dbern(TBarTag10[i,j-1] * (1-Recaptured[i,j-1]) * (1-eTagLoss[i,j]))
Detected[i,j] ~ dbern(InLake[i,j] * Monitored[i,j] * eDetected[i,j])
Moved[i,j] ~ dbern(Alive[i,j] * Detected[i,j] * eMoved[i,j])
Recaptured[i,j] ~ dbern(Alive[i,j] * eRecaptured[i,j])
Reported[i,j] ~ dbern(Recaptured[i,j] * eReported[i,j] * step(TBarTag100[i,j] + TBarTag10[i,j] - 1))
}
}
Block 3. Survival model description.
The suggested citation for this analytic appendix is:
Thorley, J.L. & Pearson, A.D. (2022) Horse Lake Exploitation Analysis 2021. A Poisson Consulting Analytic Appendix. URL: https://www.poissonconsulting.ca/f/556371688.
Horse Lake supports a recreational fishery for Lake Trout (Salvelinus namaycush). To estimate their natural and fishing mortality, individuals were caught by angling and tagged with acoustic transmitters and/or external reward tags. Acoustically tagged fish were detected by a series of seven receivers distributed through the lake as well as annual or biannual mobile detection surveys. The mobile detection survey was conducted by deploying receivers for approximately 10 minutes at 90 locations arranged on a 400 m x 400 m grid. The external reward tags included a phone number for anglers to report their recaptures. In 2009 and 2021, a summer profundal index netting (SPIN) survey was done on the lake.
All the data were provided by the Ministry of Forests, Lands and Natural Resource Operations (MFLNRO) Cariboo Region.
The data were prepared for analysis using R version 4.2.0 (R Core Team 2021). Detections were aggregated daily, where for each transmitter the receiver with the most detections was chosen.
The Seasons were Winter (December - February), Spring (March - May), Summer (June - August) and Autumn (September - November).
For each mobile survey each detected fish was assigned a location corresponding to the centroid of its detection locations weighted by the detection rates. The mobile receiver deployment times were corrected by increasing or decreasing the deployment times for each receiver on each day by up to three minutes to maximize the number of detections within deployments. Mobile surveys conducted within 3 months of each other were combined into a single survey.
Model parameters were estimated using Bayesian methods. The estimates were produced using JAGS (Plummer 2003) and STAN (Carpenter et al. 2017). For additional information on Bayesian estimation the reader is referred to McElreath (2016).
Unless stated otherwise, the Bayesian analyses used weakly informative normal and half-normal prior distributions (Gelman, Simpson, and Betancourt 2017). The posterior distributions were estimated from 1500 Markov Chain Monte Carlo (MCMC) samples thinned from the second halves of 3 chains (Kery and Schaub 2011, 38–40). Model convergence was confirmed by ensuring that the potential scale reduction factor \(\hat{R} \leq 1.05\) (Kery and Schaub 2011, 40) and the effective sample size (Brooks et al. 2011) \(\textrm{ESS} \geq 150\) for each of the monitored parameters (Kery and Schaub 2011, 61).
The parameters are summarised in terms of the point estimate, lower and upper 95% credible limits (CLs) and the surprisal s-value (Greenland 2019). The estimate is the median (50th percentile) of the MCMC samples while the 95% CLs are the 2.5th and 97.5th percentiles. The s-value can be considered a test of directionality. More specifically it indicates how surprising (in bits) it would be to discover that the true value of the parameter is in the opposite direction to the estimate. An s-value (Chow and Greenland 2019) is the Shannon transform (-log to base 2) of the corresponding p-value (Kery and Schaub 2011; Greenland and Poole 2013). A surprisal value of 4.3 bits, which is equivalent to a p-value of 0.05 indicates that the surprise would be equivalent to throwing 4.3 heads in a row. The condition that non-essential explanatory variables have s-values \(\geq\) 4.3 bits provides a useful model selection heuristic (Kery and Schaub 2011).
Model adequacy was assessed via posterior predictive checks (Kery and Schaub 2011). More specifically, the first four central moments (mean, variance, skewness and kurtosis) for the deviance residuals were compared to the expected values by simulating new residuals. In this context the s-value indicates how surprising each metric is given the estimated posterior probability distribution for the residual variation.
Where computationally practical, the sensitivity of the parameters to the choice of prior distributions was evaluated by increasing the standard deviations of all normal, half-normal and log-normal priors by an order of magnitude and then using \(\hat{R}\) to test whether the samples where drawn from the same posterior distribution (Thorley and Andrusak 2017).
The results are displayed graphically by plotting the modeled relationships between particular variables and the response(s) with the remaining variables held constant. In general, continuous and discrete fixed variables are held constant at their mean and first level values, respectively, while random variables are held constant at their typical values (expected values of the underlying hyperdistributions) (Kery and Schaub 2011, 77–82). When informative the influence of particular variables is expressed in terms of the effect size (i.e., percent or n-fold change in the response variable) with 95% credible intervals (CIs, Bradford, Korman, and Higgins 2005).
The analyses were implemented using R version 4.2.0
(R Core Team 2021) and the
mbr family of packages.
The expected weight, \(W\), of a fish of a given length, \(L\), was estimated from the data using an allometric mass-length model (He et al. 2008)
\[ W = \alpha L^\beta\]
Key assumptions of the condition model include:
Preliminary analysis indicated year as a random effect and capture method (angling vs SPIN) were not important predictors of condition.
The growth curve and length at spawning for each ecotype were estimated from the length, scale age, and spawning data using an integrated model. The model consists of a biphasic Von Bertalanffy (von Bertalanffy 1938) growth curve and length at spawning model.
The Von Bertalanffy growth curve (von Bertalanffy 1938) for the small ecotype is
\[ L = L_{\infty_{1}} \cdot (1 - \exp(-k_1 \cdot A ))\]
where \(A\) is the scale age in years.
The large ecotype transitions to the second growth phase at the transitions age (\(A_T\)), where \(L_T\) is the transition length (mm)
\[ L_T = L_{\infty_{1}} \cdot (1 - \exp(-k_1 \cdot A_T )) \]
The Von Bertalanffy growth curve (von Bertalanffy 1938) in the second growth phase the large ecotype
\[ L = L_T + (L_{\infty_{2}} - L_T) \cdot (1 - \exp(-k_2 \cdot (A - A_T)))\]
The probability of spawning at length \(L\) is determined by
\[S = \frac{L^{S_p}}{L_s^{S_p} + L^{S_p}} \cdot es\]
Key assumptions of the model include:
The sensitivity analysis indicated that the estimate of bBigEs is
sensitive to the choice of prior. Increasing the standard deviation of
the prior by an order of magnitude increased the estimate from 1.71 (95%
CI 0.06 - 4.15) to 8.97 (95% CI 0.153 - 42.0).
A fish was classified as being in the lake at the time of the survey if it was detected 1 or more times. A fish was classified as having moved if the weighted centriod had shifted more then 800 m since the previous survey.
The natural mortality and capture probability for individuals \(\geq\) 300 mm was estimated using a Bayesian individual state-space survival model (Thorley and Andrusak 2017) with three month intervals. The survival model incorporated natural mortality, fixed and mobile acoustic detection and movement, T-bar tag loss, recapture and reporting. Key assumptions of the survival model include:
The survival model treats all recaptured fish as if they had been retained. Only individuals with a fork length (FL) \(\geq\) 300 mm that were tagged with an acoustic tag and/or $100 and $10 reward tags were included in the survival analysis.
Preliminary analysis indicated that there was not a clear difference between the natural mortality and fishing mortality rates for individuals \(\geq\) 500 mm.
The optimal capture rate (to maximize number of individuals harvested assuming 100% retention) was calculated using yield-per-recruit analysis (Walters and Martell 2004). A yield-per-recruit analysis was performed for the two different Lake Trout ecotypes separately and in combination. The \(Rk\) of 25 from Myers et al. (Myers, Bowen, and Barrowman 1999) was converted into the equivalent egg to age-1 survival of 0.025 based on the large ecotype life history
.model {
bWeight ~ dnorm(-12, 2^-2)
bWeightLength ~ dnorm(3.18, 0.19^-2)
bDayte ~ dnorm(0, 2^-2)
bDayte2 ~ dnorm(0, 2^-2)
sWeight ~ dnorm(0, 1^-2) T(0,)
for(i in 1:length(LogLength)) {
eWeightLength[i] <- bWeightLength + bDayte * Dayte[i] + bDayte2 * Dayte[i]^2
eWeight[i] <- bWeight + eWeightLength[i] * LogLength[i]
Weight[i] ~ dlnorm(eWeight[i], sWeight^-2)
}
Block 1. Condition model description.
.model {
bT0 <- 0
bLInf1 ~ dnorm(6, 2^-2)
bLInf2 ~ dnorm(7, 2^-2)
bK1 ~ dnorm(0, 2^-2)
bK2 ~ dnorm(0, 2^-2)
bTransitionAge ~ dnorm(2, 1^-2)
sTransitionAgeFish ~ dnorm(0, 2^-2) T(0,)
bSmall ~ dnorm(0, 2^-2)
sLength ~ dnorm(0, 2^-2) T(0, )
Ls ~ dnorm(6, 2^-2)
Sp ~ dnorm(20, 20^-2) T(0,)
Es ~ dnorm(0, 2^-2)
bBigLs ~ dnorm(0, 2^-2)
bBigEs ~ dnorm(0, 2^-2)
for (i in 1:nFishID) {
bTransitionAgeFish[i] ~ dnorm(-sTransitionAgeFish^2/2, sTransitionAgeFish^-2)
}
for (i in 1:nObs) {
logit(eSmall[i]) <- bSmall
log(eLInf1[i]) <- bLInf1
log(eLInf2[i]) <- bLInf2
log(eK1[i]) <- bK1
log(eK2[i]) <- bK2
log(eLs[i]) <- Ls + bBigLs * (1 - SmallEcotype[i])
logit(eEs[i]) <- Es + bBigEs * (1 - SmallEcotype[i])
eSpawning[i] <- ( (Length[i] ^ Sp) / (eLs[i]^Sp + Length[i]^Sp) ) * eEs[i]
eSmallLength[i] <- eLInf1[i] * (1 - exp(-eK1[i] * (Age[i] - bT0)))
log(eTransitionAge[i]) <- bTransitionAge + bTransitionAgeFish[FishID[i]]
eTransitionLength[i] <- eLInf1[i] * (1 - exp(-eK1[i] * (eTransitionAge[i] - bT0)))
eBigLength[i] <- eSmallLength[i] * step(eTransitionAge[i] - Age[i]) + step(Age[i] - eTransitionAge[i] - 0.01) * (eTransitionLength[i] + (eLInf2[i] - eTransitionLength[i]) * (1 - exp(-eK2[i] * (Age[i] - eTransitionAge[i]))))
eLength[i] <- eSmallLength[i] * SmallEcotype[i] + eBigLength[i] * (1 - SmallEcotype[i])
Spawning[i] ~ dbin(eSpawning[i], 1)
SmallEcotype[i] ~ dbin(eSmall[i], 1)
Length[i] ~ dlnorm(log(eLength[i]), sLength^-2)
}
Block 2. Growth model description.
.model{
bMortality ~ dnorm(-3, 3^-2)
bTagLoss ~ dbeta(1, 1)
bMoved ~ dbeta(1, 1)
bMobileDetected ~ dbeta(1, 1)
bMobileMoved ~ dbeta(1, 1)
bRecaptured ~ dnorm(0, 2^-2)
bReported ~ dbeta(1, 1)
bDetectedAlive ~ dbeta(1, 1)
bDieNear ~ dbeta(1, 1)
bDetectedDeadNear ~ dbeta(10, 1)
bDetectedDeadFar ~ dbeta(1, 10)
bMortalitySeason[1] <- 0
for (i in 2:nSeason) {
bMortalitySeason[i] ~ dnorm(0, 2^-2)
}
sRecapturedAnnual ~ dnorm(0, 2^-2) T(0,)
for(i in 1:nAnnual) {
bRecapturedAnnual[i] ~ dnorm(0, sRecapturedAnnual^-2)
}
for (i in 1:nCapture){
eDetectedAlive[i] <- bDetectedAlive
eDieNear[i] ~ dbern(bDieNear)
eDetectedDeadNear[i] <- bDetectedDeadNear
eDetectedDeadFar[i] <- bDetectedDeadFar
eDetectedDead[i] <- eDieNear[i] * eDetectedDeadNear[i] + (1 - eDieNear[i]) * eDetectedDeadFar[i]
logit(eMortality[i,PeriodCapture[i]]) <- bMortality + bMortalitySeason[Season[PeriodCapture[i]]]
eTagLoss[i,PeriodCapture[i]] <- bTagLoss
eDetected[i,PeriodCapture[i]] <- Alive[i,PeriodCapture[i]] * eDetectedAlive[i] + (1-Alive[i,PeriodCapture[i]]) * eDetectedDead[i]
eMoved[i,PeriodCapture[i]] <- bMoved
eMobileDetected[i,PeriodCapture[i]] <- bMobileDetected
eMobileMoved[i,PeriodCapture[i]] <- bMobileMoved
logit(eRecaptured[i,PeriodCapture[i]]) <- bRecaptured + bRecapturedAnnual[Annual[PeriodCapture[i]]]
eReported[i,PeriodCapture[i]] <- bReported
InLake[i,PeriodCapture[i]] <- 1
Alive[i,PeriodCapture[i]] ~ dbern(1-eMortality[i,PeriodCapture[i]])
TBarTag100[i,PeriodCapture[i]] ~ dbern(1-eTagLoss[i,PeriodCapture[i]])
TBarTag10[i,PeriodCapture[i]] ~ dbern(1-eTagLoss[i,PeriodCapture[i]])
Detected[i,PeriodCapture[i]] ~ dbern(Monitored[i,PeriodCapture[i]] * eDetected[i,PeriodCapture[i]])
Moved[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * Monitored[i,PeriodCapture[i]] * eMoved[i,PeriodCapture[i]])
MobileDetected[i,PeriodCapture[i]] ~ dbern(Monitored[i,PeriodCapture[i]] * eMobileDetected[i,PeriodCapture[i]] * MobileSurvey[i,PeriodCapture[i]])
MobileMoved[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * MobileDetected[i,PeriodCapture[i]] * eMobileMoved[i,PeriodCapture[i]])
Recaptured[i,PeriodCapture[i]] ~ dbern(Alive[i,PeriodCapture[i]] * eRecaptured[i,PeriodCapture[i]])
Reported[i,PeriodCapture[i]] ~ dbern(Recaptured[i,PeriodCapture[i]] * eReported[i,PeriodCapture[i]] * step(TBarTag100[i,PeriodCapture[i]] + TBarTag10[i,PeriodCapture[i]] - 1))
for(j in (PeriodCapture[i]+1):nPeriod) {
logit(eMortality[i,j]) <- bMortality + bMortalitySeason[Season[j]]
eTagLoss[i,j] <- bTagLoss
eDetected[i,j] <- Alive[i,j] * eDetectedAlive[i] + (1-Alive[i,j]) * eDetectedDead[i]
eMoved[i,j] <- bMoved
eMobileDetected[i,j] <- bMobileDetected
eMobileMoved[i,j] <- bMobileMoved
logit(eRecaptured[i,j]) <- bRecaptured + bRecapturedAnnual[Annual[j]]
eReported[i,j] <- bReported
InLake[i,j] ~ dbern(InLake[i,j-1] * (1-Recaptured[i,j-1]))
Alive[i,j] ~ dbern(Alive[i,j-1] * (1-Recaptured[i,j-1]) * (1-eMortality[i,j-1]))
TBarTag100[i,j] ~ dbern(TBarTag100[i,j-1] * (1-Recaptured[i,j-1]) * (1-eTagLoss[i,j]))
TBarTag10[i,j] ~ dbern(TBarTag10[i,j-1] * (1-Recaptured[i,j-1]) * (1-eTagLoss[i,j]))
Detected[i,j] ~ dbern(InLake[i,j] * Monitored[i,j] * eDetected[i,j])
Moved[i,j] ~ dbern(Alive[i,j] * Monitored[i,j] * eMoved[i,j])
MobileDetected[i,j] ~ dbern(InLake[i,j] * Monitored[i,j] * eMobileDetected[i,j] * MobileSurvey[i,j])
MobileMoved[i,j] ~ dbern(Alive[i,j] * MobileDetected[i,j] * eMobileMoved[i,j])
Recaptured[i,j] ~ dbern(Alive[i,j] * eRecaptured[i,j])
Reported[i,j] ~ dbern(Recaptured[i,j] * eReported[i,j] * step(TBarTag100[i,j] + TBarTag10[i,j] - 1))}}
}
Block 3. Survival model description.
The suggested citation for this analytic appendix is:
Thorley, J.L., Dalgarno, S. & Pearson, A. (2021) Horse Lake Exploitation Analysis 2020. A Poisson Consulting Analytic Appendix. URL: https://www.poissonconsulting.ca/f/1065913173.
Horse Lake supports a recreational fishery for Lake Trout (Salvelinus namaycush). To estimate their natural and fishing mortality, individuals were caught by angling and tagged with acoustic transmitters and/or external reward tags. Acoustically tagged fish were detected by a series of seven receivers distributed through the lake as well as annual mobile receiver surveys. The external reward tags included a phone number for anglers to report their recaptures. In 2019, eight Rainbow Trout with acoustic transmitters and external reward tags were transplanted from Greenlee Lake.
All the data were provided by the Ministry of Forests, Lands and Natural Resource Operations (MFLNRO) Cariboo Region.
The suggested citation for this analytic report is:
Dalgarno, S. and Thorley, J.L. (2020) Quesnel Lake Exploitation Analysis 2019. A Poisson Consulting Analytic Appendix. URL: https://www.poissonconsulting.ca/f/574898434.
Quesnel Lake supports a recreational fishery for large Bull Trout, Lake Trout and Rainbow Trout. To provide information on the natural and fishing mortality, trout were caught by angling and tagged with acoustic transmitters and/or a $100 and $10 reward tag.
The suggested citation for this analytic report is:
Dalgarno, S. and Thorley, J.L. (2019) Horse Lake Exploitation Analysis 2019. A Poisson Consulting Analytic Appendix. URL: https://www.poissonconsulting.ca/f/248424047.
Horse Lake supports a recreational fishery for Lake Trout (Salvelinus namaycush). To estimate their natural and fishing mortality, individuals were caught by angling and tagged with acoustic transmitters and/or external reward tags. Acoustically tagged fish were detected by a series of seven receivers distributed through the lake as well as annual mobile receiver surveys. The external reward tags included a phone number for anglers to report their recaptures. In 2019, eight Rainbow Trout with acoustic transmitters and external reward tags were transplanted from Greenlee Lake.
All the data were provided by the Ministry of Forests, Lands and Natural Resource Operations (MFLNRO) Cariboo Region.
The suggested citation for this analytic appendix is:
Thorley, J.L., Andrusak, G.F. and Amies-Galonski, E. (2019) Duncan Lardeau Juvenile Rainbow Trout Abundance 2019b. A Poisson Consulting Analytic Appendix. URL: https://www.poissonconsulting.ca/f/1245769249.
Rainbow Trout rear in the Lardeau and Lower Duncan rivers. Since 2006 (with the exception of 2015) annual spring snorkel surveys have been conducted to estimate the abundance and distribution of age-1 Rainbow Trout. From 2006 to 2010 the surveys were conducted at fixed index sites. Since 2011 fish observations have been mapped to the river based on their spatial coordinates as recorded by GPS.
The primary aims of the current analyses were to:
The suggested citation for this analytic report is:
Dalgarno, S. and Thorley, J.L. (2019) Quesnel Lake Exploitation Analysis 2018. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/1356175666.
Quesnel Lake supports a recreational fishery for large Bull Trout, Lake Trout and Rainbow Trout. To provide information on the natural and fishing mortality, trout were caught by angling and tagged with acoustic transmitters and/or reward tags.
The suggested citation for this analytic report is:
Dalgarno, S. and Thorley, J.L. (2019) Horse Lake Exploitation Analysis 2018. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/1976213372.
Horse Lake supports a recreational fishery for Lake Trout (Salvelinus namaycush). To estimate their natural and fishing mortality, individuals were caught by angling and tagged with acoustic transmitters and/or external reward tags. Seven receivers were maintained throughout the lake. Acoustically tagged fish were detected by a series of seven receivers distributed through the lake as well as annual mobile receiver surveys. The external reward tags included a phone number for anglers to report their recaptures.
All the data were provided by the Ministry of Forests, Lands and Natural Resource Operations (MFLNRO) Cariboo Region.
The suggested citation for this analytic report is:
Thorley, J.L., Andrusak, G.F., and Dalgarno, S. (2018) Duncan Lardeau Juvenile Rainbow Trout Abundance 2018. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/679886444.
Rainbow Trout rear in the Lardeau and Lower Duncan rivers. Since 2006 (with the exception of 2015) annual spring snorkel surveys have been conducted to estimate the abundance and distribution of age-1 Rainbow Trout. From 2006 to 2010 the surveys were conducted at fixed index sites. Since 2011 fish observations have been mapped to the river based on their spatial coordinates as recorded by GPS.
The primary aims of the current analyses were to: