Declares one or more expression data structures.
Options
VALUE = expression |
Value for all the expressions; default * |
---|---|
MODIFY = string token |
Whether to modify (instead of redefining) existing structures (yes , no ); default no |
IPRINT = string tokens |
Information to be used by default to identify the expressions in output (identifier , extra ); if this is not set, they will be identified in the standard way for each type of output |
Parameters
IDENTIFIER = identifiers |
Identifiers of the expressions |
---|---|
VALUE = expression structures |
Expression data structures providing values for the expressions |
EXTRA = texts |
Extra texts associated with the identifiers |
Description
The IDENTIFIER
parameter lists the identifiers of the expressions that are to be declared. The expression data structure stores a Genstat expression, for example
Hours = Minutes/60
Usually you will find it easiest to type out an expression like this explicitly whenever you need it. The main use, then, for this rather specialized data structure is to supply an expression as the argument of a procedure.
Values can be assigned to the expressions by either the VALUE
option or the VALUE
parameter. The option defines a common value for all the structures in the declaration, while the parameter allows the structures each to be given a different value. If both the option and the parameter are specified, the parameter takes precedence.
You can associate a text of extra annotation with each expression using the EXTRA
parameter. If MODIFY
is set to yes
any existing attributes and values of the expressions are retained; otherwise these are lost.
Here are two examples using the VALUE
option:
EXPRESSION [VALUE=Length*Width*Height] Vcalc
EXPRESSION [VALUE=Dose=LOG10(Dose)] Dtrans
These put the expression Length*Width*Height
into the identifier Vcalc
, and the expression Dose=LOG10(Dose)
into Dtrans
. Both expressions could be declared simultaneously, using the VALUE
parameter, by putting
EXPRESSION Vcalc,Dtrans; VALUE=!E(Length*Width*Height),\
!E(Dose=LOG10(Dose))
!E(Length*Width*Height)
, for example, is an unnamed expression.
The IPRINT
option can be set to specify how the expressions will be identified in output. If IPRINT
is not set, they will be identified in whatever way is usual for the section of output concerned. For example, the PRINT
directive generally uses their identifiers (although this can be changed using the IPRINT
option of PRINT
itself).
Options: VALUE
, MODIFY
, IPRINT
.
Parameters: IDENTIFIER
, VALUE
, EXTRA
.
See also
Directives: CALCULATE
, FARGUMENTS
, SETCALCULATE
.
Procedure: DFUNCTION
.
Commands for: Data structures, Calculations and manipulation.
Example
" Example FITN-1: Fitting a standard curve using FITNONLINEAR Modelling the relationship between yield of sugar from cane and amount of nitrogen fertilizer. NOTE: this model is fitted most efficiently in Genstat by the FITCURVE directive with option CURVE=exponential. This example is to illustrate the use of FITNONLINEAR, which is really provided for fitting models that are not in FITCURVE." READ Nitrogen,Yield 0 60 0 73 0 77 0 72 50 125 50 144 50 145 50 116 100 152 100 154 100 160 100 141 150 182 150 167 150 181 150 185 200 198 200 188 200 189 200 182 : " 1) Three parameters treated as nonlinear" MODEL Yield; FITTED=Expon RCYCLE PARAMETER=Rate,Range,Inter; INITIAL=0.95,-100,100;\ UPPER=1,*,*; STEP=0.01,*,* EXPRESSION [VALUE=(Expon=Inter+Range*Rate**Nitrogen)] Calcexp FITNONLINEAR [CALCULATION=Calcexp] " Display the fitted curve. Note that the parameter of the RGRAPH procedure must be set to the x-variate to be used in the plot after a nonlinear fit." RGRAPH [GRAPHICS=high] Nitrogen " Plot residuals against fitted values. Note that the RCHECK procedure cannot be used to check assumptions after a nonlinear fit." RKEEP RESIDUAL=r; FITTED=f DGRAPH r; f " 2) Linear parameters separated" MODEL Yield RCYCLE PARAMETER=Rate; INITIAL=0.95; UPPER=1; STEP=0.01 EXPRESSION [VALUE=(Expon=Rate**Nitrogen)] Calcexp FITNONLINEAR [PRINT=model,summary,estimates,correl,fitted;\ CALCULATION=Calcexp] Expon " Estimate s.e.s for linear parameters as well" FITNONLINEAR [PRINT=m,s,e,c; CALCULATION=Calcexp; SELINEAR=yes] Expon " 3) Explicit likelihood" MODEL [FUNCTION=Sum] RCYCLE PARAMETER=Rate,Range,Inter; INITIAL=0.95,-100,100;\ UPPER=1,*,*; STEP=0.001,*,* EXPRESSION [VALUE=(Sum=SUM((Yield-Inter-Range*Rate**Nitrogen)**2))]\ Calcexp FITNONLINEAR [CALC=Calcexp] " To provide true standard errors, multiply SE by residual variance." RKEEP ESTIMATES=Estimates; SE=se CALC sigma2 = Sum / (NVALUES(Yield) - 3) & se = se * SQRT(sigma2) PRINT Estimates,se