Escanaba Lake Walleye

  1. The abundance of age-0 fish are the recruits and the abundance of age-5 fish is the spawning stock.
  2. The relationship between the abundance of age-0 and age-5 fish is weak at best (see figure further below). I do not expect the Ricker stock-recruitment model to fit well.
  3. The equation for the density independent model is R=7.36S. The equation for the Ricker model is R=26.53S*exp(-0.00109S).
  4. The figure is shown further below.
  5. The estimated recruitment at the mean stock level of 1178 is 8668 for the independence model and 8668 (95% CI: 6403,11587) for the Ricker model.
  6. The density-dependent Ricker model fits the data significantly better than then density-independent model (\(p=0.0006\)). However, the proportion of variability explained is very low (quasi-r2=0.03).

R Appendix

library(FSA)
library(FSAdata)
library(nlstools)
library(dplyr)
library(magrittr)

data(WalleyeEL)
WalleyeEL %<>% mutate(logage0=log(age0),logage5=log(age5))
mnS <- mean(WalleyeEL$age5)
rckr <- srFuns(type="Ricker")
ind <- srFuns(type="independence")
## Multiplicative Model
svR <- srStarts(age0~age5,data=WalleyeEL,type="Ricker")
srR <- nls(logage0~log(rckr(age5,a,b)),data=WalleyeEL,start=svR)
bootR <- nlsBoot(srR)
cbind(estimates=coef(srR),confint(srR),confint(bootR))
tmp <- apply(bootR$coefboot,MARGIN=1,FUN=rckr,S=mnS)
predMeanR <- c(Estimate=rckr(mnS,a=coef(srR)),quantile(tmp,c(0.025,0.975)))
## Independence Model
svI <- srStarts(age0~age5,data=WalleyeEL,type="independence")
srI <- nls(logage0~log(ind(age5,a)),data=WalleyeEL,start=svI)
c(estimates=coef(srI),confint(srI))
predMeanI <- ind(mnS,a=coef(srI))
( test <- extraSS(srI,com=srR) )
( qrsq <- cor(WalleyeEL$age0,predict(srR))^2)
x <- seq(0,3000,length.out=499)     # many S for prediction
pRR <- rckr(x,a=coef(srR))          # predicted mean R for Ricker
pIR <- ind(x,a=coef(srI))           # predicted mean R for independence model
LCIR <- UCIR <- LCII <- UCII <- numeric(length(x))

for(i in 1:length(x)) {             # CIs for mean R @ each S
  tmp <- apply(bootR$coefboot,MARGIN=1,FUN=rckr,S=x[i])
  LCIR[i] <- quantile(tmp,0.025)
  UCIR[i] <- quantile(tmp,0.975)
}
ylmts <- range(c(pRR,LCIR,UCIR,pIR,LCII,UCII,WalleyeEL$age0))
xlmts <- range(c(x,WalleyeEL$age5))

plot(age0~age5,data=WalleyeEL,xlim=xlmts,ylim=ylmts,col="white",
     ylab="Age-0 Walleye",xlab="Age-5 Walleye")
polygon(c(x,rev(x)),c(LCIR,rev(UCIR)),col=rgb(0,0,0,1/3),border=NA)

points(age0~age5,data=WalleyeEL,pch=19)
lines(pRR~x,lwd=2)
lines(pIR~x,lwd=2,lty=2)
legend("topright",c("Ricker","Independence"),lwd=2,lty=1:2,bty="n")