The suggested citation for this analytic report is:
Thorley, J.L. (2018) Lower Duncan River Kokanee AUC Analysis 2017. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/1498798685.
Every fall, Kokanee from Kootenay Lake spawn in the Duncan-Lardeau system. Since 2008 aerial surveys have been conducted in the Lower Duncan River (LDR) to enumerate the number of kokanee spawners. The management questions are:
The 2017 survey data were provided by LGL Limited in the form of Excel tables. They were imported into the existing SQLite database. The data were clean and tidied (Wickham 2014) using R version 3.4.3 (R Core Team 2016). When there were repeated counts for a channel the higher of the two values was choosen. The mean daily discharge and water temperature values at Duncan River below Lardeau (DRL) were extracted from BC Hydro’s environmental database for the Kootenays, which is maintained by Poisson Consulting. The annual abundances of Kokanee spawning in Meadow Creek and the Lardeau River were provided by the Ministry of Forests, Lands and Natural Resource Operations.
Model parameters were estimated using Bayesian methods. The estimates were produced using JAGS (Plummer 2015). For additional information on Bayesian estimation the reader is referred to McElreath (2016).
Unless indicated otherwise, the Bayesian analyses used uninformative normal prior distributions (Kery and Schaub 2011, 36). 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 \(\hat{R} \leq 1.1\) (Kery and Schaub 2011, 40) and \(\textrm{ESS} \geq 150\) for each of the monitored parameters (Kery and Schaub 2011, 61). Where \(\hat{R}\) is the potential scale reduction factor and \(\textrm{ESS}\) is the effective sample size.
The parameters are summarised in terms of the point estimate, standard deviation (sd), the z-score, lower and upper 95% confidence/credible limits (CLs) and the p-value (Kery and Schaub 2011, 37, 42). The estimate is the median (50th percentile) of the MCMC samples, the z-score is \(\mathrm{mean}/\mathrm{sd}\) and the 95% CLs are the 2.5th and 97.5th percentiles. A p-value of 0.05 indicates that the lower or upper 95% CL is 0.
Where relevant, model adequacy was confirmed by examination of residual plots for the full model(s).
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 change in the response variable) with 95% confidence/credible intervals (CIs, Bradford, Korman, and Higgins 2005).
The analyses were implemented using R version 3.4.3
(R Core Team 2015) and the
mbr family of packages.
The aerial observer efficiency was estimated from ground counts using an overdispersed Poisson regression. Key assumptions of the observer efficiency model include:
The aerial spawner counts for the Lower Duncan River and its sidechannels were analysed using a hierarchical Bayesian Area-Under-the-Curve (AUC) model (Hilborn, Bue, and Sharr 1999). Key assumptions of the AUC model include:
The emergence timing was calculated from the daily water temperature at DRL assuming 950 Accumulated Thermal Units (ATUs). The relationship between peak spawn timing and the mean september water temperature at DRL was tested using linear regression. Neither relationship was significant (p > 0.3).
model{
bEfficiency ~ dunif(0, 3)
sDispersion ~ dunif(0, 5)
for (i in 1:nObs){
eAerial[i] <- Ground[i] * bEfficiency
eDispersion[i] ~ dgamma(sDispersion^-2, sDispersion^-2)
Aerial[i] ~ dpois(eAerial[i] * eDispersion[i])
}
..
Template 1. Model definition.
model{
bAbundance ~ dnorm(10, 5^-2)
bPeakTiming ~ dunif(-14, 14)
bDuration ~ dnorm(2, 1^-2)
bEfficiency ~ dnorm(1.40, 0.38^-2) T(0.89, 2.40)
bResidenceTime ~ dunif(7, 14)
sAbundanceYear ~ dunif(0, 5)
sPeakTiming ~ dunif(0, 14)
for(i in 1:nYear){
bAbundanceYear[i] ~ dnorm(0, sAbundanceYear^-2)
bPeakTimingYear[i] ~ dnorm(0, sPeakTiming^-2)
}
bSD ~ dnorm(0, 10^-2)
bSDAbundance ~ dnorm(0, 5^-2)
for(i in 1:length(Count)){
log(eAbundance[i]) <- bAbundance + bAbundanceYear[Year[i]]
ePeakTiming[i] <- bPeakTiming + bPeakTimingYear[Year[i]]
log(eDuration[i]) <- bDuration
eArrived[i] <- pnorm(Dayte[i], (ePeakTiming[i] - bResidenceTime/2), eDuration[i]^-2)
eDeparted[i] <- pnorm(Dayte[i], (ePeakTiming[i] + bResidenceTime/2), eDuration[i]^-2)
eSpawners[i] <- (eArrived[i] - eDeparted[i]) * eAbundance[i]
eEfficiency[i] <- bEfficiency
log(eSD[i]) <- bSD + bSDAbundance * eAbundance[i]
Count[i] ~ dnorm(eSpawners[i] * eEfficiency[i], eSD[i]^-2)
}
..
Template 2. Model definition.
The suggested citation for this analytic report is:
Thorley, J.L., Andrusak, G.F. and Hogan P.M. (2017) Kaslo Bull Trout Productivity Analysis 2016. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/1827953676.
The Kaslo River and Keen Creek, which is a tributary of the Kaslo River, are important Bull Trout spawning and rearing tributaries on Kootenay Lake. From 2012 to 2016, field crews have night-snorkeled both systems in the fall and recorded all juvenile Bull Trout between 30 mm and 350 mm in length. Snorkel and electrofishing marking crews have also captured and tagged juvenile Bull Trout for the snorkel crews to resight. Redd counts have been conducted in both systems since 2006.
The primary goal of the current analyses is to answer the following questions:
What is the observer efficiency when night-snorkeling for juvenile Bull Trout in the Kaslo River and Keen Creek?
What are the densities of age-1 Bull Trout in the Kaslo River and Keen Creek?
What is the relationship between the number of redds and the resultant densities of age-1 Bull Trout two years later?
The data were provided in the form of clean and tidy Excel spreadsheets by Gary Pavan and prepared for analysis using R version 3.3.2 (R Core Team 2015).
Table 1. Bull Trout length cutoffs by age-class.
| Age Class | Length (mm) |
|---|---|
| Age-0 | 30 - 90 |
| Age-1 | 91 - 150 |
| Age-2+ | 151 - 350 |
Model parameters were estimated using Maximum-Likelihood (ML) and Bayesian methods. The Maximum-Likelihood Estimates (MLE) were obtained using TMB (Kristensen et al. 2016) while the Bayesian estimates were produced using JAGS (Plummer 2015). For additional information on ML estimation the reader is referred to Millar (2011). For additional information on Bayesian modelling in the BUGS language, of which JAGS uses a dialect, the reader is referred to Kery and Schaub (2011).
Unless indicated otherwise, the Bayesian analyses used uninformative normal prior distributions (Kery and Schaub 2011, 36). The posterior distributions were estimated from 2,000 Markov Chain Monte Carlo (MCMC) samples thinned from the second halves of four chains (Kery and Schaub 2011, 38–40). Model convergence was confirmed by ensuring that \(\hat{R} < 1.1\) (Kery and Schaub 2011, 40) for each of the monitored parameters (Kery and Schaub 2011, 61).
The parameters are summarised in terms of the point estimate, standard deviation (sd), the z-score, lower and upper 95% confidence/credible limits (CLs) and the p-value (Kery and Schaub 2011, 37, 42). For ML models, the point estimate is the MLE, the standard deviation is the standard error, the z-score is \(\mathrm{sd}/\mathrm{MLE}\) and the 95% CLs are the \(\mathrm{MLE} \pm 1.96 \cdot \mathrm{sd}\). A p-value of 0.05 indicates that the lower or upper 95% CL is 0. For Bayesian models, the estimate is the median (50th percentile) of the MCMC samples, the z-score is \(\mathrm{mean}/\mathrm{sd}\) and the 95% CLs are the 2.5th and 97.5th percentiles.
The support for fixed terms in ML models with identical random (Kery and Schaub 2011, 75) effects was assessed using Akaike’s weights (\(w_i\)) calculated from the marginal Akaike’s Information Criterion corrected for small sample size (AICc, Burnham and Anderson 2002). The Akaike’s weights were used for model averaging (Burnham and Anderson 2002). The fixed terms with low support were dropped from the final Bayesian model.
Where relevant, model adequacy was confirmed by examination of residual plots for the full model(s).
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 change in the response variable) with 95% confidence/credible intervals (CIs, Bradford et al. 2005).
The analyses were implemented using R version 3.3.2
(R Core Team 2015) and the tmbr and jmbr packages.
All resighted fish with a tag were allocated to the closest unallocated marked fish (with the same colour tag) by fork length and distance. The marked fish were analysed using a logistic regression model. Key assumptions of the full Maximum Likelihood logistic regression include:
The final Bayesian logistic regression assumed that:
Both systems were broken into 100 m sites by bank. The lineal density at each site was estimated using an over-dispersed Poisson Generalized Linear Mixed Model. Key assumptions of the full Maximum Likelihood GLMM include:
The final Bayesian GLMM dropped sinuosity and gradient and took into account the uncertainty in the observer efficiencies as estimated by the observer efficiency model.
The stock-recruitment relationship was estimated using a Bayesian Beverton-Holt stock-recruitment curve. Key assumptions of the final BH SR model include:
#include <TMB.hpp>
template<class Type>
Type objective_function<Type>::operator() () {
DATA_VECTOR(Observed);
DATA_FACTOR(System);
DATA_VECTOR(Tagged);
DATA_VECTOR(Length);
DATA_VECTOR(Gradient);
DATA_VECTOR(Sinuosity);
DATA_VECTOR(Area);
PARAMETER(bIntercept);
PARAMETER(bSystem);
PARAMETER(bLength);
PARAMETER(bLength2);
PARAMETER(bGradient);
PARAMETER(bSinuosity);
PARAMETER(bArea);
vector<Type> eObserved = Observed;
int n = Observed.size();
Type nll = 0.0;
for(int i = 0; i < n; i++){
eObserved(i) = invlogit(bIntercept + bSystem * System(i) + bLength * Length(i) + bLength2 * pow(Length(i), 2) + bGradient * Gradient(i) + bSinuosity * Sinuosity(i) + bArea * Area(i));
nll -= dbinom(Observed(i), Tagged(i), eObserved(i), true);
return nll;
Template 1. Full model.
model{
bIntercept ~ dnorm(0, 5^-2)
bLength ~ dnorm(0, 5^-2)
for(i in 1:length(Observed)){
logit(eObserved[i]) <- bIntercept + bLength * Length[i]
Observed[i] ~ dbern(eObserved[i])
}
Template 2. Final model.
#include <TMB.hpp>
template<class Type>
Type objective_function<Type>::operator() () {
DATA_VECTOR(Count);
DATA_VECTOR(Length);
DATA_VECTOR(Coverage);
DATA_VECTOR(Efficiency);
DATA_VECTOR(Dispersion);
DATA_VECTOR(Gradient);
DATA_VECTOR(Sinuosity);
DATA_VECTOR(Area);
DATA_FACTOR(System);
DATA_FACTOR(Site);
DATA_INTEGER(nSite);
DATA_FACTOR(Year);
PARAMETER_MATRIX(bSystemYear);
PARAMETER_VECTOR(bSite);
PARAMETER(bGradient);
PARAMETER(bSinuosity);
PARAMETER(bArea);
PARAMETER_VECTOR(bDispersion);
DATA_INTEGER(nDispersion);
PARAMETER(log_sDispersion);
PARAMETER(log_sSite);
Type sSite = exp(log_sSite);
Type sDispersion = exp(log_sDispersion);
ADREPORT(sSite);
ADREPORT(sDispersion);
vector<Type> eDensity = Count;
vector<Type> eCount = Count;
vector<Type> eNorm = pnorm(bDispersion, Type(0), Type(1));
vector<Type> eDispersion = qgamma(eNorm, pow(sDispersion, -2), pow(sDispersion, 2));
Type nll = 0.0;
for(int i = 0; i < nSite; i++){
nll -= dnorm(bSite(i), Type(0), sSite, true);
}
for(int i = 0; i < nDispersion; i++){
nll -= dnorm(bDispersion(i), Type(0), Type(1), true);
eDensity(i) = exp(bSystemYear(System(i), Year(i)) + bGradient * Gradient(i) + bSinuosity * Sinuosity(i) + bArea * Area(i) + bSite(Site(i)));
eCount(i) = eDensity(i) * Length(i) * Coverage(i);
nll -= dpois(Count(i), eCount(i) * Efficiency(i) * eDispersion(i), true);
}
return nll;
}
Template 3. The full model.
model{
bEfficiency ~ dnorm(Efficiency[1], EfficiencySD[1]^-2) T(0, )
for(i in 1:nSystem) {
for(j in 1:nYear) {
bSystemYear[i,j] ~ dnorm(0, 5^-2)
}
}
log_sSite ~ dnorm(0, 5^-2)
log(sSite) <- log_sSite
for(i in 1:nSite) {
bSite[i] ~ dnorm(0, sSite^-2)
}
bArea ~ dnorm(0, 5^-2)
log_sDispersion ~ dnorm(0, 5^-2)
log(sDispersion) <- log_sDispersion
for(i in 1:length(Count)) {
log(eDensity[i]) <- bSystemYear[System[i],Year[i]] + bArea * Area[i] + bSite[Site[i]]
eDispersion[i] ~ dgamma(sDispersion^-2, sDispersion^-2)
Count[i] ~ dpois(eDensity[i] * Length[i] * Coverage[i] * bEfficiency * eDispersion[i])
}
Template 4. The final model.
model {
log_bAlpha ~ dnorm(5, 5^-2)
log(bAlpha) <- log_bAlpha
for(i in 1:nSystem) {
log_bBeta[i] ~ dnorm(0, 5^-2)
log(bBeta[i]) <- log_bBeta[i]
}
log_sRecruits ~ dnorm(0, 5^-2)
log(sRecruits) <- log_sRecruits
for(i in 1:length(Recruits)){
eRecruits[i] <- bAlpha * Stock[i] / (1 + bBeta[System[i]] * Stock[i])
Recruits[i] ~ dlnorm(log(eRecruits[i]), sRecruits^-2)
}
bCarryingCapacity <- bAlpha / bBeta
Template 5. Final model.
The suggested citation for this analytic report is:
Thorley, J.L. (2016) Lower Duncan River Kokanee AUC Analysis 2016. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/1172999120.
Every fall, Kokanee from Kootenay Lake spawn in the Duncan-Lardeau system. Since 2008 aerial surveys have been conducted in the Lower Duncan River (LDR) to enumerate the number of kokanee spawners. The management questions are:
The suggested citation for this analytic report is:
Thorley, J.L. and Hogan, P.M. (2015) Lower Duncan River Kokanee AUC Analysis 2015. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/1629724501.
Since 2008 aerial surveys have been conducted in the Lower Duncan River (LDR) to count the number of kokanee spawners. The primary objectives of the current analysis report are to:
The suggested citation for this analytic report is:
Thorley, J.L. and Hogan, P.M. (2015) Lower Duncan River Kokanee AUC Analysis 2014. URL: https://www.poissonconsulting.ca/f/423435381.
Since 2008 aerial surveys have been conducted in the Lower Duncan River (LDR) to count the number of kokanee spawners. The primary objectives of the current analysis report are to:
The suggested citation for this analytic report is:
Thorley, J.L. (2015) Middle Columbia River Fish Indexing Analysis 2013. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/111290438.
The key management questions to be addressed by the analyses are:
Other objectives include the estimation of species richness, species diversity (evenness) and biomass and the modeling of environmental-fish metric relationships. The year-round minimum flow was implemented in the winter of 2010 at the same time that a fifth turbine was added.
The data were provided by Golder Associates.
The suggested citation for this analytic report is:
Thorley, J.L. and Hogan, P.M. (2015) Lower Duncan River Kokanee AUC Analysis 2013. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/577555490.
Since 2008 aerial surveys have been conducted in the Lower Duncan River (LDR) to count the number of kokanee spawners. The primary objectives of the current analysis report are to
The suggested citation for this analytic report is:
Thorley, J.L. (2014) Lower Columbia River Fish Population Indexing Analysis 2013. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/252359126.
In the mid 1990s BC Hydro began operating Hugh L. Keenleyside (HLK) Dam to reduce dewatering of Mountain Whitefish and Rainbow Trout eggs.
The primary goal of the Lower Columbia River Fish Population Indexing program is to answer two key management questions:
What are the abundance, growth rate, survival rate, body condition, age distribution, and spatial distribution of subadult and adult Whitefish, Rainbow Trout, and Walleye in the LCR?
What is the effect of inter-annual variability in the Whitefish and Rainbow Trout flow regimes on the abundance, growth rate, survival rate, body condition, and spatial distribution of subadult and adult Whitefish, Rainbow Trout, and Walleye in the LCR?