Learn R Programming

refund (version 0.1-1)

sff: Construct a smooth function-on-function regression term

Description

Defines a term $\int^{s_{hi, i}}_{s_{lo, i}} f(X_i(s), s, t) ds$ for inclusion in an mgcv::gam-formula (or bam or gamm or gamm4:::gamm) as constructed by pffr. Defaults to a cubic tensor product B-spline with marginal second differences penalties for $f(X_i(s), s, t)$ and integration over the entire range $[s_{lo, i}, s_{hi, i}] = [\min(s_i), \max(s_i)]$. Can't deal with any missing $X(s)$, unequal lengths of $X_i(s)$ not (yet?) possible. Unequal ranges for different $X_i(s)$ should work. $X_i(s)$ is assumed to be numeric. sff() IS AN EXPERIMENTAL FEATURE AND NOT WELL TESTED YET -- USE AT YOUR OWN RISK.

Usage

sff(X, yind, xind = seq(0, 1, l = ncol(X)), basistype = c("te", "t2", "s"),
  integration = c("simpson", "trapezoidal"), L = NULL, limits = NULL,
  splinepars = list(bs = "ps", m = c(2, 2, 2)))

Arguments

X
an n by ncol(xind) matrix of function evaluations $X_i(s_{i1}),\dots, X_i(s_{iS})$; $i=1,\dots,n$.
yind
DEPRECATED matrix (or vector) of indices of evaluations of $Y_i(t)$; i.e. matrix with rows $(t_{i1},\dots,t_{iT})$; no longer used.
xind
matrix (or vector) of indices of evaluations of $X_i(s)$; i.e. matrix with rows $(s_{i1},\dots,s_{iS})$
basistype
defaults to "te", i.e. a tensor product spline to represent $f(X_i(s), t)$. Alternatively, use "s" for bivariate basis functions (see s) or
integration
method used for numerical integration. Defaults to "simpson"'s rule. Alternatively and for non-equidistant grids, "trapezoidal".
L
optional: an n by ncol(xind) giving the weights for the numerical integration over $s$.
limits
defaults to NULL for integration across the entire range of $X(s)$, otherwise specifies the integration limits $s_{hi, i}, s_{lo, i}$: either one of "s or "s<=t"< code=""> for $(s_{hi, i}, s_{lo, i}) = (0, t)$ or a function that
splinepars
optional arguments supplied to the basistype-term. Defaults to a cubic tensor product B-spline with marginal second differences, i.e. list(bs="ps", m=c(2,2,2)). See te or <

Value

  • a list containing
    • calla "call" tote(ors,t2) using the appropriately constructed covariate and weight matrices (seelinear.functional.terms)
    • dataa list containing the necessary covariate and weight matrices