VonBertalanffyExtra Apostila r



Comments



Description

fishR Vignette - Von Bertalanffy Growth Model - ExtraDr. Derek Ogle, Northland College March 2, 2013 XXX THIS IS A WORK IN PROGRESS XXX The von Bertalanffy growth model (VBGM) was introduced in a separate vignette. This vignette builds on the previous vignette but contains some extensions from the more “traditional” use of the VBGM. The functions required to perform growth analyses in R are contained in the packages loaded below, > library(FSA) > library(FSAdata) > library(nlstools) 1 1.1 Methods for Tag-Recapture Data Fabens (1965) In tag-recapture data the length at two times in the fish’s life is known, the amount of time between those two periods is known, but the age of the fish at those times is not known. Fabens (1965) provided a modification of the traditional VBGM (see Appendix 6.1) for the derivation) that can be used to estimate L∞ and K (but not t0 ) with this type of data. As with the traditional VBGM there are many parameterizations of Fabens modified model. The two most popular parameterizations appear to be, Lr = Lm + (L∞ − Lm ) 1 − e−Kδt and Lr − Lm = (L∞ − Lm ) 1 − e−Kδt (2) (1) where Lm is the length of the fish at the time of marking (tm ), Lr is the length of the fish at the time of recapture (tr ), δt is the “time-at-large” (i.e., tr − tm )), and the other parameters are as defined previously (but see Francis (1988)). Model (1) is preferred over (2) for fitting because the left-hand-side contains only the response variable. Note also that this is a two-parameter (L∞ and K ) model. Fabens’ method requires the length-at-marking, length-at-recapture, and the length of time between marking and recapture. As an example of this method, Baker et al. (1991) recorded these three variables for rainbow trout from the Kenai River. These data are loaded and viewed with, > data(RBTroutKenai) > str(RBTroutKenai) 'data.frame': 102 obs. of 3 variables: $ Lr: int 249 272 279 295 305 312 320 324 330 334 ... $ Lm: int 239 259 244 281 300 241 218 234 321 245 ... $ dt: num 0.175 0.06 0.211 0.093 0.06 ... > view(RBTroutKenai) Lr Lm dt 13 345 269 0.824 1 22 34 51 67 72 365 384 408 437 448 238 297 310 323 448 1.087 0.887 1.060 1.246 0.090 Fabens’ model is a non-linear model; therefore, initial values of L∞ and K must be supplied to nls(). Graphical procedures for finding initial values have not been developed for Faben’s model. However, a simple starting value for L∞ is the maximum length in the data frame, > max(RBTroutKenai$Lr) [1] 731 A reasonable starting value for K can be found with, ¯ r ) − log (L ¯m) log (L tr − tm Kinit = which is made more robust by averaging across all fish in the sample, > with(RBTroutKenai,mean((log(Lr)-log(Lm))/dt)) [1] 0.2447 These initial values are then entered into a list as shown for the traditional VBGM. For example, > Fabens.sv <- list(Linf=730,K=0.25) The model is declared with > fvb <- vbFuns("Fabens") and fit and summarized with > FVB1 <- nls(Lr ~ fvb(Lm,dt,Linf,K),start=Fabens.sv,data=RBTroutKenai) > summary(FVB1,correlation=TRUE) Formula: Lr ~ fvb(Lm, dt, Linf, K) Parameters: Estimate Std. Error t value Pr(>|t|) Linf 552.2012 20.3894 27.1 < 2e-16 K 0.4677 0.0584 8.0 2.2e-12 Residual standard error: 35.2 on 100 degrees of freedom Correlation of Parameter Estimates: Linf K -0.84 Number of iterations to convergence: 11 Achieved convergence tolerance: 6.28e-06 2 dt.b).K=0.2 on 100 degrees of freedom Correlation of Parameter Estimates: Linf K -0.sv.Linf.27e-06 Fabens’ model has been criticized or modified by many authors (see following sections).b=0) WVB1 <. > > > > wvb <. > fvb2 <.2e-12 Residual standard error: 35.sv <.start=Fabens. Linf.correlation=TRUE) Formula: dL ~ fvb2(Lm.1 < 2e-16 K 0.dt.25.nls(dL ~ fvb2(Lm.nls(dL ~ wvb(Lm.84 Number of iterations to convergence: 11 Achieved convergence tolerance: 6. dt.RBTroutKenai$Lr-RBTroutKenai$Lm and then fitting the model.vbFuns("Fabens2") > FVB2 <.data=RBTroutKenai) summary(WVB1.K). Error t value Pr(>|t|) Linf 552. (1995) noted that Fabens’ method assumes that each fish follows the same growth curve and does not take into account individual growth variability and further noted that this characteristic caused Fabens’ method to produce biased and inconsistent parameter estimates.list(Linf=730. Wang (1998) proposed a slightly modified model of Lr − Lm = (a + bLm ) 1 − e−Kδt The first model is fit with. Wang (1998) provided a solution to this problem.data=RBTroutKenai) > summary(FVB2.Linf.0584 8. K.K. Linf.3894 27.sv.correlation=TRUE) Formula: dL ~ wvb(Lm.0 2. he defined the model ¯ m − Lm Lr − Lm = l∞ + β Lm − L 1 − e−Kδt where l∞ is the mean L∞ “over the recapture population” and β is a new parameter that XXXX.2012 20. > RBTroutKenai$dL <.start=Wang.vbFuns("Wang") Wang. dt. Specifically.4677 0. K) Parameters: Estimate Std.The second version – using length increments – can be fit by first constructing the length increments. 2 Wang(1998) Wang et al. b) 3 . correlation=TRUE) Formula: dL ~ wvb2(Lm.23e-06 XXX I have not yet been able to verify these calculations XXX 2.25. dt.910 34.9 on 99 degrees of freedom Correlation of Parameter Estimates: Linf K K -0.660 2.a.6 0.713 0.1 Francis(1988) Francis (1988) noted that L∞ and K do not have the same meanings in Fabens’ and the traditional VBGM. Error t value Pr(>|t|) K 1.8e-08 d -0.336 0.list(K=0.73 -0. d) Parameters: Estimate Std.587 14.13 1.nls(dL ~ wvb2(Lm.664 0.K. βgα −αgβ (gα −gβ )−Lm Lr = Lm + 1− 1+ gα −gβ α−β δt 4 . To address these issues he suggested the following parameterization.0 <2e-16 K 1.vbFuns("Wang2") Wang2.4 <2e-16 Residual standard error: 30.sv <.011 b 0.1e-07 Residual standard error: 30.start=Wang2.349 32.67 0.24 9.88 d 0. In addition. he noted the very high correlation between these two parameters in Fabens’ model.89e-06 The second model is fit with.011 a 213. Error t value Pr(>|t|) Linf 458.660 2. a. K.9 on 99 degrees of freedom Correlation of Parameter Estimates: K a a -0.d).95 Number of iterations to convergence: 8 Achieved convergence tolerance: 3.data=RBTroutKenai) summary(WVB2.sv.73 Number of iterations to convergence: 8 Achieved convergence tolerance: 3.Parameters: Estimate Std.60 0.064 -5.064 10.a=200.713 0.d=1) WVB2 <.898 6.dt. > > > > wvb2 <.95 b -0. 2 Baker et al. XXX MORE HERE XXX 5 .where gα and gβ are parameters that represent the mean growth rate at the arbitrary ages α and β . XXX MORE HERE XXX 2. (1991) Finally. Baker et al. (1991) provide modifications of Fabens method that produce analogues to Schnute’s four-parameter growth model. If interest is fully in W P and not ts . Thus. The “winter point” is half-way between the starts of two consecutive seasonal oscillations.. and L∞ . when t = t0 . Pauly et al.3 3. Values of C ¿1 (or ¡0) allow seasonal decreases in average length-at-age. growth during the winter (Figure 1). The ts is harder to visualize because it is the very start of a convex oscillation on a curve (the traditional von Bertalanfy growth model) that is is already convex (Figure 2). Thus. but could result from size-dependent overwinter mortality. Somers (1988) proposed the following formula for modeling seasonal growth that rectified this situation1 : E [L|t] = L∞ 1 − e−K (t−t0 )−S (t)+S (t0 ) with CK sin(2π (t − ts )) 2π (3) S (t) = where E [L|t] is the expected or average length at time (or age) t.e.e. many authors refer to the “winter point”. C modulates the amplitude of the growth oscillations and corresponds to the proportion of decrease in growth at the depth of the oscillation (i. This model has two more parameters then the traditional VBGM. Figure 1). is highly popular. where growth is slowest and is the “bottom” of the seasonal oscillation (Figure 2).5 (Figure 2).1 Modeling Seasonal Growth Oscillations Background Numerous models to describe the seasonal growth of organisms have been proposed. Pauly (1988)). but not stopped. W P = ts + 0. Pitcher and MacDonald (1973) and Pauly and Gaschutz (1979) modified the traditional VBGM to incorporate seasonal growth oscillations by including a sine function with a period of one year. (2012) about assuring that the correct formula for this equation is used in all analyses. but most often cited from its description in Somers (1988). this model will be referred to as Somers’ model throughout this vignette. Somers (1988) showed that these modifications produced a model that only fulfilled the definition of t0 (i. then there is no seasonal oscillation and the model reduces to the traditional VBGM (Figure 1). and might not seem realistic in organisms whose skeletons largely preclude shrinkage (Pauly et al.g. 6 . or E [L|t] = L∞ 1 − e−K (t−t0 )−R(t)+R(t0 ) with CK sin(2π (t − W P + 0. If C = 1. K . Nearly all these models are a modification of the traditional VBGM that allows for seasonal oscillations in length within each growth year. and t0 are as defined above. the seasonal oscillations began at t = t0 )..5)) 2π (4) R(t) = 1 Note the warning expressed in Garcia-Berthou et al. The model originally proposed by Hoenig and Hanumara in an unpublished report (Hoenig and Hanumara 1990. Values of 0¡C ¡1 result in reduced. 1992). However. “winter”). then the model of Somers (1988) can be modified by substituting ts = W P − 0. then growth completely stops once a year at the “winter-point” (W P . ts is the time between time 0 and the start of the convex portion of the first sinusoidal growth oscillation. If C = 0.. Following other authors (e. These parameters warrant further discussion. thus.5 into St . L = 0) under a very strict circumstance (i. 1992).e. and W P =ts + 0.2.5 1. K =0.0 0. Hypothetical growth trajectory from age -0.5 3.2.0 Age (years) Figure 1.1. ts .5 1. and various values of C .5 0 0.0 1. t0 =0. K =0.1 to 3 for Somers’ model using L∞ =50.25 C=0.0 2.5 2. Vertical dotted lines are placed at t0 . t0 ts WP Length 0 0.0 Age (years) Figure 2. ts =0.5 3. t0 =0.0 2. and C = 0.7.0 1.0 10 20 30 40 0. Hypothetical growth trajectories from age -0.Length 10 20 30 40 C=0 C=1 C=0.5 and a horizontal dotted line at Lt = 0 to aid understanding. 7 . ts =0.7.1 to 3 for Somers’ model using L∞ =50.5 2. yrs. Starting values can be found with vbStarts using a formula of the form length~age as the first argument.(C * K)/(2 * pi) * sin(2 * pi * (t0 . > view(AnchovetaChile) 102 108 146 151 183 186 age. the simplest way to enter the Somers’ model function is to use vbFuns() with "Somers" as the only argument. ts) { if (length(Linf) > 1) { K <.type="Somers") > unlist(svbso) # unlist used for display purposes only Linf 24.(C * K)/(2 * pi) * sin(2 * pi * (t .1 18 18 18. of 3 variables: $ age.mon: int 42 44 51 52 53 42 43 44 45 46 .3 .data=AnchovetaChile.2 18. Starting values near 0.5 for ts and nearer to 1 for C are likely adequate for most species. For example.Linf[3] C <.ts)) Sto <. and t0 can be obtained as described in the vignette for the VBGM.vbFuns("Somers") ) function (t.55775 C 0.Linf[5] Linf <.. $ tl. The data are loaded and their structured is viewed with > data(AnchovetaChile) > str(AnchovetaChile) 'data. and type="Somers".cm cohort 15. Starting values for the Chilean anchoveta are found with > svbso <.Linf[1] } St <.90000 ts 0.2 Fitting Models in R Fitting Somer’s model will be illustrated with length-at-age data for Chilean anchoveta (Engraulis ringens ) extracted approximately from Figure 9 in Cubillos et al..cm~age. (2001).. A new variable of age in years is created with > AnchovetaChile$age. Thus. The range of possible values for both ts and C is from 0 to 1.ts)) 8 .56 1993 16.10000 Ths Somers’ model is a more complicated formula than the traditional VBGM function.27855 K t0 0.. $ cohort : int 1987 1987 1987 1987 1987 1988 1988 1988 1988 1988 .02256 -0.3.65 1996 10.74 1997 The age is recorded in months.mon/12 As with the traditional VBGM.frame': 207 obs. Somers’ model requires starting values for each parameter.mon 28 35 15 26 41 10 tl.cm : num 17. K .Linf[4] ts <. t0.vbStarts(tl. > ( vbso <. Starting values for L∞ ...50 1995 12.yrs <. K. the data frame where the two variables are found in the data= argument.91 1995 16. C.AnchovetaChile$age. Linf.19 1993 10.Linf[2] t0 <. 00000 -0. ts) Parameters: Estimate Std.to=5.Linf * (1 .9418 K 0.2383 0.t0) .7150 -0.89137 1.5% 97.05828 0.2651 ts 0.862 on 202 degrees of freedom Number of iterations to convergence: 18 Achieved convergence tolerance: 6.1082 0.09 < 2e-16 Residual standard error: 0.2834 0.cm~age.00000 A fitted line plot (Figure 3) can be obtained (manually) with > plot(tl.pch=19. For example.00000 0.17804 0.2898 0.03324 -0.3413 -----Correlation matrix: Linf K t0 C ts Linf 1.from=0.yrs.06224 K -0.coef(vbso1)). Linf.ts).1573 6. That object is then submitted to overview() from the nlstools package to extract model parameters and other summary information.03324 -0. C.07673 t0 -0. The results of nls() must be saved to an object.yrs.nls(tl.0426 8.ylab="Total Length (cm)") > curve(vbso(x.lwd=2.05828 0.0055 21.data=AnchovetaChile.06224 -0.4937 C 0.84 < 2e-16 K 0.6044 0.xlab="Age (years)".01997 ts 0.cm ~ vbso(age. t0. Error t value Pr(>|t|) Linf 21.01997 1.0000 -0.8e-15 t0 -0.1780 1.0261 11.Linf.07673 0.9765 23.97997 -0.K.9591 1.start=svbso) > overview(vbso1) -----Formula: tl.97997 1.C.col="red".data=AnchovetaChile.00000 0.St + Sto)) } <environment: 0x0e182ebc> The starting values and model function are then used with nls() to find the best fit model.8089 -0.10822 C -0.6448 1.8914 0.cm~vbso(age.3673 0.19e-06 -----Residual sum of squares: 150 -----Asymptotic confidence interval: 2.2e-09 ts 0.add=TRUE) The modified version of Somers’ model used to estimate the “winter point” directly can be fit very similarly as shown with (note use of "Somers2" and W P in the model function) 9 . > vbso1 <.80891 0. K.t0.0561 -10.07 6.4512 t0 -0.77 < 2e-16 C 0.yrs.5% Linf 19.9549 0.63 1.exp(-K * (t . 7898 0. Linf.Total Length (cm) 6 8 10 12 14 16 18 1 2 3 4 Age (years) Figure 3. t0.vbFuns("Somers2") ) function (t.Linf.nls(tl.Linf[2] t0 <.8e-15 t0 -0.5)) Linf * (1 . Fitted line plot from the seasonally oscillating VBGM fit to the Chilean anchoveta data.t0.exp(-K * (t .90000 0.cm~vbso2(age.84 < 2e-16 K 0.cm~age.1573 6.0055 21. C. K.0426 8.6044 0. WP) { if (length(Linf) > 1) { K <.9549 0.2e-09 WP 0.WP + 0.K.24 < 2e-16 10 . WP) Parameters: Estimate Std.5)) Rto <.Linf[5] Linf <.(C * K)/(2 * pi) * sin(2 * pi * (t0 .(C * K)/(2 * pi) * sin(2 * pi * (t .WP + 0. Linf.type="Somers2") > unlist(svbso2) # unlist used for display purposes only Linf K t0 C WP 24.3673 0.data=AnchovetaChile.77 < 2e-16 C 0.02256 -0.Linf[3] C <.9592 1.27855 0. Error t value Pr(>|t|) Linf 21.55775 0.Linf[4] WP <.yrs.WP).yrs. K.07 6.0561 -10.0261 30. C.t0) .90000 > ( vbso2 <.vbStarts(tl.Linf[1] } Rt <.C. t0.Rt + Rto)) } <environment: 0x080f1e5c> > vbso2 <. > svbso2 <.yrs.data=AnchovetaChile.start=svbso2) > overview(vbso2) -----Formula: tl.cm ~ vbso2(age.63 1. 05828 0.00000 0.00000 0.2651 WP 0.97997 1.00000 -0.03324 -0.4512 t0 -0.7150 -0.01997 1.01997 WP 0.10823 C -0.07673 t0 -0.0000 -0.06224 K -0.9419 K 0.03324 -0.5% 97.8413 -----Correlation matrix: Linf K t0 C WP Linf 1.9765 23.05828 0.07673 0.862 on 202 degrees of freedom Number of iterations to convergence: 19 Achieved convergence tolerance: 7.06224 -0.97997 -0.89138 1.6448 1.Residual standard error: 0.1082 0.67e-06 -----Residual sum of squares: 150 -----Asymptotic confidence interval: 2.8914 0.4937 C 0.8089 -0.5% Linf 19.7383 0.00000 11 .17804 0.1780 1.2834 0.80891 0. data=df. Before showing these methods.3569 Then. and K2 t2 − K1 t1 K2 − K1 tc = This model is difficult to fit because it is essentially a piecewise model where the critical point of switching between the two pieces depends on parameters in the model. these parameters will change during the iterations required for fitting the model) and the observed ages.41 parameters. which cannot be taken with an “if” component to the model.start=svbs) ( c. K1 =0. resulting in .list(Linf=40. a function must first be created that returns the predicted lengths from the model given a current set of parameters (i.to=0) mdl <. A view of these data is shown below2 . the model effectively contains an “if” statement.4 Double von Bertalanffy Vaughan and Helser (1990) introduced and Porch et al. that the starting values were found graphically with growthModelSim("vbTypical". t1 and t2 are the ages when the average size is zero for each group. K1 and K2 are Brody growth rate coefficients for the two groups.053. tc =3.nls <. Fitting this form of model is difficult with nls() because nls() depends on derivatives of the function. Thus. (2002) explored the so-called “double” VBGM that allows the fitting of one Beverton-Holt VBGM to fish less than some “critical” age (tc ) and a different Beverton-Holt VBGM to fish greater than that critical age. To use optim().len~Linf*(1-exp(-K*(age-to))) fit.64 28 38. L∞ ∗ 1 − e−K1 (t−t1 ) L∞ ∗ 1 − e−K2 (t−t2 ) if t < tc if t ≥ tc E [L|t] = (5) where L. and L∞ are as defined previously. the same model is fit to the same data using optim(). t1 =0.e. other algorithms in R – specifically.data=df). first by using optim() to fit the typical VBGM and then showing how to use it for fitting the double VBGM.50 20 38.nls) ) K to 0. t. t2 =8.nls(mdl.114.3620 -0.K=0. The process of using optim() to fit a VBGM is illustrated below. the second must be K .86 35 The traditional Beverton-Holt VBGM is fit to these data with nls()3 > > > > svbs <. was created and stored in the df data frame. for comparative purposes.99 9 35. optim() requires a manual setup of the function to be minimized.nls <.20.coef(fit. Unfortunately.291. Fortunately..412.39 4 33. The model is parameterized as follows. optim() – can be used to find the minimum of a function without requiring the calculation of derivatives. 3 Note 2 The 12 . K2 =0.2949 Linf 37.len age.25 3 29. > view(df) 539 791 1599 2458 2666 2764 len age 29. Such a function is shown below where the first argument is a vector of parameter values4 and the second argument is vector of the observed ages. algorithm for creating these data can be seen by examining the R code script found in last section of this vignette. note that hypothetical data that follows a the double VBGM with L∞ =40. and the third must ∞ be t0 . 4 Note that this function is hard-wired such that the first parameter must be L . o$par Linf 37.params[1]. different between the optim() and nls() results (Figure 4). it is evident that the parameter estimates are slightly.age) { Linf <.function(params) { K1 <. and t2 . K2 <. respectively.> sVonB <. Linf*(1-exp(-K2*(age-t2)))) } The function to compute the sum of squared residuals is a simple modification of the previously used function.params[5] (K2*t2-K1*t1)/(K2-K1) } The function to constructed predicted lengths from double VBGM equation is then constructed as shown below. > dVonB <.params[4]. t2 <. > fit.function(params..params[1].age))^2) } Finally. K <. The function below performs this calculation using only a vector of parameter values as an argument5 .params[4].method="BFGS") The estimated parameters are extracted from the par portion of the object returned by optim() as follows > fit. > tc <.e. K2 <.age) { sum((len-sVonB(params. 13 . Such a function is shown below where the first argument is again the vector of parameter estimates and the second and third arguments are the vectors of observed lengths and ages.sRSS.3620 -0.params[5] ifelse(age<tc(params).params[3].params[3]. and two arguments (hessian=TRUE and method="BFGS") that control how the optim() routine will behave).params[3] Linf*(1-exp(-K*(age-to))) } The optim() function also requires a function that computes the residual sum-of-squares between the observed lengths and the predicted lengths.o <. the vectors of observed lengths and ages as the third and fourth arguments. > sRSS <. K1 . Using a similar process the double VBGM can fit be fit to the hypothetical data using optim().params[2].hessian=TRUE. The results should be assigned to an object as illustrated below. 5 Note that this function is hard-wired such that the parameter values must be in the order of L∞ . note the use of ifelse() to calculate the two “pieces” of the double VBGM. t2 <.optim(svbs. the RSS function that should be minimized as the second argument. t1 <.function(params.len=df$len.2948 From this. but imperceptibly. i. t1 <. So that the value of tc can be easily computed later it is useful to first construct a function to compute tc . to <.len.params[2].function(params.3568 K to 0. In this function. K1 <. Note how this function uses the function previously constructed to find predicted lengths.age) { Linf <.age=df$age.Linf*(1-exp(-K1*(age-t1))). optim() can be run by including the initial parameter guesses in the first argument. t1 . K1 .params[2]. 0.57933 > tc(fit.d$par [1] 39.77765 [1] 3.36.40651 0.age=df$age.0.> dRSS <.26.hessian=TRUE.c(37. > dvbs <. 14 .12306 -7.d$par) 6 Note that there is not an automatic way to construct the starting values.age))^2) } Finally.3) > fit.function(params. optim() is used as described previously and shown below6 The final model fit is shown in (Figure 4).len=df$len.-0.-3.02995 0.d <.dRSS.333 0.age) { sum((len-dVonB(params.3.optim(dvbs.len.method="BFGS") > fit. (5). jittered) Figure 4. fit to RANDOM data. optim double 0 10 20 30 40 10 Age (years.Total Length (mm) 20 30 40 single. nls single. 15 . Example of the fit of a double VBGM. porchVB(fit.lty=1) 16 . lambda2 <. (2002) WORKING ON THIS > > > > > > > > > > > > > > > > > > > > > > > > > > > > df$age1 <.0475.params[3] Linf*(1-exp(beta1(params.function(params.p.params[2]. ts <.params[5].0.lwd=2.age=df$age1.0.4.xlab="Age (years)".data=df.ages) plot(len~age1.params[1].params[4].301. lambda1 <.695.params[3] K1/lambda1*(exp(-lambda1*age)-exp(-lambda1*to)) } beta2 <. K0 <.p <.476. to <.optim(pvbs.0.c(43.params[8] (K2/(4*pi^2+lambda2^2))*(exp(-lambda2*age)*(2*pi*cos(2*pi*(ts-age))-lambda2*sin(2*pi*(ts-age)))-e } porchVB <.params[5].col="blue".439) fit.df$age + runif(length(df$age).function(params.len=df$len.ages.3.age) { K1 <.ylab="Total Length (mm)".5 Model of Porch et al.age) { K1 <.age) { Linf <.344.0.pred. lambda1 <. to <.function(params.age))^2) } pvbs <.age)+beta2(params.params[6].method="BFGS") fit. to <.hessian=TRUE.0.07) beta1 <.pch=".p.p$par.age)-K0*(age-to))) } porchRSS <.len) { sum((len-porchVB(params.") lines(p.p$par pred.age.443.params[4].0.0.params[7].params[3] K2 <.porchRSS.p <.function(params.0. A maximum likelihood approach for estimating growth from tag-recapture data. Ogle. I. Beyond our original horizons: The tropicalization of Beverton and Holt. 1965. 1988. Gaschutz. ices c.C. A general growth model for mark-recapture data. 3 Wang. 1988. D. Reviews in Fish Biology and Fisheries 22:635–640. M. 73o W): A consequence of their reproductive strategy to seasonal upwelling? Aquatic Living Resources 14:115–124. An improved Fabens method for estimation of growth parameters in the von Bertalanffy model with individual asymptotes. 4 Garcia-Berthou.-G. 2001.. Department of Commerce.S. 1990. Soriano-Bartz. Fishbyte 6(1):8–11. 6 Porch. A technical note on seasonal growth models. II. 6 Hoenig. Status of the red drum stock of the atlantic coast: stock assessment report for 1989. and T. I. 6 Pitcher. and M. A new model accounting for seasonal cessation of growth in fishes. Growth 29:265–289. 5 Cubillos. and A. Fisheries Research 11:257–281. E. 6 Pauly. Fisheries Bulletin 100:149–152. 1979. 6 Pauly. C. Y. E. Demersal Fish Comittee 1979/6:24:1–26. Helser. G. A. U. F. Two models for seasonal growth in fishes. and P. with a program for pocket calculators. Canales. J. and D. and T.. H. D. Canadian Journal of Fisheries and Aquatic Sciences 55:397–400. E. 12 Wang. Chile (37o S. Journal of Applied Ecology 10:599–606. D. A simple method for fitting oscillating length growth data. CM . Wilson. 1973. 12 Somers. Nieland. 2002. On a seasonally oscillating growth function.m. and D. 8 Fabens.. 6 Pauly. 2012. 1992. D. L. Fishbyte 8:32–34. M.. R. Arcos. R. N. D. Q. C. Are growth parameters estimated from tagging and age-length data comparable? Canadian Journal of Fisheries and Aquatic Sciences 45:936–942. 1990. NOAA Technical Memorandum NMFS-SEFC-263. Y.. and R. Bucarey. Properties and fitting of the von Bertalanffy growth curve. 1. 1988.. MacDonald. 1995. and I. Thomas. S. 6 Vaughan. Reviews in Fish Biology and Fisheries 8:307–334. 1. T. 1 Francis. Hanumara. Canadian Journal of Fisheries and Aquatic Sciences 52:252–259.-G. 1991. 1998.S. Marine and Freshwater Research 43:1151–1156. and G. An empirical comparison of seasonal growth models. R. Somers. D. A. L.References Baker. Merciai.E. Carmona-Catot. Jarre-Teichmann. 3 17 . Lafferty. T. A new growth model for red drum (Sciaenops ocellatus ) that accomodates seasonal and ontogenic changes in growth rates. Moreau. Seasonal growth of small pelagic fish off Talcahuano. 1 Appendix Derivation of Fabens (1965) Increment Model First Version Define the length at time of marking (tm ) as Lm = L∞ 1 − e−K (tm −t0 ) which is immediately rewritten as. Lr = L∞ 1 − L∞ − Lm −Kδt e L∞ Lr = L∞ − (L∞ − Lm ) e−Kδt Some authors will further modify this (note the addition of Lm − Lm ) to get. (8) (7) (6) Lr = L∞ 1 − e−K (tm +δt−t0 ) Lr = L∞ 1 − e−K (tm −t0 ) e−Kδt and now substitute in the last expression in (6) and simplify to get.6 6. Lr = Lm + L∞ − Lm − (L∞ − Lm ) e−Kδt Lr = Lm + (L∞ − Lm ) − (L∞ − Lm ) e−Kδt Lr = Lm + (L∞ − Lm ) 1 − e−Kδt 18 . Lm = 1 − e−K (tm −t0 ) L∞ Lm − 1 = −e−K (tm −t0 ) L∞ Lm 1− = e−K (tm −t0 ) L∞ L∞ − Lm = e−K (tm −t0 ) L∞ Similarly. the length at time of recapture (tr ) is Lr = L∞ 1 − e−K (tr −t0 ) and define δt as “time-at-large” such that tr = tm + δt Substitute (8) into (7) for tr and simplify. for example if the “time-at-large” (δt) is “small” (near zero) then the length-at-marking and the lengthat-recapture should be approximately equal and both the LHS and the RHS of (9) will be approximately equal to 1. All combinations of two of these lengths were then taken as a mark and recapture pair. Thus. one can start the derivation by thinking of the increment in lengths Lr − Lm = L∞ 1 − e−K (tm +δt−t0 ) − L∞ 1 − e−K (tm −t0 ) Lr − Lm = L∞ − L∞ e−K (tm +δt−t0 ) − L∞ + L∞ e−K (tm −t0 ) Lr − Lm = L∞ e−K (tm −t0 ) − L∞ e−K (tm +δt−t0 ) Lr − Lm = L∞ e−K (tm −t0 ) 1 − e−Kδt Now.2 More Algebra Related to the Fabens (1965) Model Understanding how the Faben’s model “works” is sometimes difficult to visualize. L∞ − Lm = L∞ e−K (tm −t0 ) which can be substituted into the above to get Lr − Lm = (L∞ − Lm ) 1 − e−Kδt 6. 19 . as the “time-at-large” increases the RHS will be smaller and Lr will be closer to L∞ than Lm making the LHS also smaller. However. The predicted lengths at six ages were computed supposing that L∞ =400. other authors will present this model as a change in length. Lr − Lm = (L∞ − Lm ) 1 − e−Kδt which is easily modified to Lr − Lm = 1 − e−Kδt L∞ − Lm and then to L∞ − Lr = e−Kδt L∞ − Lm (9) which shows that Fabens model examines the relative “distances” of Lr and Lm from L∞ and models that ratio as an exponential decay model. K =0. more usefully. some algebra on the increment model may help in this regard. such that the “time-at-large” was computed as the difference in ages and the growth increment was computed as the difference in predicted lengths.Finally. This can be explored with hypothetical data. The results are shown in Table 1 and Figure 5. and t0 =0. Lr − Lm = (L∞ − Lm ) 1 − e−Kδt Second Version Alternatively. However. Begin with.5. note that Lm − L∞ = −L∞ e−K (tm −t0 ) or. 3 0.2 0.4 242.5 0.5 0.0 0. Results of several scenarious computed for hypothetical mark-recaptrue data from hypothetical von Bertalanffy data.8 191.0 399.3 0.5 0.011 15 14.2 −5 0.2 32.6 399.5 191.8 114.5 399.2 252.5 367.7 0.2 157.5 399.6 252.6 367.0 1.0 11.Table 1.5 0.4 95. Plots of the ratio (LEFT) and log ratio (RIGHT) on the LHS of (9) versus time-at-large (δt) for data from a hypothetical von Bertalanffy growth model.0 0.779 0.1 0.5 399.5 252.0 2.0 1.2 176.0 11 12 84 95 0 2 4 6 8 10 12 14 −6 0 2 4 6 8 10 12 14 Time−at−large Time−at−large Figure 5.8 146.0 1.3 1.6 191.5 0.0 12.861 2 2.0 399.705 7 5.002 9 14.0 13.0 367.2 208.2 399.0 252.0 1. 20 .4 −4 −3 −2 13 14 10 73 13 14 11 12 84 95 0.7 0.3 3.8 157.002 6 2.0 367.0 13.3 12.3 12.0 399.6 2 log('LHS Ratio') 'LHS Ratio' 0.7 252.5 157.002 10 5.5 5.0 1.002 5 14.5 399.014 14 14.2 32.4 0.3 0.2 61. L∞ −Lr Scenario Ager Agem δt Lr Lm δL L ∞ −Lm 1 1.0 9.157 8 13.4 242.6 157.0 1.5 1.4 209.002 13 13.0 5.8 1 15 6 0 −1 1 15 62 10 73 0.8 146.003 12 14.2 191.7 367.2 157.0 4.0 2.5 1.0 3.7 399.0 8.8 0.4 33.0 1.3 191.8 0. The numbers correspond to the “scenario” shown in Table 1.607 3 5.5 2.2 208.1 0.223 11 13.135 4 13.0 12.8 0. sciplot 1. gdata.2. xtable 1.7. nlstools 0.94. multcomp. utils Other Packages: FSA 0. formatR 0. TeachingDemos) 21 .8. grid 2. nlstools and their dependencies (car.0. relax 1.12.3.6.15.15.9. gtools 2.2 (2012-10-26) System: Windows. methods.0. graphics.15. stats.4. plotrix 3. grDevices. plotrix.0-16. FSAdata. nlme. knitr 0.1.8. datasets.Reproducibility Information Version Information ˆ Compiled Date: Sat Mar 02 2013 ˆ Compiled Time: 6:54:44 PM ˆ Code Execution Time: 3.4-6.3.52 s R Information ˆ ˆ ˆ ˆ R Version: R version 2.4. plyr 1. digest 0. tcltk.20-13. quantreg 4. multcomp 1. tools 2.1-108. Hmisc. cluster 1. quantreg.7-0 ˆ Loaded-Only Packages: car 2. stringr 0. evaluate 0. Hmisc 3. gdata 2. sciplot.10-1.2-16.9. reshape. SparseM 0.96. knitr.1-0.3.14.12.2 ˆ Required Packages: FSA.3. nlme 3. relax. FSAdata 0. gplots. lattice 0. i386-w64-mingw32/i386 (32-bit) Base Packages: base.0.0-14. tcltk.3. gplots 2.7.6. TeachingDemos 2. stats.2.3.11. reshape 0.4.
Copyright © 2024 DOKUMEN.SITE Inc.