pi
basis is appropriate for smooths of multiple variables. Its
purpose is to parameterize the way in which the basis changes with one of
those variables. For example, suppose the smooth is over three variables,
$x$, $y$, and $t$, and we want to parameterize the effect of
$t$. Then the pi
basis will assume $f(x,y,t) = \sum_k
g_k(t)*f_k(x,y)$, where the $g_k(t)$ functions are pre-specified and the
$f_k(x,y)$ functions are estimated using a bivariate basis. An example of
a parametric interaction is a linear interaction, which would take the form
$f(x,y,t) = f_1(x,y) + t*f_2(x,y)$.## S3 method for class 'pi.smooth.spec':
smooth.construct(object, data, knots)
s(x, y, t, bs="pi", xt=list(g=list(g1, g2, g3)))
. For
transformation functions g1
, g2
, and g3
, see
Details below.x
,
y
, and t
above), as well as any by
variable.data
. Can be NULL
.smooth.construct
for the elements it will contain.object
should be defined (using s()
) with an xt
argument. This argument is a list that could contain any of the following
elements:
g
: the functions$g_k(t)$, specified as described below.bs
: the basis code used for the functions$f_k()$; defaults
to thin-plate regression splines, which is mgcv's default. The same
basis will be used for all$k$.idx
: an integer index indicating which variable fromobject$term
is to be parameterized, i.e., the$t$variable;
defaults tolength(object$term)
mp
: flag to indicate whether multiple penalties should
be estimated, one for each$f_k()$. Defaults toTRUE
. IfFALSE
, the penalties for each$k$are combined into a single
block-diagonal penalty matrix (with one smoothing parameter)....
: furtherxt
options to be passed onto the basis for$f_k()$.xt$g
can be entered in one of the following forms:
"quadratic"
, indicating a quadratic interaction, i.e.$f(x,t) = f_1(x)+t*f_2(x) + t^2*f_3(x)$; or"none"
, indicating no interaction with$t$, i.e.$f(x,t)=f_1(x)$.xt
.
If default values for bs
, idx
, and mp
are desired,
xt
may also be entered as the g
element itself; i.e.
xt=g
, where g
is either the list of functions or an acceptable
character string.
Additional arguments for the lower-dimensional basis over f_k
may
be entered using the corresponding arguments of s()
, e.g.
k
, m
, sp
, etc. For example,
s(x, t, bs="pi", k=15, xt=list(g="linear", bs="ps"))
will define a linear interaction with t
of a univariate p-spline
basis of dimension 15 over x
.