Alaskan Slimy Sculpin A

  1. The plot is shown below. The data show a fairly obvious curve, a fairly obious asymptote, no fish less than age-1 are shown, and there is considerable variable in length at each age.
  2. The plot is shown below.
  3. The residual plot is shown below. There is a slight heteroscedasticity, no nonlinear, and approximate normality of the residuals.
  4. The typical von Bertalanffy equation is \(E(L|t)=77.8(1-e^{-0.46(t+0.61)})\).
  5. The asymptotic mean length of Slimy Sculpins is 77.8. The Brody growth coefficent, or the rate at which the mean length approaches the asymptotic mean length, is 0.46. The age at which the mean length is zero (i.e,. the x-intercept) is -0.61.
  6. The 95% confidence interval for the asymptotic mean length is 68.8 to 101.4, for the Brody growth coefficient is 0.23 to 0.75, and for the x-intercept is -1.42 to -0.14. The intervals for the asymptotic mean length and Brody growth coefficient are quite wide.
  7. The predicted mean length at age-3 is 63.1 (with 95% confidence interval from 61.7 to 64.4). This interval is fairly narrow because it is a confidence (rather than prediction) interval and age-3 is a well-represented age in the data.
  8. Slimy Sculpins will have reached half of their asymptotic length at age 1.50.

R Appendix

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

data(SculpinALTER)
vbTyp <- vbFuns("Typical")
svTyp <- vbStarts(tl~age,data=SculpinALTER,type="Typical")
fitTyp <- nls(tl~vbTyp(age,Linf,K,t0),data=SculpinALTER,start=svTyp)
bootTyp <- nlsBoot(fitTyp)
estsTyp <- cbind(Est=coef(fitTyp),confint(bootTyp))
p3Typ <- apply(bootTyp$coefboot,MARGIN=1,FUN=vbTyp,t=3)
p3Typ <- c(Est=vbTyp(3,coef(fitTyp)),quantile(p3Typ,c(0.025,0.975)))
halfLinf <- log(2)/coef(fitTyp)[["K"]]
x <- seq(0,5,length.out=199)
pTyp <- vbTyp(x,Linf=coef(fitTyp))
xlmts <- range(c(x,SculpinALTER$age))
ylmts <- range(c(pTyp,SculpinALTER$tl))
plot(tl~age,data=SculpinALTER,xlab="Age", ylab="Total Length (mm)",xlim=xlmts,
     ylim=ylmts,pch=19,col=rgb(0,0,0,1/3))
lines(pTyp~x,lwd=2)
LCI <- UCI <- numeric(length(x))
for(i in 1:length(x)) {
  tmp <- apply(bootTyp$coefboot,MARGIN=1,FUN=vbTyp,t=x[i]) 
  LCI[i] <- quantile(tmp,0.025) 
  UCI[i] <- quantile(tmp,0.975)
}
ylmts <- range(c(pTyp,LCI,UCI,SculpinALTER$tl))
lines(UCI~x,lwd=2,lty="dashed")
lines(LCI~x,lwd=2,lty="dashed")
residPlot(fitTyp)

Alaskan Slimy Sculpin B

  1. The plot is shown below.
  2. The residual plot is shown below. There is a slight heteroscedasticity, no nonlinear, and approximate normality of the residuals.
  3. The typical von Bertalanffy equation is \(E(L|t)=77.8-(77.8-19.1)(1-e^{-0.46t})\).
  4. The asymptotic mean length of Slimy Sculpins is 77.8. The Brody growth coefficent, or the rate at which the mean length approaches the asymptotic mean length, is 0.46. The mean length at age-0 is (i.e., the y-intercept) is 19.1.
  5. The common parameter estimates from the typical and the original parameterizations of the von Bertalanffy are the same. This is because a parameterization is the same model, just with different parameters.
  6. The predicted mean length at age-3 is 63.1 (with 95% confidence interval from 61.8 to 64.4). This prediction is the same as that from fitting the typical model (within rounding for the confidence intervals).

R Appendix

vbOrig <- vbFuns("Original")
svOrig <- vbStarts(tl~age,data=SculpinALTER,type="Original")
fitOrig <- nls(tl~vbOrig(age,Linf,K,L0),data=SculpinALTER,start=svOrig)
bootOrig <- nlsBoot(fitOrig)
estsOrig <- cbind(Est=coef(fitOrig),confint(bootOrig))
p3Orig <- apply(bootOrig$coefboot,MARGIN=1,FUN=vbOrig,t=3)
p3Orig <- c(Est=vbOrig(3,coef(fitOrig)),quantile(p3Orig,c(0.025,0.975)))
x <- seq(0,5,length.out=199)
pOrig <- vbOrig(x,Linf=coef(fitOrig))
xlmts <- range(c(x,SculpinALTER$age))
ylmts <- range(c(pTyp,SculpinALTER$tl))
plot(tl~age,data=SculpinALTER,xlab="Age", ylab="Total Length (mm)",xlim=xlmts,
     ylim=ylmts,pch=19,col=rgb(0,0,0,1/3))
lines(pOrig~x,lwd=2)
LCI <- UCI <- numeric(length(x))
for(i in 1:length(x)) {
  tmp <- apply(bootOrig$coefboot,MARGIN=1,FUN=vbOrig,t=x[i]) 
  LCI[i] <- quantile(tmp,0.025) 
  UCI[i] <- quantile(tmp,0.975)
}
ylmts <- range(c(pOrig,LCI,UCI,SculpinALTER$tl))
lines(UCI~x,lwd=2,lty="dashed")
lines(LCI~x,lwd=2,lty="dashed")