Kaslo Bull Trout Productivity 2018

The suggested citation for this analytic report is:

Thorley, J.L., Dalgarno, S.I.J., Amies-Galonski, E. (2018) Kaslo Bull Trout Productivity 2018. A Poisson Consulting Analysis Report. URL: https://www.poissonconsulting.ca/f/1920399815.

Background

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 2018, field crews have night-snorkeled both systems in the fall and recorded all juvenile Bull Trout less than 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?

Data Preparation

The data were cleaned, tidied and databased using R version 3.5.1 (R Core Team 2015).

Table 1. Bull Trout length cutoffs by age-class.

Age Class Length (mm)
Age-0 30 - 90
Age-1 91 - 140
Age-2+ 141 - 350

Statistical Analysis

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 and Bayesian estimation the reader is referred to Millar (2011) and McElreath (2016), respectively.

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). 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}\). 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. A p-value of 0.05 indicates that the lower or upper 95% CL is 0.

Model averaging and selection was implemented using an information theoretic approach (Burnham and Anderson 2002). ML models were compared using the marginal Akaike’s Information Criterion corrected for small sample size (AICc, Burnham and Anderson 2002). The support for fixed terms in models with identical random (Kery and Schaub 2011, 75) effects was assessed using the Akaike’s weights (\(w_i\)) (Burnham and Anderson 2002). The best supported model was then refitted as its Bayesian equivalent.

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.5.1 (R Core Team 2015) and the mbr family of packages.

Model Descriptions

Length Correction

The annual bias (inaccuracy) and error (imprecision) in observer’s fish length estimates when spotlighting (standing) and snorkeling were quantified from the divergence of their length distribution from the length distribution for JLT and SH (the two most experience snorkelers) in that year. More specifically, the length correction that minimised the Jensen-Shannon divergence (Lin 1991) provided a measure of the inaccuracy while the minimum divergence (the Jensen-Shannon divergence was calculated with log to base 2 which means it lies between 0 and 1) provided a measure of the imprecision.

Observer Efficiency

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 observer efficiency varies by the fork length as a second order polynomial.
  • The observer efficiency varies by observer.
  • The observer efficiency varies between systems.
  • The observer efficiency varies by the gradient, sinuosity and river kilometre.

Preliminary analysis indicated that river kilometre received similar support to watershed area.

The final Bayesian logistic regression assumed that:

  • The observer efficiency varies by the fork length.

Lineal Density

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 lineal density varies between systems and years.
  • The lineal density varies randomly by site.
  • The lineal density varies by site sinuosity, gradient and river kilometre.
  • The observer efficiency for each system is as estimated by the observer efficiency model.

Preliminary analysis indicated that river kilometre was better supported as a predictor of lineal density than watershed area. Preliminary analysis also indicated that autocorrelation (modeled as an AR1 process) was not significant.

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.

Stock-Recruitment

The stock-recruitment relationship was estimated using a Bayesian Beverton-Holt stock-recruitment curve. Key assumptions of the final BH SR model include:

  • The strength of density-dependence varies between systems.

Model Templates

Observer Efficiency

Maximum Likelihood

#include <TMB.hpp>

