Fits a general 4 parameter growth model to a non-decreasing Y-variate; synonym FITSCHNUTE
(A. Keen).
Options
PRINT = string tokens |
What to print (model , summary , estimates , correlations , fittedvalues , accumulated , monitoring ); default mode , summ , esti |
---|---|
T1 = scalar |
Timepoint defining y1; default the first timepoint with μ > 0.4 × y2 (μ and y2 are obtained by an approximating model) |
T2 = scalar |
Timepoint defining y2; default * takes the last observed timepoint |
NGRID = scalar |
The number of points for a grid search with parameters a and/or b; default 7 |
PLUS = scalar |
The constant added to the observed and fitted values, in order to obtain a suitable variance function in case of other than normal error distribution; default * takes the smallest possible value for the response given the rounding off |
A = scalar |
Fixed value for parameter a of the growth model, defining a submodel; only 0 is appropriate; default * |
B = scalar |
Fixed value for parameter b of the growth model; default * |
ALOWER = scalar |
Lower bound for parameter a of the growth model; default -40/(t2–t1) |
AUPPER = scalar |
Upper bound for parameter a of the growth model; default 40/(t2–t1) |
BLOWER = scalar |
Lower bound for parameter b of the growth model; default -20 |
BUPPER = scalar |
Upper bound for parameter b of the growth model; default 20 |
MAXCYCLE = scalar |
Maximum number of iterations; default 20 |
TOLERANCE = scalar |
Convergence criterion; default 0.0004 |
Parameters
T = variates |
Observed timepoints for each fit |
---|---|
MGRID = matrices |
Deviances from the gridsearch in a and/or b |
RT = pointers |
Pointer of two variates: the fitted growth rates and relative growth rates at the observed timepoints |
OWNT = variates |
A variate of arbitrary timepoints to be specified by the user e.g. for obtaining a smooth plot of fitted values |
ROWNT = pointers |
Pointer of three variates: the fitted values, growth rates and relative growth rates at the timepoints specified in OWNT |
EXTRA = pointers |
Pointer of eight scalars, with: 1) the starting point of the curve below which the response equals 0, 2) the endpoint of the curve where the reponse is infinite, 3) the lower asymptote of the curve, 4) the upper asymptote of the curve, 5) the inflexion point, 6) the fitted value at the point of inflexion, 7) the growth rate at the point of inflexion, 8) the relative growth rate at the point of inflexion; if no finite value for a scalar exists, the value is set to be missing |
Description
Schnute (1981) has described a general four parameter growth model for a continuous response y with an expectation μ that is a non-decreasing function of time t. The Method section contains a short overview of the essential features of the model, including the meaning of the parameters and the generality of the model. The parameterization is statistically stable. The procedure RSCHNUTE
has been developed to provide a robust tool for fitting this model. Numerical problems are reduced to a minimum, so that attention can be focused on proper model specification. The default settings are such that usually convergence is obtained without intervention. However, options and parameters have been included to control the iteration process if necessary.
The MODEL
directive must be set, outside the procedure, each time it is used. The MODEL
settings are changed within the procedure, so it must also be reset if any of the ordinary directives for fitting regressions, curves or generalized linear models is to be used after calling RSCHNUTE
.
Errors can be specified as Poisson, gamma and inverse normal as well as normal. Their variance function can be expressed as:
σ2 = k × ( μq ) ,
with q = 0, 1, 2 and 3 for the normal, Poisson, gamma and inverse normal distributions respectively. Increasing q implies increasing the importance of deviance contributions from observations with small values of μ. If μ is very small, the variance function is usually unrealistic for non-normal distributions, due to rounding and approximation errors. For the gamma and inverse normal distributions it is theoretically impossible to obtain observations equal to 0, but in practice, due to rounding and approximation errors, such observations do occur. In calculating the deviance, small values of y or μ cause numerical problems. Therefore, by default, a small constant c is added to y as well as to μ, leaving the model unaffected but changing the variance function to: σ2 = k × ( μ + c )q . Parameter PLUS
provides a means for specifying c.
Submodels are models with fixed values of parameters a and/or b of the growth model. They can be specified by setting the options A
and B
. The generality of the model can also be restricted by specifying a particular range of a and b, using the options ALOWER
, BLOWER
, AUPPER
and/or BUPPER
of the procedure.
Two of the model parameters, y1 and y2, can be modified by the user, by specifying the options T1
and T2
. This should be done very cautiously and only if proven necessary, because choice of T1
and T2
affects the iteration process considerably; however, suitable default values are provided.
Initial estimates of all four parameters of the growth model (or less, if A
and/or B
have been specified) are derived within the procedure, by fitting an approximate generalized linear model followed by a grid search. Usually it is not necessary to take any action in order to obtain convergence. If, however, some prior knowledge about the shape of the curve is available, the iteration process can be improved by restricting the range of a and b as far as possible. The number of gridpoints for the grid search can be changed by option NGRID
, with a maximum of 12. The deviances in the gridpoints can be saved setting parameter MGRID
. This allows inspection of the likelihood-surface (conditional on initial values for y1 and y2). The maximum number of iteration cycles and the convergence criterion can be set by the options MAXCYCLE
and TOLERANCE
.
The growth rate and relative growth rate at the observed timepoints can be saved by setting parameter RT
. Fitted values, growth rates and relative growth rates for arbitrary timepoints, given in parameter OWNT
, can be saved by setting parameter ROWNT
. This can be useful not only for a plot of the fitted curve and its derivative, but also for obtaining estimates of y1 and y2 with the same meaning in different situations. Special features of the fitted curve, (start- and end-point, asymptotes and various estimates at the point of inflexion) can be saved by setting the parameter EXTRA
.
Other results of the nonlinear regression can be obtained in the usual way outside the procedure, using the RKEEP
directive.
Options: PRINT
, T1
, T2
, NGRID
, PLUS
, A
, B
, ALOWER
, AUPPER
, BLOWER
, BUPPER
, MAXCYCLE
, TOLERANCE
.
Parameters: T
, MGRID
, RT
, OWNT
, ROWNT
, EXTRA
.
Method
The expectation μ of y satisfies the following equation (with parameters y1, y2, a and b):
μb = (y1b) + [ (y2b) – (y1b) ] × f(t; a)
with f(t; a) = { 1 – exp[ –a × (t–t1) ] } / { 1 – exp[-a × (t2–t1) ] }
For limiting forms of the equation, substitute:
f(t; a) = (t–t1) / (t2–t1) if a=0
xb = log(x) if b=0 ; x = μ, y1, y2
y1 and y2 are the values of μ at an early timepoint t1 and a late timepoint t2 respectively. Timepoints t1 and t2 must be fixed. y1 and y2 determine location and scale. The other two parameters, a and b, determine the shape of the curve, this can range from curves with horizontal asymptotes to curves with vertical asymptotes and includes the straight line, S-shaped curves (Richards and Von Bertalanffy curves), exponential and power curves. An overview of the submodels, showing the generality of the model, is presented in the table below.
a>0 b>0 | Generalized Von Bertalanffy: | y∞ × { 1 – exp[-a × (t–t0)] }1/b |
a>0 b=0 | Gompertz: | y∞ × exp{ -exp[-a × (t–t*)] } |
a>0 b<0 | Richards: |
y∞ × { 1 + h × exp[-a × (t–t0)] }1/b ; b=-h |
a=0 b>0 | power: | [ α + (β × t) ]1/b ; β > 0 |
a=0 b=0 | pure exponential: | α × (βt) ; β > 0 |
a=0 b<0 | power of inverse linear: | 1 / [α + (β × t) ]1/h ; β > 0, b=-h |
a<0 b>0 | power of exponential: | {α + [β × exp(-a × t)]1/b ; β > 0 |
a<0 b=0 | α × exp[ β × exp ( –a × t) ] ; β > 0 | |
a<0 b<0 | inverse of power of exponential: |
1 / {α + [β × exp(-a × t)]1/h ; β < 0, b=-h |
In these equations y∞ (the asymptote as t tends to infinity), t0 (the starting point of growth), t* (the point of inflexion), α and β are functions of y1 and y2; these are different functions in the different equations. The Richards curve is the generalized logistic, which includes the logistic (with b = -1). S-shaped curves have a>0 and b<1. If an inflexion point exists, the relative growth rate at that point equals a/(1-b) and the value of μ at the point of inflexion relative to the upper asymptote then equals (1-b)1/b.
From the above equations it can be seen that the growth model contains the curves exponential
, logistic
, glogistic
, gompertz
and ldl
of the directive FITCURVE
(the last four with CONSTANT=omit
only). However, in contrast to FITCURVE
, all facilities of MODEL
can be used and not just the normal distribution for error. But there is no possibility to include a dependence on other factors, to fix the response at the origin or to add a constant to the model.
Action with RESTRICT
The response variate and/or the time variate may be restricted. The restrictions must be identical. Only the units not excluded by the restriction will be analysed.
Reference
Schnute, J. (1981). A Versatile Growth Model with Statistically Stable Parameters. Can. J. Fish. Aquat. Sci, 38, 1128-1140.
See also
Directives: FITCURVE
, FITNONLINEAR
.
Commands for: Regression analysis.
Example
CAPTION 'RSCHNUTE example',\ !t('Data from Schnute, J. (1981), A Versatile Growth',\ 'Model with Statistically Stable Parameters,',\ 'Can. J. Fish. Aquat. Sci, 38, 1128-1140.'); STYLE=meta,plain VARIATE tvar,yvar,ownt; VALUES=!(2 ... 11),\ !(99,193,298,383,462,477,505,525,539,539),!(0, .1 ... 12) MODEL Y=yvar; FITTEDVALUES=yvarfit PRINT 'Fit the general model' RSCHNUTE T=tvar; RT=ppp PRINT [RLPRINT=*] tvar,yvar,yvarfit,ppp[] PRINT 'Fit the Gompertz curve and save features of the curve' RSCHNUTE [B=0] T=tvar; EXTRA=Pextra RKEEP ESTIMATES=estims PRINT Pextra[] & tvar,yvar,yvarfit & estims