# Setting spline points

## Introduction

ASReml has a model term
spl(`x`[,`k`])
which, when fitted as a random term in conjunction with the
covariate `x` fitted as a fixed term generates a cubic
smoothing spline model. Several qualifiers modify the defaults
with respect to choosing knot points for the spline.
The basic form of the spline model term is
spl(`v`)
where ` v ` is the underlying variate.
The basic form uses the unique data values as the knot points
subject to the following qualifiers.
The extended form is
spl(`v,n`)
which uses ` n ` knot points.
Using this extended form
without supplying knot points results in ` n ` equally spaced knot points being used.
## !KNOTS

!KNOTS ` n `
changes the default knot points used when
fitting a basic spline to data with more than ` n ` different values
of the spline variable. When there are more than
` n ` (default 50) points,
ASReml will default to using ` n ` equally spaced knot points covering the range.
## !SPLINE

!SPLINE spl(`v,n`) `knotpoints `
defines a spline model term
spl(`v,n`)
with an explicit set of knot points.
The
!SPLINE
qualifier may only be used on a line by itself after the datafile line and
before the model line.
When knot points are explicitly supplied they should be in increasing
order and adequately cover the range of the data or ASReml will modify
them before they are applied. If you choose to spread them over
several lines, place a comma at the end of incomplete lines
so that ASReml will to continue reading values from the next
line of input.
If the explicit points do not adequately cover the range, a
message is printed and the values are rescaled unless
!NOCHECK
is also specified. Inadequate coverage is when the explicit range does
not cover the midpoint of the actual range.
## !NOCHECK

!NOCHECK
forces ASReml to use any explicitly set spline knot points (see
!SPLINE
)
even if they do not appear to adequately cover the data values.
## !SCALE

When forming a design matrix for the
spl()
model term, ASReml uses a standardized scale (independent of the
actual scale of the variable). The qualifier

!SCALE 1

forces ASReml to use the scale of the variable. The
default standardised scale is appropriate in most circumstances.
**Return to start**