Background
The Mica Tailrace Fish Indexing Study is a four year
program to estimate the effects of the addition of
two new turbines (Mica 5 and 6) on the ichyofauna and thermal regime in the
2.5 km of the Columbia River downstream of Mica Dam. A single year of
fish indexing data (2008) was also available from a previous program. As per
the Terms of Reference (TOR) the relative abundance, condition and spatial
distribution of the fish populations was assessed. In addition, changes in the
species evenness were also estimated.
Methods
Data
The data were provided by the Canadian Columbia River Inter-Tribal Fishery Commission (CCRIFC) in the form of an Access database. All data manipulation
was performed using R version 3.0.2 (Team, 2013).
Fish Indexing Data
Individuals were classified as fry (age-0), juvenile (age-1 and older subadults)
or adult (sexually mature) based on the following length cut-offs
Bull Trout |
< 120 |
< 400 |
Mountain Whitefish |
< 120 |
< 175 |
Rainbow Trout |
< 120 |
< 250 |
Kokanee |
< 100 |
< 250 |
Statistical Analysis
Hierarchical Bayesian models were fitted to the data using R version 3.0.2 (Team, 2013)
and JAGS 3.3.0
(Plummer, 2012) which interfaced with each other via
jaggernaut 1.7 (Thorley, 2014). For additional information on hierarchical Bayesian modelling in the BUGS language, of which JAGS uses a dialect, the reader is referred to Kery and Schaub (2011) pages 41-44.
Unless specified, the models assumed vague (low information) prior distributions (Kéry and Schaub, 2011, p. 36). The posterior distributions were estimated from a minimum of 1,000 Markov Chain Monte Carlo (MCMC) samples thinned from the second halves of three chains (Kéry and Schaub, 2011, pp. 38-40). Model convergence was confirmed by ensuring that Rhat (Kéry and Schaub, 2011, p. 40) was less than 1.1 for each of the parameters in the model (Kéry and Schaub, 2011, p. 61). When possible model adequacy was confirmed by examination of residual plots.
The posterior distributions of the fixed (Kéry and Schaub, 2011, p. 75) parameters
are summarised below in terms of a point estimate (mean), lower and upper 95% credible limits (2.5th and
97.5th percentiles), the standard deviation (SD), percent relative error (half the 95% credible interval as a percent of the point estimate) and significance (Kéry and Schaub, 2011, p. 37,42).
The results are displayed
graphically by plotting the modeled relationships between particular
variables and the response with 95%
credible intervals (CRIs) 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)
(Kéry and Schaub, 2011, pp. 77-82). Where informative the influence of particular variables is expressed in terms
of the effect size (i.e., percent change in the response variable) with
95% credible intervals
(Bradford et al. 2005). Through the report
bull trout data and estimates are plotted in black while rainbow trout are plotted in red. Plots were produced using the ggplot2 R package (Wickham, 2009).
Body Condition
The annual variation in condition (body weight when accounting for body length) was
estimated from the boat and backpack electrofishing captures using a mass-length model (He et al. 2008).
Key assumptions of the condition model include:
- Weight varies with body length as an allometric relationship,
i.e., \(W = \alpha L^{\beta}\).
- \(\alpha\) varies with year.
- \(\beta\) varies with year.
- The residual variation in weight is log-normally distributed.
Preliminary analyses indicated that site and day of the year were not informative
predictors of condition.
Relative Abundance
The annual variation in relative abundance was estimated from the boat
count and catch data using an over-dispersed Poisson model (Kéry, 2010; Kéry and Schaub, 2011, pp. 168-170,180 and 55-56).
Lineal densities are by kilometre of river (as opposed to kilometre of bank).
Key assumptions of the relative abundance model include:
- Lineal density varies with year.
- Lineal catch density is a fixed proportion of lineal count density.
- Expected counts (and catches) are the product of the count
(catch) density and the length of river (half the length of bank) sampled.
- Observed counts (and catches) are described by a Poisson-gamma distribution.
Preliminary analyses indicated that site was not an informative predictor
of lineal density.
The model does not distinguish between the abundance and observer efficiency, i.e., it estimates the count which is the product of the two. As such it is necessary to assume that changes in observer efficiency by year are negligible in order to interpret the estimates as relative abundance.
Species Evenness
The shannon index of evenness (\(E\)) was calculated from the relative abundance
analyses for the adult salmonids using the following
formula where \(S\) is the number of species (in this case four)
and \(p_i\) is the proportion of the sum of the relative abundances belonging to the ith species.
\[ E = \frac{-\sum p_i \log(p_i)}{ln(S)}\]
Model Code
The first three tables describe the JAGS distributions, functions and operators used in the models. For additional information on the JAGS dialect of the BUGS language see the JAGS User Manual (Plummer, 2012).
JAGS Distributions
dgamma(shape, rate) |
Gamma distribution |
dlnorm(mu, sd^-2) |
Log-normal distribution |
dnorm(mu, sd^-2) |
Normal distribution |
dpois(lambda) |
Poisson distribution |
dunif(a, b) |
Uniform distribution |
JAGS Functions
length(x) |
Length of vector x |
log(x) |
Natural logarithm of x |
JAGS Operators
<- |
Deterministic relationship |
~ |
Stochastic relationship |
1:n |
Vector of integers from 1 to n |
a[1:n] |
Subset of first n values in a |
for (i in 1:n) {...} |
Repeat … for 1 to n times incrementing i each time |
x^y |
Power where x is raised to the power of y |
Variable and parameter definitions and JAGS model code for the analyses are presented below.
The model code adopts the following naming conventions:
- Data variables are named using upper camel case, i.e., site length is
SiteLength
.
- The number of levels of a discrete data variable
Factor
is referenced by nFactor
.
- Estimated parameters are named using upper camel case prefixed by a lower case character, i.e.,
bDensityRegime
.
- The SD of a vector of estimated random effects
bRandom
is indicated by sRandom
.
- Unless stated otherwise all effects are linear.
Body Condition
bWeightAlpha |
Intercept for eAlpha |
bWeightAlphaYear[i] |
Effect of ith Year on eAlpha |
bWeightBeta |
Intercept for eBeta |
bWeightBetaYear[i] |
Effect of ith Year on eBeta |
eAlpha[i] |
Predicted allometric intercept (on centred log length) for ith fish |
eBeta[i] |
Predicted allometric slope for ith fish |
eWeight[i] |
Predicted weight of ith fish |
Length[i] |
Centred log Length of ith fish |
sWeight |
SD of residual variation in log(Weight) |
Weight[i] |
Weight of ith fish |
Year[i] |
Year of capture of of ith fish |
Body Condition - Model 1
model{
bWeightAlpha ~ dnorm(5, 5^-2)
bWeightBeta ~ dnorm(3, 5^-2)
bWeightAlphaYear[1] <- 0
for(i in 2:nYear) {
bWeightAlphaYear[i] ~ dnorm(0, 2^-2)
}
bWeightBetaYear[1] <- 0
for(i in 2:nYear) {
bWeightBetaYear[i] ~ dnorm(0, 2^-2)
}
sWeight ~ dunif(0, 5)
for (i in 1:length(Weight)) {
eWeightAlpha[i] <- bWeightAlpha
+ bWeightAlphaYear[Year[i]]
eWeightBeta[i] <- bWeightBeta
+ bWeightBetaYear[Year[i]]
log(eWeight[i]) <- eWeightAlpha[i] + eWeightBeta[i] * Length[i]
Weight[i] ~ dlnorm(log(eWeight[i]), sWeight^-2)
}
}
Relative Abundance
bDensity |
Intercept for log(eDensity) |
bDensityYear[i] |
Effect of ith Year on log(eDensity) |
bEfficiencyVisitType[i] |
Value of log(eEfficiency) for ith VisitType |
Count[i] |
Number of fish counted or captured on ith site visit |
eAbundance[i] |
Predicted relative abundance for ith site visit |
eDensity[i] |
Predicted relative lineal density for ith site visit |
eDispersion[i] |
Predicted over-dispersion for ith site visit |
eEfficiency[i] |
Predicted efficiency relative to counting for ith site visit |
sDispersion |
SD of eDispersion |
SiteLength[i] |
Length of bank surveyed on ith site visit |
VisitType[i] |
Type of ith site visit, i.e., count versus catch |
Year[i] |
Year of ith site visit |
Relative Abundance - Model 1
model{
bEfficiencyVisitType[1] <- 0
for (i in 2:nVisitType) {
bEfficiencyVisitType[i] ~ dnorm(0, 2^-2)
}
bDensity ~ dnorm(0, 5^-2)
bDensityYear[1] <- 0
for(i in 2:nYear) {
bDensityYear[i] ~ dnorm(0, 5^-2)
}
sDispersion ~ dunif(0, 5)
for (i in 1:length(Year)) {
log(eEfficiency[i]) <- bEfficiencyVisitType[VisitType[i]]
log(eDensity[i]) <- bDensity
+ bDensityYear[Year[i]]
eAbundance[i] <- eDensity[i] * SiteLength[i] / 2
eDispersion[i] ~ dgamma(1 / sDispersion^2, 1 / sDispersion^2)
Count[i] ~ dpois(eAbundance[i] * eEfficiency[i] * eDispersion[i])
}
}