template<class Type>
Type objective_function<Type>::operator() () {
DATA_VECTOR(Observed);
DATA_FACTOR(Observer);
DATA_FACTOR(System);
DATA_VECTOR(Tagged);
DATA_VECTOR(Length);
DATA_VECTOR(Gradient);
DATA_VECTOR(Sinuosity);
DATA_VECTOR(Rkm);

PARAMETER(bSystem);
PARAMETER(bLength);
PARAMETER(bLength2);
PARAMETER(bGradient);
PARAMETER(bSinuosity);
PARAMETER(bRkm);

PARAMETER_VECTOR(bObserver);

vector<Type> eObserved = Observed;

int n = Observed.size();

Type nll = 0.0;

for(int i = 0; i < n; i++){
eObserved(i) = invlogit(bObserver(Observer(i)) + bSystem * System(i) + bLength * Length(i) + bLength2 * pow(Length(i), 2) + bGradient * Gradient(i) + bSinuosity * Sinuosity(i) + bRkm * Rkm(i));
nll -= dbinom(Observed(i), Tagged(i), eObserved(i), true);
return nll;
..

Template 1. Full model.

Bayesian

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.

Lineal Density

Maximum Likelihood

#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(Rkm);

DATA_FACTOR(System);

DATA_FACTOR(Site);
DATA_INTEGER(nSite);
DATA_FACTOR(Year);

PARAMETER_MATRIX(bSystemYear);
PARAMETER_VECTOR(bSite);

PARAMETER(bGradient);
PARAMETER(bSinuosity);
PARAMETER(bRkm);

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) +  bRkm * Rkm(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.

Bayesian

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)
  }

  bRkm ~ 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]] + bRkm * Rkm[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.

Stock-Recruiment

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.

Results

Tables

Coverage

Table 2. Total length of river bank counted (including replicates) by system and year.

System Year Length (km)
Kaslo River 2012 10.57 [km]
Kaslo River 2013 13.43 [km]
Kaslo River 2014 11.45 [km]
Kaslo River 2015 7.32 [km]
Kaslo River 2016 11.59 [km]
Kaslo River 2017 9.79 [km]
Kaslo River 2018 8.43 [km]
Keen Creek 2012 1.44 [km]
Keen Creek 2013 0.95 [km]
Keen Creek 2014 0.67 [km]
Keen Creek 2015 0.72 [km]
Keen Creek 2016 0.85 [km]
Keen Creek 2017 1.68 [km]
Keen Creek 2018 3.37 [km]

Fish

Table 3. Number of fish observed by system, age-class and species. All species are assumed to have the Bull Trout age-class length cutoffs.

System AgeClass Year Bull Trout Brook Trout Rainbow Trout
Kaslo River Age-0 2012 124 0 1
Kaslo River Age-0 2013 111 1 41
Kaslo River Age-0 2014 263 1 49
Kaslo River Age-0 2015 108 1 33
Kaslo River Age-0 2016 179 4 138
Kaslo River Age-0 2017 99 9 143
Kaslo River Age-0 2018 151 8 89
Kaslo River Age-1 2012 157 2 67
Kaslo River Age-1 2013 151 10 49
Kaslo River Age-1 2014 123 8 59
Kaslo River Age-1 2015 134 1 68
Kaslo River Age-1 2016 129 17 246
Kaslo River Age-1 2017 222 19 196
Kaslo River Age-1 2018 146 26 247
Kaslo River Age-2+ 2012 147 29 224
Kaslo River Age-2+ 2013 199 16 188
Kaslo River Age-2+ 2014 187 23 147
Kaslo River Age-2+ 2015 82 5 74
Kaslo River Age-2+ 2016 165 7 219
Kaslo River Age-2+ 2017 265 42 398
Kaslo River Age-2+ 2018 204 30 369
Keen Creek Age-0 2012 12 0 0
Keen Creek Age-0 2013 4 0 0
Keen Creek Age-0 2014 10 0 0
Keen Creek Age-0 2015 2 1 4
Keen Creek Age-0 2016 2 0 0
Keen Creek Age-0 2017 3 0 5
Keen Creek Age-0 2018 50 0 4
Keen Creek Age-1 2012 42 0 2
Keen Creek Age-1 2013 17 0 0
Keen Creek Age-1 2014 20 0 1
Keen Creek Age-1 2015 35 0 4
Keen Creek Age-1 2016 5 0 0
Keen Creek Age-1 2017 42 1 17
Keen Creek Age-1 2018 53 2 17
Keen Creek Age-2+ 2012 82 1 25
Keen Creek Age-2+ 2013 64 3 10
Keen Creek Age-2+ 2014 41 0 7
Keen Creek Age-2+ 2015 48 2 9
Keen Creek Age-2+ 2016 17 1 10
Keen Creek Age-2+ 2017 59 10 38
Keen Creek Age-2+ 2018 131 12 143

Observer Efficiency

Table 4. Parameter descriptions.

Parameter Description
bGradient The effect of Gradient on bIntercept
bIntercept The intercept for logit(eObserved)
bLength The effect of Length on bIntercept
bLength2 The effect of Length on the effect of Length on bIntercept
bRkm The effect of Rkm on bIntercept
bSinuosity The effect of Sinuosity on bIntercept
eObserved The expected probability of observing an individual
Gradient The standardized site-level gradient
Length The standardized fork length
Observed The number of individuals observed (0 or 1)
Rkm The standardized Rkm
Sinuosity The standardized site-level sinuosity
Tagged The number of tagged individuals (1)

Maximum Likelihood

Table 5. Model averaged parameter estimates and Akaike weights.

term estimate sd zscore lower upper pvalue nmodels proportion ICWt
bGradient 0.1213004 0.1716764 0.7065641 -0.2151792 0.4577799 0.4798374 96 0.5000000 0.494
bIntercept -1.0595746 0.4484976 -2.3624977 -1.9386137 -0.1805354 0.0181523 96 0.5000000 0.877
bLength 0.6414885 0.2207843 2.9054992 0.2087593 1.0742177 0.0036667 96 0.6666667 0.989
bLength2 -0.0866981 0.1674727 -0.5176848 -0.4149385 0.2415424 0.6046782 96 0.3333333 0.390
bObserver[1] -0.1575408 0.4485807 -0.3511983 -1.0367427 0.7216612 0.7254396 96 0.5000000 0.119
bObserver[2] -0.1371487 0.3843053 -0.3568743 -0.8903732 0.6160759 0.7211859 96 0.5000000 0.119
bObserver[3] -0.1765975 0.6257591 -0.2822132 -1.4030629 1.0498679 0.7777801 96 0.5000000 0.119
bRkm -0.0373874 0.1332323 -0.2806182 -0.2985179 0.2237431 0.7790033 96 0.5000000 0.303
bSinuosity -0.0105295 0.0930483 -0.1131613 -0.1929008 0.1718418 0.9099026 96 0.5000000 0.261
bSystem 0.0913512 0.3117492 0.2930278 -0.5196661 0.7023685 0.7695009 96 0.5000000 0.306

Bayesian

Table 6. Final parameter estimates.

term estimate sd zscore lower upper pvalue
bIntercept -1.2792096 0.1903641 -6.732701 -1.672424 -0.9212475 7e-04
bLength 0.6739425 0.2031999 3.396563 0.315668 1.1204767 7e-04

Table 7. Observer Efficiency estimates for a 123 mm Bull Trout.

System Efficiency EfficiencySD EfficiencyLower EfficiencyUpper
Kaslo River 0.1737644 0.033176 0.1158035 0.2417162

Table 8. Final model summary.

n K nchains niters nthin ess rhat converged
190 2 3 500 1 614 1.002 TRUE

Lineal Density

Table 9. Parameter descriptions.

Parameter Description
bDispersion The random effect of overdispersion
bGradient The effect of Gradient on bSystemYear
bRkm The effect of Rkm on bSystemYear
bSinuosity The effect of Sinuosity on bSystemYear
bSite The random effect of Site on bSystemYear
bSystemYear The effect of System and Year on log(eDensity)
Count Number of fish counted
Coverage Proportion of site surveyed
Dispersion Factor for random effect of overdispersion
eCount The expected Count
eDensity The expected lineal density
Efficiency The observer efficiency from the observer efficiency model
Gradient Standardized gradient
Length Length of site (m)
log_sDispersion log(sDispersion)
log_sSite log(sSite)
Rkm Standardized Rkm
sDispersion The SD of bDispersion
Sinuosity Standardized sinuosity
Site The site
sSite The SD of bSite
System The system
Year The year

Maximum Likelihood

Table 10. Model averaged parameter estimates and Akaike weights.

term estimate sd zscore lower upper pvalue nmodels proportion ICWt
bGradient 0.0318856 0.0467168 0.682530 -0.0596777 0.1234489 0.4949039 8 0.5 0.481
bRkm 0.4777755 0.0569088 8.395457 0.3662362 0.5893147 0.0000000 8 0.5 1.000
bSinuosity 0.0347722 0.0461056 0.754185 -0.0555932 0.1251375 0.4507381 8 0.5 0.522
bSystemYear[1,1] -2.8146846 0.1136662 -24.762722 -3.0374663 -2.5919030 0.0000000 8 1.0 1.000
bSystemYear[2,1] -1.3808330 0.2471112 -5.587900 -1.8651621 -0.8965039 0.0000000 8 1.0 1.000
bSystemYear[1,2] -3.0298802 0.1061539 -28.542328 -3.2379381 -2.8218223 0.0000000 8 1.0 1.000
bSystemYear[2,2] -1.6706561 0.3412338 -4.895928 -2.3394620 -1.0018501 0.0000010 8 1.0 1.000
bSystemYear[1,3] -3.1470302 0.1167629 -26.952304 -3.3758814 -2.9181791 0.0000000 8 1.0 1.000
bSystemYear[2,3] -1.2265972 0.3491879 -3.512714 -1.9109930 -0.5422015 0.0004436 8 1.0 1.000
bSystemYear[1,4] -2.5885482 0.1272121 -20.348292 -2.8378793 -2.3392171 0.0000000 8 1.0 1.000
bSystemYear[2,4] -0.6592315 0.3141926 -2.098177 -1.2750377 -0.0434253 0.0358896 8 1.0 1.000
bSystemYear[1,5] -3.0136124 0.1157103 -26.044454 -3.2404004 -2.7868243 0.0000000 8 1.0 1.000
bSystemYear[2,5] -2.8052461 0.5135003 -5.462988 -3.8116883 -1.7988039 0.0000000 8 1.0 1.000
bSystemYear[1,6] -2.3467261 0.0997193 -23.533312 -2.5421724 -2.1512798 0.0000000 8 1.0 1.000
bSystemYear[2,6] -1.5482648 0.2520852 -6.141832 -2.0423427 -1.0541870 0.0000000 8 1.0 1.000
bSystemYear[1,7] -2.6898151 0.1169212 -23.005374 -2.9189763 -2.4606538 0.0000000 8 1.0 1.000
bSystemYear[2,7] -1.8448237 0.2044275 -9.024342 -2.2454942 -1.4441531 0.0000000 8 1.0 1.000
log_sDispersion -0.6867066 0.1136113 -6.044354 -0.9093806 -0.4640327 0.0000000 8 1.0 1.000
log_sSite -0.8175889 0.1421056 -5.753388 -1.0961109 -0.5390670 0.0000000 8 1.0 1.000

Bayesian

Table 11. Parameter estimates.

term estimate sd zscore lower upper pvalue
bEfficiency 0.1657357 0.0326357 5.054628 0.0989172 0.2286295 0.0007
bRkm 0.4800771 0.0567364 8.479484 0.3722891 0.5941657 0.0007
bSystemYear[1,1] -2.7485627 0.2328943 -11.735744 -3.1469515 -2.1973567 0.0007
bSystemYear[2,1] -1.2710608 0.3265522 -3.919585 -1.8963961 -0.6042248 0.0007
bSystemYear[1,2] -2.9876076 0.2323480 -12.731516 -3.3715011 -2.4567615 0.0007
bSystemYear[2,2] -1.5432266 0.3966800 -3.875327 -2.2963110 -0.7273252 0.0007
bSystemYear[1,3] -3.0988752 0.2392042 -12.885331 -3.5058541 -2.5473305 0.0007
bSystemYear[2,3] -1.1037899 0.4158885 -2.657450 -1.8594721 -0.2666399 0.0107
bSystemYear[1,4] -2.5236103 0.2433393 -10.315178 -2.9264352 -1.9707879 0.0007
bSystemYear[2,4] -0.5439819 0.3770795 -1.411142 -1.2617376 0.2662589 0.1653
bSystemYear[1,5] -2.9558921 0.2419681 -12.152557 -3.3720374 -2.4017435 0.0007
bSystemYear[2,5] -2.6921237 0.5744130 -4.745005 -3.8785451 -1.6540349 0.0007
bSystemYear[1,6] -2.2928319 0.2309079 -9.841815 -2.6883386 -1.7701304 0.0007
bSystemYear[2,6] -1.4320634 0.3237280 -4.400670 -2.0370470 -0.7652483 0.0007
bSystemYear[1,7] -2.6295448 0.2464275 -10.592167 -3.0549731 -2.0548702 0.0007
bSystemYear[2,7] -1.7449481 0.2854882 -6.060343 -2.2555956 -1.1386658 0.0007
log_sDispersion -0.6088849 0.1173623 -5.288508 -0.8837685 -0.4186569 0.0007
log_sSite -0.8194570 0.1512513 -5.506325 -1.1799173 -0.5644116 0.0007

Table 12. Model summary.

n K nchains niters nthin ess rhat converged
888 18 3 500 20 237 1.02 TRUE

Stock-Recruiment

Table 13. Parameter descriptions.

Parameter Description
bBeta Density-dependence
eRecruits Expected value of Recruits
Recruits Number of age-1 Bull Trout
Stock Number of Bull Trout redds
bAlpha Recruits per stock at low stock density
sRecruits SD of residual variation in Recruits

Bayesian

Table 14. Final parameter estimates.

term estimate sd zscore lower upper pvalue
bAlpha 66.5547139 5.561190e+03 0.1225743 27.4492503 3.238070e+03 0.0007
bBeta[1] 0.3497099 3.744426e+01 0.1227789 0.0615846 2.152617e+01 0.0007
bBeta[2] 0.1171794 2.243583e+01 0.1101953 0.0000754 1.254980e+01 0.0007
bCarryingCapacity[1] 193.5536817 4.780811e+03 0.0821633 118.8192254 4.562723e+02 0.0007
bCarryingCapacity[2] 571.1676613 4.807053e+07 0.0331244 229.4444366 4.447971e+05 0.0007
log_bAlpha 4.1980244 1.209670e+00 3.7670467 3.3123386 8.082269e+00 0.0007
log_bBeta[1] -1.0506514 1.452169e+00 -0.5337203 -2.7873446 3.069124e+00 0.4240
log_bBeta[2] -2.1440500 2.714215e+00 -0.8916944 -9.4943729 2.529698e+00 0.2373
log_sRecruits -0.7765361 2.196916e-01 -3.4803466 -1.1485676 -2.914789e-01 0.0080
sRecruits 0.4599967 1.115978e-01 4.2765365 0.3170906 7.471786e-01 0.0007

Table 15. Final model summary.

n K nchains niters nthin ess rhat converged
14 10 3 500 100 285 1.009 TRUE

Figures

Systems

figures/rkm/map.png
Figure 1. Spatial distribution of fish-bearing channel.
figures/rkm/elevation.png
Figure 2. Channel elevation by river kilometre and system.
figures/rkm/area.png
Figure 3. Catchment area by river kilometre and system.

Sites

figures/site/gradient.png
Figure 4. Site gradient by river kilometre and system.
figures/site/sinuosity.png
Figure 5. Site sinuosity by river kilometre and system.

Coverage

figures/visit/count.png
Figure 6. Snorkel count coverage by year and bank.

Length Correction

figures/length/corrected.png
Figure 7. Corrected length-frequency histogram by year and observation type.

Fish

figures/fish/capture.png
Figure 8. Length-frequency plot of marked Bull Trout by year and system.
figures/fish/freq.png
Figure 9. Length-frequency plot of observed Bull Trout by year.

Observer Efficiency

Bayesian

figures/observer/jmb/capture.png
Figure 10. Distribution of marked juvenile Bull Trout by year.
figures/observer/jmb/length.png
Figure 11. Estimated observer efficiency by fork length and system (with 95% CIs).

Lineal Density

Bayesian

figures/density/jmb/coverage.png
Figure 12. Percent coverage by year and system.
figures/density/jmb/year.png
Figure 13. Estimated density by year and system (with 95% CIs).
figures/density/jmb/abundance.png
Figure 14. The estimated abundance by year and system (with 95% CIs).
figures/density/jmb/site.png
Figure 15. The estimated density by site and system (with 95% CIs).

Stock-Recruiment

Bayesian

figures/redds/jmb/redds.png
Figure 16. Complete redds by system and spawn year.
figures/redds/jmb/stock.png
Figure 17. Estimated stock-recruitment relationship (with 95% CIs). The points are labelled by spawn year.

Conclusions

  • Observer efficiency is approximately 17% for age-1 Bull Trout.
  • Age-1 Bull Trout are relatively evenly distributed with respect to mesohabitat.
  • Lineal densities of age-1 Bull Trout increase with river kilometre in both systems.
  • The age-1 carrying capacity is estimated to be just under 200 fish per km in Kaslo River and over 550 fish per km in Keen Creek.

Acknowledgements

The organisations and individuals whose contributions have made this analysis report possible include:

  • BC Fish and Wildlife
  • Greg Andrusak
  • Stephan Himmer
  • Gillian Sanders
  • Jeff Berdusco
  • Vicky Lipinski
  • Jimmy Robbins
  • Jason Bowers
  • Kyle Mace

References

Bradford, Michael J, Josh Korman, and Paul S Higgins. 2005. “Using Confidence Intervals to Estimate the Response of Salmon Populations (Oncorhynchus Spp.) to Experimental Habitat Alterations.” Canadian Journal of Fisheries and Aquatic Sciences 62 (12): 2716–26. https://doi.org/10.1139/f05-179.

Burnham, Kenneth P., and David R. Anderson. 2002. Model Selection and Multimodel Inference: A Practical Information-Theoretic Approach. Vol. Second Edition. New York: Springer.

Kery, Marc, and Michael Schaub. 2011. Bayesian Population Analysis Using WinBUGS : A Hierarchical Perspective. Boston: Academic Press. http://www.vogelwarte.ch/bpa.html.

Kristensen, Kasper, Anders Nielsen, Casper W. Berg, Hans Skaug, and Bradley M. Bell. 2016. “TMB : Automatic Differentiation and Laplace Approximation.” Journal of Statistical Software 70 (5). https://doi.org/10.18637/jss.v070.i05.

Lin, J. 1991. “Divergence Measures Based on the Shannon Entropy.” IEEE Transactions on Information Theory 37 (1): 145–51. https://doi.org/10.1109/18.61115.

McElreath, Richard. 2016. Statistical Rethinking: A Bayesian Course with Examples in R and Stan. Chapman & Hall/CRC Texts in Statistical Science Series 122. Boca Raton: CRC Press/Taylor & Francis Group.

Millar, R. B. 2011. Maximum Likelihood Estimation and Inference: With Examples in R, SAS, and ADMB. Statistics in Practice. Chichester, West Sussex: Wiley.

Plummer, Martyn. 2015. “JAGS Version 4.0.1 User Manual.” http://sourceforge.net/projects/mcmc-jags/files/Manuals/4.x/.

R Core Team. 2015. “R: A Language and Environment for Statistical Computing.” Vienna, Austria: R Foundation for Statistical Computing. http://www.R-project.org/.