1. Home
  2. FVASPLINESPECIFICATION procedure

FVASPLINESPECIFICATION procedure

Forms specifications to form two-dimensional spline models by VASPLINE (R.W. Payne).

Options

SPECIFICATION = pointers Information required to form each spline model
BASIS = string token Spline basis to use (thinplate, pspline); default pspl
KNOTS = scalar, variate or pointer Knots to be fitted in spline model, if a scalar, this is the total number of knots to be fitted; if a variate of length 2, this is the number of knots in the ROWS and COLUMNS directions; and if a pointer to 2 variates, these are the values for knots in the ROWS and COLUMNS directions; default – all distinct values of ROWS and COLUMNS
PENALTYMETHOD = string token Which tensor spline penalty to use (isotropic, semiconstrained, unconstrained); default unco
DEGREE = scalars Degree of polynomial used to form the underlying spline; default 3
DIFFORDER = scalars Differencing order for p-spline penalty; default 1
LINEARPLANE = string token Whether to include a linear row × column plane in the fixed model when DIFFORDER is one (include, omit); default omit
INITIAL = scalars Initial values for the spline variance components; default 0.1
CONSTRAINTS = string tokens How to constrain the spline variance components (none, positive, fixrelative, fixabsolute); default none
DESCRIPTION = texts Description of the spline model (for output); uses setting of the BASIS option if this is not set

No Parameters

Description

FVASPLINESPECIFICATION forms a pointer specifying the options required by VASPLINE to form spline definitions that can be used by the automatic REML procedures to model the random variation with two-dimensional spline models. The pointer, which is saved by the SPECIFICATION parameter, has elements labelled ‘basis’, ‘knots’, ‘penaltymethod’, ‘degree’, ‘difforder’, ‘linearplane’ and ‘description’ to save the settings of the corresponding VASPLINE options, together with a description, as described below.

The BASIS option specifies whether to use p-splines (the default), or thin-plate splines to construct the basis. P-splines are tensor splines formed with the TENSORSPLINE procedure. Thin-plate splines are 2-dimensional cubic smoothing splines, formed using the THINPLATE procedure.

The positions of the knots used in the basis functions are specified by the KNOTS parameter. If KNOTS is not set (the default) or if it is set to a missing value, all distinct values in ROWS and COLUMNS are used as the knot points. Otherwise KNOTS can be if a scalar, specifying the total number of knots to be fitted; the procedure then uses equi-spaced knots divided proportionally to the number of distinct points in the two directions. Alternatively, KNOTS can be a variate of length 2 specifying the number of equi-spaced of knots in the ROWS and COLUMNS directions. Finally, it can be a pointer to 2 variates whose values are used for knots in the ROWS and COLUMNS directions.

The degree of polynomial used to form the underlying tensor spline basis functions is specified by the DEGREE option; default 3. The DIFFORDER option specifies the differencing order to be used with p-spline models. This determines the strength of the penalty (for a given smoothness parameter). The default is to use first-order differencing. For a p-spline model, the underlying fixed polynomial in each dimension has degree d equal to DIFFORDER minus 1. If DIFFORDER=1, there will be no fixed model, but one a fixed polynomial of order 1 can be added using LINEARPLANE=include. This will model any linear trends over rows or columns.

The tensor-spline basis is constructed via interactions of the one-dimensional spline bases, as detailed in the TENSORSPLINE procedure. The PENALTYMETHOD option controls the interaction between the one-dimensional spline bases. An unconstrained penalty (the default) allows a separate smoothing parameter for each term. In this case, the basis pointer has 2d+3 matrices, one for each term. With the semiconstrained penalty, the same smoothing parameter is imposed across the interaction of polynomials in the first dimension with random terms in the second, and for the interaction of random terms in the first dimension with polynomials in the second dimension. An isotropic penalty uses a single common penalty, and the terms are combined into a single matrix.

The INITIAL and CONSTRAINTS parameters define initial values and constraints for the variance components of the spline random terms. These are used to provide the settings for the INITIAL and CONSTRAINTS parameters of the VCOMPONENTS directive, when this is used to define a random model containing the spline.

The DESCRIPTION parameter can supply a single-line text to provide a description of the spline model for output. The default is to use the setting of the BASIS option.

The SPECIFICATION parameter saves the specifications in pointers with an element for each of the other parameters. These pointers can be used to define spline models to be tried by the VABLOCKDESIGNVAROWCOLUMNDESIGN and VASERIES procedures, by using them as the settings of the procedures’ SPLINESPECIFICATIONS options.

 

Options: None

Parameters: SPECIFICATION, BASIS, KNOTS, PENALTYMETHOD, DEGREE, DIFFORDER, LINEARPLANE, INITIAL, CONSTRAINTS, DESCRIPTION.

See Also

Directive: REML.

Procedures: VABLOCKDESIGN, VAROWCOLUMNDESIGN, VASERIESVASPLINEVFSPLINEV2DSPLINETHINPLATETENSORSPLINE.

Commands for: REML analysis of linear mixed models.

Example

CAPTION     'FVASPLINE example','Wheat trial in 22 x 15 grid';\
            STYLE=major,plain
SPLOAD      [PRINT=summary] '%Data%/Wheat22x15.gsh'
FVASPLINE   vaspec; DIFFORDER=2; DEGREE=3
VASPLINE    [BASIS=#vaspec['BASIS']; KNOTS=vaspec['KNOTS'];\
            PENALTYMETHOD=#vaspec['PENALTYMETHOD']; DEGREE=vaspec['DEGREE'];\
            DIFFORDER=vaspec['DIFFORDER']; LINEARPLANE=#vaspec['LINEARPLANE']]\
            Wheat22x15; DESCRIPTION='p-spline degree 3, order of difference 2';\
            ROWS=Row; COLUMNS=Column
PRINT       [SQUASH=yes] #Wheat22x15 : SKIP     [FILE=output] 1
" fit p-spline degree 3, order of difference 2 " 
VCOMPONENTS [FIXED=#Wheat22x15['fixed']+Rep+RowGrp+ColGrp+Genotype] \
            #Wheat22x15['random']; CONSTRAINTS=positive; INITIAL=0.1
REML        [MAXCYCLE=200] Yield
Updated on April 14, 2025

Was this article helpful?